Belajar Membangun Backend yang Dapat Diskalakan dengan AI

Backend yang “terukur” adalah backend yang dapat menangani peningkatan beban tanpa penurunan performa yang berarti.

Membangun backend yang dapat diskalakan melibatkan beberapa proses dan pertimbangan, seperti desain basis data dan strategi penerapan.

Dalam artikel ini, Anda akan mempelajari cara membangun backend yang dapat diskalakan dengan bantuan kecerdasan buatan (AI).

Apa yang Membuat Backend Dapat Diskalakan?

Berbagai faktor yang diterapkan selama siklus hidup pengembangan perangkat lunak bekerja sama untuk membuat backend dapat diskalakan.

Salah satu faktor yang berkontribusi pada skalabilitas backend adalah kecepatan kueri basis data.

Kueri yang lambat meningkatkan waktu respons server Anda dan memengaruhi kemampuannya untuk memproses banyak permintaan secara bersamaan.

Anda dapat membuat kueri lebih cepat dengan menerapkan desain skema yang tepat dan menulis kueri yang efisien.

Pemrosesan asinkron adalah faktor lain yang dapat membuat backend dapat diskalakan. Tugas-tugas yang intensif sumber daya dapat memblokir utas eksekusi dan membatasi kemampuan server untuk memproses permintaan yang bersamaan.

Anda dapat mengatasi masalah ini dengan mendelegasikan tugas-tugas yang membutuhkan sumber daya besar seperti komputasi besar dan pengunggahan file ke pekerjaan latar belakang.

Faktor lainnya adalah strategi penerapan Anda. Anda harus menerapkan backend Anda menggunakan strategi penerapan yang dapat diskalakan melalui layanan seperti Back4app.

Misalnya, kontainer baru berputar secara otomatis saat lalu lintas melonjak, mendistribusikan beban ke beberapa contoh tanpa intervensi manual.

Demikian pula, sistem akan menurun seiring dengan menurunnya permintaan, melepaskan sumber daya yang tidak terpakai.

Dalam tutorial ini, Anda akan membuat aplikasi manajemen kennel yang mengimplementasikan semua faktor yang disebutkan di atas agar dapat diskalakan.

Merancang Backend yang Dapat Diskalakan dengan AI

Seperti yang telah disebutkan di atas, Anda akan membangun sebuah aplikasi manajemen kandang. Berikut adalah persyaratan aplikasi:

  • Aplikasi Anda akan memungkinkan pemilik untuk memeriksa anjing mereka ke dalam kandang Anda.
  • Ketika pemilik memasukkan anjingnya ke dalam kandang Anda, aplikasi Anda akan menyimpan rincian tentang anjing tersebut, seperti nama, jenis, usia, nama pemilik, dan gambarnya. Kemudian, aplikasi akan menghasilkan kode unik untuk pemiliknya.
  • Kode unik yang diterima pemilik adalah satu-satunya cara untuk mengambil anjing mereka dari kandang Anda di akhir kunjungan.
  • Selama kunjungan ke kennel Anda, Anda akan melacak semua aktivitas yang dilakukan anjing Anda. Tutorial ini hanya akan mencakup makan, pengobatan, dan perawatan.
  • Di akhir kunjungan, pemilik akan memberikan kode unik yang mereka terima saat check-in dan mengambil anjing mereka.

Langkah pertama dalam mewujudkan persyaratan di atas adalah merancang basis data yang dinormalisasi dengan sedikit atau tanpa redundansi data.

Anda akan merancang dan membuat skema database ini dengan bantuan dari Back4app AI Agent yang akan bertindak sebagai generator backend AI.

Agen AI Back4app

Back4app AI Agent adalah LLM yang berinteraksi dengan produk Back4app, Backend Platform, dan Web Deployment Platform.

Ini memungkinkan Anda untuk berinteraksi dengan produk ini menggunakan petunjuk dan akan membantu Anda membuat backend yang dapat diskalakan dengan AI.

Untuk mengakses agen AI, Anda memerlukan akun Back4app. Jika Anda belum memilikinya, Anda bisa mendaftar secara gratis.

