Научитесь строить масштабируемый бэкэнд с помощью искусственного интеллекта

Масштабируемый” бэкэнд – это бэкэнд, который может выдерживать повышенную нагрузку без значительного снижения производительности.

Создание масштабируемого бэкенда включает в себя несколько процессов и соображений, таких как проектирование базы данных и стратегия развертывания.

В этой статье вы узнаете, как построить масштабируемый бэкэнд с помощью искусственного интеллекта (ИИ).

Что делает бэкэнд масштабируемым?

Различные факторы, реализованные в ходе жизненного цикла разработки программного обеспечения, в совокупности делают бэкэнд масштабируемым.

Одним из факторов, влияющих на масштабируемость бэкенда, является скорость выполнения запросов к базе данных.

Медленные запросы увеличивают время отклика вашего сервера и влияют на его способность обрабатывать несколько запросов одновременно.

Вы ускоряете выполнение запросов за счет правильного построения схемы и написания эффективных запросов.

Асинхронная обработка – еще один фактор, который может сделать бэкэнд масштабируемым. Ресурсоемкие задачи могут блокировать потоки выполнения и ограничивать возможности сервера по обработке одновременных запросов.

Эту проблему можно решить, делегируя ресурсоемкие задачи, такие как большие вычисления и загрузка файлов, фоновым заданиям.

Еще один фактор – стратегия развертывания. Вы должны развернуть свой бэкэнд, используя масштабируемую стратегию развертывания с помощью таких сервисов, как Back4app.

Например, новые контейнеры автоматически запускаются при увеличении трафика, распределяя нагрузку между несколькими экземплярами без ручного вмешательства.

Аналогичным образом, при снижении спроса система масштабируется, высвобождая неиспользуемые ресурсы.

В этом уроке вы создадите приложение для управления питомником, в котором будут реализованы все вышеперечисленные факторы, чтобы сделать его масштабируемым.

Проектирование масштабируемого бэкенда с помощью искусственного интеллекта

Как уже говорилось выше, вам предстоит создать приложение для управления питомником. Вот требования к приложению:

  • Ваше приложение позволит владельцам регистрировать своих собак в вашем питомнике.
  • Когда владелец регистрирует свою собаку в вашем питомнике, ваше приложение сохраняет информацию о ней: имя, породу, возраст, имя владельца и изображение. Затем оно сгенерирует уникальный код для владельца.
  • Уникальный код, который получает владелец, – это единственный способ забрать свою собаку из вашего питомника по окончании визита.
  • Во время визита в питомник вы будете отслеживать все действия, которыми занималась собака. В это руководство входит только прием пищи, лекарств и груминг.
  • В конце визита владелец сообщит уникальный код, полученный при регистрации, и заберет свою собаку (собак).

Первым шагом в реализации вышеуказанных требований является разработка нормализованной базы данных с минимальной избыточностью данных.

Вы спроектируете и создадите схему базы данных с помощью Back4app AI Agent, который будет выступать в роли генератора бэкэнда искусственного интеллекта.

Агент искусственного интеллекта Back4app

Back4app AI Agent – это LLM, который взаимодействует с продуктами Back4app, Backend Platform и Web Deployment Platform.

Он позволяет взаимодействовать с этими продуктами с помощью подсказок и поможет создать масштабируемый бэкэнд с искусственным интеллектом.

Чтобы получить доступ к агенту ИИ, вам нужна учетная запись Back4app. Если у вас его нет, вы можете зарегистрироваться бесплатно.

Войдите в свой аккаунт Back4app и нажмите на ссылку “AI Agent” на панели навигации вашей приборной панели.

Навигационная панель приложения Back4app с выделенной ссылкой AI Agent

Щелкнув по ссылке, вы перейдете на страницу AI Agent, как показано на рисунке ниже.

Стартовая страница агента искусственного интеллекта Back4app

На этой странице вы можете ввести различные запросы, например, запрос на создание нового приложения BaaS на вашей учетной записи Back4app.

Создайте бэкэнд с помощью искусственного интеллекта

Чтобы создать новое внутреннее приложение на Back4app, вы можете ввести в агенте AI следующую или похожую подсказку.

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

Вы должны получить ответ об успешном создании приложения.

Ответ агента ИИ с отредактированной конфиденциальной информацией

Вы можете просмотреть созданное приложение на панели Back4app, как показано на рисунке ниже.

Приборная панель Back4app по умолчанию

Как показано на изображении выше, база данных вашего нового внутреннего приложения пуста, за исключением классов по умолчанию _User и _Role.

Далее вы разработаете и добавите схему базы данных в ваше внутреннее приложение.

Проектирование базы данных

Чтобы разработать нормализованную схему базы данных для вышеуказанных требований приложения, введите в агенте 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.

В ответ на запрос выше должна появиться схема базы данных, подобная той, что показана ниже.

Визуальное представление нормализованной схемы базы данных

В приведенной выше схеме базы данных есть четыре таблицы: владельцы, собаки, посещения и мероприятия. Владелец может иметь несколько собак (один ко многим), но каждая собака принадлежит только одному владельцу, связанному с ним внешним ключом в таблице dogs.

Аналогично, у собаки может быть несколько посещений (один ко многим) с течением времени, каждое из которых относится только к этой собаке и отслеживается в таблице посещений через внешний ключ.

