Yapay Zeka ile Ölçeklenebilir Arka Uç Oluşturmayı Öğrenin
“Ölçeklenebilir” bir arka uç, performansta önemli bir düşüş olmadan artan yükü kaldırabilen bir arka uçtur.
Ölçeklenebilir bir arka uç oluşturmak, veritabanı tasarımı ve dağıtım stratejisi gibi çeşitli süreçleri ve hususları içerir.
Bu makalede, yapay zeka (AI) yardımıyla nasıl ölçeklenebilir bir arka uç oluşturacağınızı öğreneceksiniz.
Contents
Bir Arka Ucu Ölçeklenebilir Kılan Nedir?
Yazılım geliştirme yaşam döngüsü sırasında uygulanan çeşitli faktörler, bir arka ucu ölçeklenebilir hale getirmek için birlikte çalışır.
Bir arka ucun ölçeklenebilirliğine katkıda bulunan faktörlerden biri de veritabanı sorgularının hızıdır.
Yavaş sorgular sunucunuzun yanıt süresini artırır ve aynı anda birden fazla isteği işleme yeteneğini etkiler.
Uygun bir şema tasarımı uygulayarak ve verimli sorgular yazarak sorgularınızı daha hızlı hale getirirsiniz.
Eşzamansız işleme, bir arka ucu ölçeklenebilir hale getirebilecek bir başka faktördür. Kaynak yoğun görevler yürütme iş parçacıklarını engelleyebilir ve sunucunun eşzamanlı istekleri işleme yeteneğini sınırlayabilir.
Bu sorunu, büyük hesaplamalar ve dosya yüklemeleri gibi yoğun kaynak gerektiren görevleri arka plan işlerine devrederek çözebilirsiniz.
Bir diğer faktör de dağıtım stratejinizdir. Back4app gibi hizmetler aracılığıyla ölçeklenebilir bir dağıtım stratejisi kullanarak arka ucunuzu dağıtmalısınız.
Örneğin, trafik arttıkça yeni konteynerler otomatik olarak açılır ve yükü manuel müdahale olmadan birden fazla örneğe dağıtır.
Benzer şekilde, talep düştükçe sistem ölçeklenerek kullanılmayan kaynakları serbest bırakır.
Bu eğitimde, ölçeklenebilir hale getirmek için yukarıda belirtilen tüm faktörleri uygulayan bir köpek kulübesi yönetim uygulaması oluşturacaksınız.
Yapay Zeka ile Ölçeklenebilir Bir Arka Uç Tasarlama
Yukarıda belirtildiği gibi, bir köpek kulübesi yönetim uygulaması oluşturacaksınız. İşte uygulama gereksinimleri:
- Başvurunuz, köpek sahiplerinin köpeklerini kulübenize teslim etmelerine olanak sağlayacaktır.
- Bir köpek sahibi köpeğini kulübenize kaydettirdiğinde, uygulamanız köpeğin adı, cinsi, yaşı, sahibinin adı ve resmi gibi köpekle ilgili ayrıntıları depolayacaktır. Ardından, sahibi için benzersiz bir kod oluşturacaktır.
- Sahibine verilen benzersiz kod, ziyaretin sonunda köpeğini kulübenizden almanın tek yoludur.
- Kulübenize yaptığınız ziyaret sırasında, köpeğin dahil olduğu tüm aktiviteleri takip edeceksiniz. Bu eğitim sadece yemek yeme, ilaç kullanımı ve tımarı içerecektir.
- Ziyaretin sonunda, sahibi check-in sırasında aldığı benzersiz kodu verecek ve köpek(ler)ini geri alacaktır.
Yukarıdaki gereksinimleri gerçekleştirmenin ilk adımı, veri fazlalığının çok az olduğu veya hiç olmadığı normalleştirilmiş bir veritabanı tasarlamaktır.
Bu veritabanı şemasını, bir yapay zeka arka uç oluşturucusu olarak hareket edecek olan Back4app AI Agent’ın yardımıyla tasarlayacak ve oluşturacaksınız.
Back4app Yapay Zeka Aracısı
Back4app AI Agent, Back4app ürünleri, Backend Platformu ve Web Dağıtım Platformu ile arayüz oluşturan bir LLM’dir.
İstemleri kullanarak bu ürünlerle etkileşim kurmanıza olanak tanır ve yapay zeka ile ölçeklenebilir bir arka uç oluşturmanıza yardımcı olur.
AI aracısına erişmek için bir Back4app hesabına ihtiyacınız var. Eğer hesabınız yoksa, ücretsiz olarak kaydolabilirsiniz.
Back4app hesabınıza giriş yapın ve kontrol panelinizin gezinme çubuğundaki “AI Agent” bağlantısını tıklayın.
Bağlantıya tıklamak sizi aşağıdaki resimde gösterildiği gibi AI Agent sayfasına götürecektir.
Bu sayfada Back4app hesabınızda yeni bir BaaS uygulaması oluşturmak gibi çeşitli istemler girebilirsiniz.
Yapay zeka ile bir arka uç oluşturun
Back4app’te yeni bir arka uç uygulaması oluşturmak için, AI aracısına aşağıdaki istemi veya benzer bir şeyi girebilirsiniz.
- Create a new backend application called "Kennel Management Backend"
Uygulamanın başarıyla oluşturulduğunu belirten bir yanıt almalısınız.
Oluşturulan uygulamayı aşağıdaki resimde gösterildiği gibi Back4app kontrol panelinizde görüntüleyebilirsiniz.
Yukarıdaki resimde gösterildiği gibi, yeni arka uç uygulamanızdaki veritabanı varsayılan _User
ve _Role
sınıfları dışında boştur.
Ardından, veritabanı şemasını tasarlayacak ve arka uç uygulamanıza ekleyeceksiniz.
Veritabanınızı Tasarlama
Yukarıdaki uygulama gereksinimleriniz için normalleştirilmiş bir veritabanı şeması tasarlamak için, aşağıdaki istemi veya benzer bir şeyi AI aracısına girin.
- 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.
Yukarıdaki istem, aşağıda görselleştirilene benzer bir veritabanı şeması döndürmelidir.
Yukarıdaki veritabanı şemasında dört tablo bulunmaktadır: sahipler, köpekler, ziyaretler ve etkinlikler. Bir sahibin birden fazla köpeği olabilir (bire çok), ancak her köpek dogs
tablosundaki yabancı bir anahtar aracılığıyla bağlanan yalnızca bir sahibine aittir.
Benzer şekilde, bir köpeğin zaman içinde birden fazla ziyareti (bire-çok) olabilir, her biri o köpeğe özgüdür ve ziyaretler
tablosunda yabancı bir anahtar aracılığıyla izlenir.
Ayrıca, her ziyaret, her biri faaliyetler
tablosundaki visit_id
yabancı anahtarı aracılığıyla belirli bir ziyarete bağlı olan besleme, bakım veya ilaç tedavisi gibi çeşitli faaliyetleri (bire-çok) içerebilir.
Artık veritabanınızın tasarımına sahip olduğunuza göre, AI’dan aşağıdakine benzer bir istem kullanarak arka ucunuzda veritabanı oluşturmasını isteyeceksiniz.
- Create the designed database in the backend app "Kennel Management Backend".
Veritabanının başarıyla oluşturulduğuna dair bir yanıt almalısınız. Aşağıdaki resimde gösterildiği gibi, yeni oluşturulan tablolar için uygulama kontrol panelinizi kontrol ederek onaylayabilirsiniz.
Artık arka ucunuzu oluşturduğunuza ve uygulamanızın veritabanı tablolarını eklediğinize göre, uygulama mantığını uygulayacaksınız.
Arka Uç Mantığınızı Yapay Zeka ile Uygulama
Uygulama gereksinimlerinden, uygulamanızın sahiplerin köpeklerini kulübeye kaydetmelerini, köpeğin adı, cinsi, yaşı, sahibinin adı ve resmi gibi ayrıntıları saklamalarını ve sahibi için benzersiz bir geri alma kodu oluşturmalarını sağlaması gerekir.
Bu gereksinimleri uygulamak için, benzersiz bir geri alma kodu oluşturan ve yükleme görevinin uygulamanızın yanıt süresini yavaşlatmamasını sağlamak için köpeğin görüntüsünü arka planda yükleyen bir yardımcı program işlevine ihtiyacınız vardır.
Yardımcı İşlevlerin Uygulanması
Aşağıdaki komut istemini veya benzer bir şeyi AI Agent’a vererek benzersiz bir kod üreten bir yardımcı program işlevi oluşturabilirsiniz:
- 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.
Bulut kodu işlevinin oluşturulduğuna dair aşağıdaki resimdeki yanıta benzer bir yanıt almalısınız.
Ardından, aşağıdaki istemi veya benzer bir şeyi AI Agent’a vererek köpeğin resmini yükleyen ve ilgili köpek kaydıyla ilişkilendiren işlevi oluşturun:
- 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.
Yukarıdaki istem, olası hataları ele alırken köpek resminin doğru şekilde yüklenmesini ve doğru köpek kaydıyla ilişkilendirilmesini sağlar.
İşlevin başarıyla oluşturulduğuna dair bir yanıt almalısınız.
Kod modülerliğini korumak için iki yardımcı program işlevi bir utils.js
dosyasında uygulanmıştır. Şimdi, uygulamanız için check-in özelliğini uygulamak için gereken iki yardımcı program işlevine sahipsiniz.
Check-in Özelliğinin Uygulanması
Uygulamanıza check-in özelliğini uygulamak için köpeğin adı, yaşı, cinsi, resmi ve sahibinin kullanıcı adına ihtiyacınız vardır.
Ardından, sahibi için bir geri alma kodu oluşturmanız, ziyareti kaydetmeniz, köpeğin görüntüsünü (arka planda) yüklemeniz ve kodu sahibine iade etmeniz gerekir.
Aşağıdaki istemi veya benzer bir şeyi AI Agent’a besleyerek yukarıdaki mantığı arka uç uygulamanıza ekleyebilirsiniz:
- 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.
İşlevin başarıyla oluşturulduğunu belirten bir yanıt almanız gerekir.
AI aracısı tarafından oluşturulan kodu inceleyebilir ve gerekirse aşağıdaki resimde gösterildiği gibi Uygulama Panonuz → Bulut Kodu üzerinde değiştirebilirsiniz.
Artık kulübenize yeni köpekler kaydedebilirsiniz. Daha sonra, etkinlik kaydetme özelliğini uygulayacaksınız.
Faaliyet Kaydetme Özelliğinin Uygulanması
Başvuru gerekliliklerine bağlı olarak, başvurunuz köpeğin ziyaret sırasında dahil olduğu tüm faaliyetleri takip etmelidir.
Kayıt etkinliği özelliğini uygulamak için ziyaret kaydını almanız ve gerekli bilgilerle yeni bir etkinlik oluşturmanız gerekir.
Aşağıdaki istemi veya benzer bir şeyi AI Agent’a besleyerek yukarıdaki mantığı arka uç uygulamanıza ekleyebilirsiniz:
- 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.
Bu işlevin doğru şekilde uygulandığından emin olmak için kontrol panelinizi kontrol edebilir ve gerekirse herhangi bir değişiklik yapabilirsiniz.
Ödeme Özelliğinin Uygulanması
Ödeme özelliğini uygulamak için, retrieval_code
kullanarak ziyaret kaydını getirmeniz, ilgili köpek ve sahip ayrıntılarını eklemeniz, check_out_time
‘ı güncellemeniz ve köpeğin ve sahibinin bilgilerinin yanı sıra ziyaretin giriş ve çıkış zamanlarını içeren bir yanıt döndürmeniz gerekir.
Aşağıdaki istemi veya benzer bir şeyi AI Agent’a besleyerek yukarıdaki mantığı arka uç uygulamanıza ekleyebilirsiniz:
- 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.
Yapay zeka aracısı tarafından oluşturulan kodu Uygulama Panonuz → Bulut Kodu → main.js
üzerinde inceleyebilirsiniz.
Ödeme özelliği tam olarak uygulandığında, basit bir köpek kulübesi yönetim uygulaması için uygulama gereksinimlerini tamamlamış olursunuz.
Sonuç
Bu makalede, check-in’leri destekleyen, ziyaretler sırasında köpeklerin faaliyetlerini izleyen ve ziyaretin sonunda sahiplerin yapay zeka kullanarak köpeklerini almalarına olanak tanıyan ölçeklenebilir bir köpek kulübesi yönetim uygulaması oluşturacaksınız.
Uygulamanızın ölçeklendirme yeteneğini geliştirmek için, sorgularınızın yavaş olmamasını sağlamak üzere normalleştirilmiş bir veritabanı tasarladınız.
Ayrıca köpek resmi yükleme gibi uzun süren görevleri arka planda çalışan bir işleve devrettiniz ve bakımı daha kolay hale getirmek için kodu dosyalara böldünüz.
Arka ucunuz tamamlandığında, onu React, Svelte veya Vue gibi bir ön uç kütüphanesi ile oluşturulmuş bir kullanıcı arayüzüne bağlayabilir ve Back4app Web Dağıtım Platformu gibi platformlarda Docker kullanarak dağıtabilirsiniz.