Masuk ke akun Back4app Anda dan klik tautan “Agen AI” pada navbar dasbor Anda.

Navbar dasbor aplikasi Back4app dengan tautan Agen AI yang disorot

Mengklik tautan tersebut akan membawa Anda ke halaman Agen AI, seperti yang ditunjukkan pada gambar di bawah ini.

Halaman awal agen AI Back4app

Anda bisa memasukkan berbagai petunjuk di halaman ini, seperti petunjuk untuk membuat aplikasi BaaS baru di akun Back4app Anda.

Membangun backend dengan AI

Untuk membuat aplikasi backend baru di Back4app, Anda dapat memasukkan perintah di bawah ini atau yang serupa ke dalam agen AI.

- Create a new backend application called "Kennel Management Backend"

Anda akan mendapatkan respons yang mengatakan bahwa aplikasi telah berhasil dibuat.

Respons agen AI dengan informasi sensitif yang disunting

Anda dapat melihat aplikasi yang telah dibuat di dasbor Back4app Anda, seperti yang ditunjukkan pada gambar di bawah ini.

Dasbor default Back4app

Seperti yang ditunjukkan pada gambar di atas, basis data pada aplikasi backend baru Anda kosong kecuali untuk kelas _User dan _Role default.

Selanjutnya, Anda akan mendesain dan menambahkan skema basis data ke aplikasi backend Anda.

Merancang Basis Data Anda

Untuk merancang skema basis data yang dinormalisasi untuk kebutuhan aplikasi Anda di atas, masukkan perintah di bawah ini atau yang serupa ke dalam agen AI.

- Design a normalized database schema for a dog kennel management application. 

- The app stores dog details: name, breed, age, a unique owner username, owner contact details, and an image; 

- When an owner checks in and generates a unique code for the owner to retrieve the dog. 

- It tracks activities during the visit (eating, medication, grooming). 
The owner provides the unique code to retrieve their dog at the end of the visit. 

- Ensure relationships between entities like dogs, owners, visits, activities, and the retrieval code are properly structured.

Perintah di atas seharusnya mengembalikan skema database yang mirip dengan yang divisualisasikan di bawah ini.

Representasi visual dari skema basis data yang dinormalisasi

Skema basis data di atas memiliki empat tabel: pemilik, anjing, kunjungan, dan aktivitas. Seorang pemilik dapat memiliki banyak anjing (satu-ke-banyak), tetapi setiap anjing hanya dimiliki oleh satu pemilik, yang dihubungkan melalui kunci asing di tabel dogs.

Demikian pula, seekor anjing dapat memiliki beberapa kunjungan (satu-ke-banyak) dari waktu ke waktu, masing-masing khusus untuk anjing tersebut dan dilacak dalam tabel kunjungan melalui kunci asing.

Selain itu, setiap kunjungan dapat melibatkan beberapa aktivitas (satu-ke-banyak), seperti memberi makan, perawatan, atau pengobatan, yang masing-masing terkait dengan kunjungan tertentu melalui kunci asing visit_id di tabel aktivitas.

Setelah Anda memiliki desain database Anda, Anda akan meminta AI untuk membuat database di backend Anda menggunakan perintah yang mirip dengan yang ada di bawah ini.

- Create the designed database in the backend app "Kennel Management Backend".

Anda akan mendapatkan respons bahwa database telah berhasil dibuat. Anda dapat mengonfirmasi dengan memeriksa dasbor aplikasi Anda untuk mengetahui tabel yang baru dibuat, seperti yang ditunjukkan pada gambar di bawah ini.

Dasbor Back4app menyoroti tabel basis data yang baru dibuat.

Setelah Anda membuat backend dan menambahkan tabel basis data aplikasi, Anda akan mengimplementasikan logika aplikasi.

Menerapkan Logika Backend Anda dengan AI

Dari persyaratan aplikasi, aplikasi Anda harus memungkinkan pemilik untuk memeriksa anjing mereka ke dalam kandang, menyimpan detail seperti nama anjing, ras, usia, nama pemilik, dan gambar, serta menghasilkan kode pengambilan yang unik untuk pemilik.