Кроме того, каждое посещение может включать несколько видов деятельности (один ко многим), например кормление, уход или прием лекарств, каждый из которых привязан к конкретному посещению с помощью внешнего ключа visit_id в таблице activities.

Теперь, когда у вас есть дизайн базы данных, вы попросите ИИ создать базу данных в вашем бэкенде с помощью запроса, аналогичного приведенному ниже.

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

Вы должны получить ответ, что база данных создана успешно. Вы можете убедиться в этом, проверив на приборной панели приложения наличие вновь созданных таблиц, как показано на рисунке ниже.

Приборная панель Back4app с подсветкой вновь созданных таблиц базы данных.

Теперь, когда вы создали бэкэнд и добавили таблицы базы данных вашего приложения, вам предстоит реализовать логику приложения.

Реализация логики бэкенда с помощью искусственного интеллекта

Судя по требованиям к приложению, оно должно позволять владельцам регистрировать своих собак в питомнике, хранить такие данные, как кличка, порода, возраст, имя владельца и его изображение, а также генерировать уникальный код поиска для владельца.

Для реализации этих требований вам нужна служебная функция, которая генерирует уникальный код поиска, и функция, которая загружает изображение собаки в фоновом режиме, чтобы задача загрузки не замедляла время отклика вашего приложения.

Реализация утилитарных функций

Вы можете создать служебную функцию, которая будет генерировать уникальный код, подав Агенту ИИ подсказку, приведенную ниже, или что-то подобное:

- 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.

Вы должны получить ответ о том, что функция облачного кода создана, похожий на ответ, показанный на рисунке ниже.

Страница Back4app AI Agent, показывающая ответ на запрос

Затем создайте функцию, которая загрузит изображение собаки и свяжет его с соответствующей записью о собаке, отправив агенту искусственного интеллекта подсказку, приведенную ниже, или что-то подобное:

- 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.

Приведенная выше подсказка гарантирует, что изображение собаки загружено правильно и связано с нужной записью о собаке, а также учитывает возможные ошибки.

Вы должны получить ответ, что функция была создана успешно.

Для сохранения модульности кода эти две служебные функции были реализованы в файле utils.js. Теперь у вас есть две служебные функции, необходимые для реализации функции регистрации в вашем приложении.

Реализация функции регистрации

Чтобы реализовать функцию регистрации в вашем приложении, вам понадобятся имя, возраст, порода, изображение собаки и имя пользователя владельца.

Затем вам нужно сгенерировать код поиска для владельца, записать визит, загрузить изображение собаки (в фоновом режиме) и вернуть код владельцу.

Вы можете добавить описанную выше логику в свое внутреннее приложение, передав приведенную ниже подсказку или что-то подобное агенту искусственного интеллекта:

- 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.

Вы должны получить ответ, указывающий на то, что функция была создана успешно.

Вы можете просмотреть код, созданный агентом ИИ, и при необходимости изменить его на панели App DashboardCloud Code, как показано на рисунке ниже.

Страница облачного кода Back4app с подсветкой кнопки облачного кода и файлов в папке облака

Теперь вы можете регистрировать новых собак в своем питомнике. Далее вы внедрите функцию записи активности.

Реализация функции записи действий

В соответствии с требованиями к заявке, в вашей заявке должны быть отражены все мероприятия, в которых собака участвовала во время визита.

Чтобы реализовать функцию записи активности, необходимо получить запись о посещении и создать новую активность с необходимой информацией.

Вы можете добавить описанную выше логику в свое внутреннее приложение, передав приведенную ниже подсказку или что-то подобное агенту искусственного интеллекта:

- 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.

Вы можете проверить свою приборную панель, чтобы убедиться, что эта функция была реализована правильно, и при необходимости внести изменения.

Реализация функции оформления заказа

Чтобы реализовать функцию регистрации, вам нужно получить запись о посещении с помощью кода retrieval_code, включить в нее связанные данные о собаке и владельце, обновить время check_out_time и вернуть ответ с информацией о собаке и владельце, а также временем регистрации и выезда.

Вы можете добавить описанную выше логику в свое внутреннее приложение, передав приведенную ниже подсказку или что-то подобное агенту искусственного интеллекта:

- 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.

Вы можете просмотреть код, созданный агентом ИИ, на панели App DashboardCloud Codemain.js.

Back4app Cloud Code Dashboard показывает содержимое файла main.js

После того как функция оформления заказа реализована, вы выполнили все требования к приложению для простого управления питомником.

Заключение

В этой статье вы создадите масштабируемое приложение для управления питомником, которое поддерживает регистрацию, отслеживает действия собак во время визитов и позволяет владельцам забирать своих собак в конце визита с помощью искусственного интеллекта.

Чтобы улучшить способность приложения к масштабированию, вы разработали нормализованную базу данных, чтобы обеспечить низкую скорость запросов.

Кроме того, вы делегировали длительные задачи, такие как загрузка изображения собаки, функции, которая работает в фоновом режиме, и разделили код на файлы, чтобы его было проще поддерживать.

После того как бэкенд завершен, вы можете подключить его к пользовательскому интерфейсу, созданному с помощью библиотеки фронтенда, например React, Svelte или Vue, и развернуть его с помощью Docker на платформах вроде Back4app Web Deployment Platform.


Leave a reply

Your email address will not be published.