Untuk menerapkan persyaratan ini, Anda memerlukan fungsi utilitas yang menghasilkan kode pengambilan unik dan fungsi yang mengunggah gambar anjing di latar belakang untuk memastikan tugas pengunggahan tidak memperlambat waktu respons aplikasi Anda.

Menerapkan Fungsi Utilitas

Anda dapat membuat fungsi utilitas yang menghasilkan kode unik dengan memberikan prompt di bawah ini atau sesuatu yang mirip dengan Agen AI:

- Create a utility cloud code function in the "Kennel Management Backend" app that generates  a unique retrieval code for the dogs checked into the kennel.

-Store the code in a `utils.js` file and make the file accessible to the entire application.

Anda akan mendapatkan respons bahwa fungsi kode cloud telah dibuat, mirip dengan respons pada gambar di bawah ini.

Halaman Agen AI Back4app yang menunjukkan respons terhadap permintaan

Selanjutnya, buatlah fungsi yang mengunggah gambar anjing dan mengaitkannya dengan catatan anjing yang sesuai dengan memberikan perintah di bawah ini atau sesuatu yang mirip dengan Agen AI:

- Create an asynchronous utility Cloud Code function named `uploadDogImage` that accepts three parameters: `dogName`, `dogImage`, and `dogId`. 

- The function should upload the `dogImage`, using `dogName` as the image name, and ensure that the image is properly associated with the corresponding dog record identified by `dogId`. 

- Implement error handling to manage any issues during the upload process and confirm the association with the dog record.

- Add the `utils.js` file and make it accessible to the entire application.

Perintah di atas memastikan gambar anjing diunggah dengan benar dan dikaitkan dengan catatan anjing yang benar sambil menangani kemungkinan kesalahan.

Anda akan mendapatkan respons bahwa fungsi berhasil dibuat.

Kedua fungsi utilitas tersebut diimplementasikan dalam file utils.js untuk menjaga modularitas kode. Sekarang, Anda memiliki dua fungsi utilitas yang diperlukan untuk mengimplementasikan fitur check-in untuk aplikasi Anda.

Menerapkan Fitur Check-in

Untuk mengimplementasikan fitur check-in pada aplikasi Anda, Anda memerlukan nama, usia, ras, gambar, dan nama pengguna anjing, serta nama pengguna pemilik.

Kemudian, Anda perlu membuat kode pengambilan untuk pemilik, merekam kunjungan, mengunggah gambar anjing (di latar belakang), dan mengembalikan kode tersebut kepada pemilik.

Anda dapat menambahkan logika di atas ke aplikasi backend Anda dengan memberikan prompt di bawah ini atau sesuatu yang serupa dengan Agen AI:

- Create an asynchronous Cloud Code function named `checkIn` in a `main.js` file that accepts five parameters from a request body: `dogName` (String), `dogAge` (Number), `dogBreed` (String), `ownerUsername`(String), and `dogImage` (File). 

- The function should first validate and sanitize each input to ensure they conform to expected types and formats. 

- It should then search for an owner in the `owner` table using `ownerUsername` and create a new owner record if none exists. Next, the function should create a new record in the `dogs` table with  the provided `dogName`, `dogBreed`, `dogAge`, and the corresponding `ownerId`. 

- After that, it should call the `generateRetrievalCode` utility function to create a unique retrieval code. 

- The function must also use the `uploadImage` utility to upload `dogImage`, running this process in the background without awaiting the return value. 

- Finally, it should create a record in the `visits` table that includes relevant details such as the `ownerId`, `dogId`, and the generated retrieval code, and return a success message along with the retrieval code to the user. 

- Ensure error handling is implemented for database operations and input validation, returning appropriate error messages where necessary.

Anda akan menerima respons yang mengindikasikan bahwa fungsi berhasil dibuat.

Anda dapat meninjau kode yang dibuat oleh agen AI dan memodifikasinya jika perlu di Dasbor AplikasiKode Cloud, seperti yang ditunjukkan pada gambar di bawah ini.

Halaman kode cloud Back4app yang menyoroti tombol kode cloud dan file di folder cloud

Sekarang, Anda dapat memasukkan anjing baru ke dalam kandang Anda. Selanjutnya, Anda akan mengimplementasikan fitur rekam aktivitas.

Menerapkan Fitur Rekam Aktivitas

Berdasarkan persyaratan aplikasi, aplikasi Anda harus melacak semua aktivitas yang dilakukan anjing selama kunjungan.

Untuk mengimplementasikan fitur rekam aktivitas, Anda perlu mengambil catatan kunjungan dan membuat aktivitas baru dengan informasi yang diperlukan.

Anda dapat menambahkan logika di atas ke aplikasi backend Anda dengan memberikan prompt di bawah ini atau sesuatu yang serupa dengan Agen AI:

- Create an asynchronous function called `recordActivity` that accepts three parameters from a request body: `visitId`, `type`, and `description`. 

- It should first check if a visit with the specified `visitId` exists in the database. 

- If the visit is not found, return an appropriate error message. 

- If the visit exists, the function should create a new activity record  with the visitId, type, and description, set the time to the current date, 
and return a success message, after a successful creation.

- Ensure error handling is implemented for database operations and input validation, returning appropriate error messages where necessary.

Anda dapat memeriksa dasbor Anda untuk memastikan fungsi ini diimplementasikan dengan benar dan membuat perubahan jika perlu.

Menerapkan Fitur Pembayaran

Untuk mengimplementasikan fitur checkout, Anda perlu mengambil catatan kunjungan menggunakan retrieval_code, menyertakan detail anjing dan pemilik terkait, memperbarui check_out_time, dan mengembalikan respons dengan informasi anjing dan pemilik, serta waktu check-in dan checkout kunjungan.

Anda dapat menambahkan logika di atas ke aplikasi backend Anda dengan memberikan prompt di bawah ini atau sesuatu yang serupa dengan Agen AI:

- Create an asynchronous cloud code function called `checkOut` that retrieves dog and visit details based on a `retrieval_code` extracted from the request body. 

- The function should fetch the corresponding visit record in the `Visit` table  and include related dog details from the `Dog` table and the `Owner` table. 

- The function should select specific dog attributes such as `name`, `breed`, `age` and image. 

- If no visit is found, return a message indicating that the `retrieval_code` is invalid. 

- Upon successfully finding the visit, the function should update the `check_out_time` to the current date and save the updated visit record. 

- Finally, structure a response that includes the dog's information 
along with its owner details, as well as the visit's `check_in_time` and `check_out_time`. 

- Implement error handling to catch and log any issues during the process, 
returning a relevant error message in case of failure.

Anda dapat meninjau kode yang dibuat oleh agen AI di Dasbor Aplikasi Anda → Kode Cloudmain.js.

Dasbor Kode Cloud Back4app yang menunjukkan konten file main.js

Dengan fitur checkout yang telah diimplementasikan sepenuhnya, Anda telah melengkapi persyaratan aplikasi untuk aplikasi manajemen kandang sederhana.

Kesimpulan

Dalam artikel ini, Anda membangun aplikasi manajemen kandang yang dapat diskalakan yang mendukung check-in, melacak aktivitas anjing selama kunjungan, dan memungkinkan pemilik untuk mengambil anjing mereka di akhir kunjungan menggunakan AI.

Untuk meningkatkan kemampuan aplikasi Anda dalam meningkatkan skala, Anda mendesain basis data yang dinormalisasi untuk memastikan kueri Anda tidak lambat.

Anda juga mendelegasikan tugas-tugas yang sudah berjalan lama seperti unggahan gambar anjing ke sebuah fungsi yang berjalan di latar belakang dan membagi kode ke dalam beberapa file agar lebih mudah dipelihara.

Setelah backend Anda selesai, Anda dapat menghubungkannya ke UI yang dibangun dengan pustaka frontend seperti React, Svelte, atau Vue dan menerapkannya menggunakan Docker di platform seperti Back4app Web Deployment Platform.


Leave a reply

Your email address will not be published.