Backend סקלאבילי עם AI: מדריך שלב אחר שלב

מערכת אחורית “סקלאבילית” היא מערכת אחורית שיכולה להתמודד עם עומס מוגבר מבלי ירידה ניכרת בביצועים.

בניית מערכת אחורית סקלאבילית כוללת מספר תהליכים והתחשבות, כגון עיצוב מסד נתונים ואסטרטגיית פריסה.

במאמר זה תלמד כיצד לבנות מערכת אחורית סקלאבילית בעזרת בינה מלאכותית (AI).

מה הופך מערכת אחורית לסקלאבילית?

גורמים שונים המיושמים במהלך מחזור חיי הפיתוח של התוכנה פועלים יחד כדי להפוך מערכת אחורית לסקלאבילית.

אחד הגורמים התורמים לסקלאביליות של מערכת אחורית הוא מהירות שאילתות מסד הנתונים.

שאילתות איטיות מגדילות את זמן התגובה של השרת ומשפיעות על יכולתו לעבד בקשות מרובות במקביל.

ניתן להאיץ את השאילתות על ידי יישום עיצוב סכימה נכון וכתיבת שאילתות יעילות.

עיבוד אסינכרוני הוא גורם נוסף שיכול להפוך מערכת אחורית לסקלאבילית. משימות עתירות משאבים יכולות לחסום תהליכי ביצוע ולהגביל את יכולת השרת לעבד בקשות במקביל.

ניתן לפתור בעיה זו על ידי מסירת משימות עתירות משאבים כגון חישובים כבדים והעלאות קבצים למשימות ברקע.

גורם נוסף הוא אסטרטגיית הפריסה שלך. יש לפרוס את המערכת האחורית שלך באמצעות אסטרטגיית פריסה סקלאבילית דרך שירותים כמו Back4app.

לדוגמה, מכולות חדשות מופעלות אוטומטית כאשר התנועה גדלה, ומפזרות את העומס על פני מספר מופעים ללא התערבות ידנית.

באופן דומה, המערכת מצטמצמת כאשר הביקוש יורד, ומשחררת משאבים לא מנוצלים.

במדריך זה תבנה אפליקציית ניהול כלבים שמממשת את כל הגורמים שהוזכרו לעיל כדי להפוך אותה לסקלאבילית.

עיצוב מערכת אחורית סקלאבילית עם AI

https://www.youtube.com/watch?v=eawD_axzo4c

כפי שהוזכר לעיל, תבנה אפליקציית ניהול כלבים. להלן דרישות האפליקציה:

  • האפליקציה שלך תאפשר לבעלי כלבים להכניס את כלביהם לכלין שלך.
  • כאשר בעל כלב מכניס את כלבו לכלין שלך, האפליקציה תשמור פרטים על הכלב, כגון שמו, גזעו, גילו, שם הבעלים ותמונה. לאחר מכן, היא תיצור קוד ייחודי עבור הבעלים.
  • הקוד הייחודי שהבעלים מקבלים הוא הדרך היחידה לשחרר את כלבם מהכלין בסיום הביקור.
  • במהלך הביקור בכלין, תעקוב אחרי כל הפעילויות שבהן היה מעורב הכלב. במדריך זה ייכללו רק אכילה, מתן תרופות וטיפוח.
  • בסיום הביקור, הבעלים יספק את הקוד הייחודי שקיבל בזמן ההרשמה וישחזר את כלבם.

הצעד הראשון ביישום הדרישות לעיל הוא לעצב מסד נתונים מנורמל עם מינימום או ללא כפילות בנתונים.

תעצב ותיצור את סכימת מסד הנתונים הזו בעזרת Back4app AI Agent, שישמש כגנרטור מערכת אחורית מבוססת AI.

סוכן ה-AI של Back4app

הBack4app AI Agent הוא מודל שפה גדול (LLM) שמתקשר עם מוצרי Back4app, פלטפורמת המערכת האחורית ופלטפורמת הפריסה ברשת.

הוא מאפשר לך לתקשר עם מוצרים אלה באמצעות פקודות ויעזור לך ליצור מערכת אחורית סקלאבילית בעזרת AI.

כדי לגשת לסוכן ה-AI, יש צורך בחשבון Back4app. אם אין לך אחד, תוכל להרשם בחינם.

התחבר לחשבון Back4app שלך ולחץ על הקישור “AI Agent” בסרגל הניווט בלוח המחוונים שלך.

סרגל ניווט בלוח המחוונים של אפליקציית Back4app עם הקישור AI Agent מודגש

לחיצה על הקישור תוביל אותך לעמוד סוכן ה-AI, כפי שמוצג בתמונה למטה.

עמוד התחלה של סוכן ה-AI של Back4app

תוכל להזין פקודות שונות בדף זה, כגון יצירת אפליקציית BaaS חדשה בחשבון Back4app שלך.

בניית מערכת אחורית עם AI

כדי ליצור אפליקציית מערכת אחורית חדשה ב-Back4app, תוכל להזין את הפקודה למטה או משהו דומה לסוכן ה-AI.

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

עליך לקבל תגובה שמציינת כי האפליקציה נוצרה בהצלחה.

תגובת סוכן ה-AI עם מידע רגיש מוסתר

תוכל לצפות באפליקציה שנוצרה בלוח המחוונים של 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.

הפקודה לעיל אמורה להחזיר סכימת מסד נתונים הדומה לזו המוצגת למטה.

ייצוג חזותי של סכימת מסד נתונים מנורמלת

לסכימת מסד הנתונים שלמעלה יש ארבע טבלאות: owners, dogs, visits ו-activities. בעל יכול להחזיק במספר כלבים (אחד-לרבים), אך כל כלב שייך לבעל אחד בלבד, המחובר באמצעות מפתח זר בטבלת dogs.

באופן דומה, כל כלב יכול לעבור מספר ביקורים (אחד-לרבים) לאורך זמן, כאשר כל ביקור ספציפי לכלב זה ומנוטר בטבלת visits באמצעות מפתח זר.

בנוסף, כל ביקור יכול לכלול מספר פעילויות (אחד-לרבים), כגון האכלה, טיפוח או מתן תרופות, כאשר כל פעילות מקושרת לביקור ספציפי באמצעות המפתח הזר visit_id בטבלת activities.

עכשיו, לאחר שיש לך את עיצוב מסד הנתונים שלך, תבקש מה-AI ליצור את מסד הנתונים במערכת האחורית שלך באמצעות פקודה דומה לזו למטה.

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

עליך לקבל תגובה שמסד הנתונים נוצר בהצלחה. תוכל לאמת זאת על ידי בדיקת לוח המחוונים של האפליקציה שלך עבור הטבלאות שנוצרו, כפי שמוצג בתמונה למטה.

לוח המחוונים של Back4app המציג את טבלאות מסד הנתונים שנוצרו.

כעת, לאחר שיצרת את המערכת האחורית והוספת את טבלאות מסד הנתונים של האפליקציה שלך, תיישם את הלוגיקה של האפליקציה.

יישום הלוגיקה של המערכת האחורית שלך עם AI

לפי דרישות האפליקציה, האפליקציה שלך אמורה לאפשר לבעלי כלבים להכניס את כלביהם לכלין, לשמור פרטים כמו שם הכלב, גזעו, גילו, שם הבעלים ותמונה, וליצור קוד שחזור ייחודי עבור הבעלים.

כדי ליישם את הדרישות הללו, יש צורך בפונקציית עזר שמייצרת קוד שחזור ייחודי ובפונקציה שמעלה את תמונת הכלב ברקע כדי להבטיח שמשימת ההעלאה לא תאט את זמן התגובה של האפליקציה שלך.

יישום פונקציות עזר

תוכל ליצור פונקציית עזר שמייצרת קוד ייחודי על ידי הזנת הפקודה למטה או משהו דומה לסוכן ה-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.

עליך לקבל תגובה שמצביעה על כך שפונקציית ה-cloud code נוצרה, בדומה לתגובה שבתמונה למטה.

עמוד סוכן ה-AI של Back4app המציג את התגובה לפקודה

לאחר מכן, צור את הפונקציה שמעלה את תמונת הכלב ומקשרת אותה לרשומת הכלב המתאימה על ידי הזנת הפקודה למטה או משהו דומה לסוכן ה-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.

הפקודה לעיל מבטיחה שתמונת הכלב תועלה כהלכה ותיקושר לרשומת הכלב הנכונה תוך טיפול בשגיאות אפשריות.

עליך לקבל תגובה שהפונקציה נוצרה בהצלחה.

שתי פונקציות העזר מיושמות בקובץ utils.js כדי לשמור על מודולריות הקוד. כעת, יש ברשותך את שתי פונקציות העזר הדרושות ליישום תכונת ההרשמה של האפליקציה שלך.

יישום תכונת ההרשמה

ליישום תכונת ההרשמה באפליקציה שלך, יש צורך בשם הכלב, גילו, גזעו, תמונה, ושם המשתמש של הבעלים.

לאחר מכן, יש ליצור קוד שחזור עבור הבעלים, לרשום את הביקור, להעלות את תמונת הכלב (ברקע), ולהחזיר את הקוד לבעלים.

תוכל להוסיף את הלוגיקה שלמעלה לאפליקציה האחורית שלך על ידי הזנת הפקודה למטה או משהו דומה לסוכן ה-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.

עליך לקבל תגובה המעידה על כך שהפונקציה נוצרה בהצלחה.

תוכל לעיין בקוד שנוצר על ידי סוכן ה-AI ולשנותו במידת הצורך בלוח המחוונים של האפליקציה שלך → Cloud Code, כפי שמוצג בתמונה למטה.

דף Cloud Code של Back4app המדגיש את כפתור ה-cloud code ואת הקבצים בתיקיית הענן

כעת, תוכל להרשם כלבים חדשים לכלין שלך. לאחר מכן, תיישם את תכונת רישום הפעילות.

יישום תכונת רישום הפעילות

בהתאם לדרישות האפליקציה, האפליקציה שלך אמורה לעקוב אחרי כל הפעילויות שבהן היה מעורב הכלב במהלך הביקור.

כדי ליישם את תכונת רישום הפעילות, יש להביא את רשומת הביקור וליצור פעילות חדשה עם המידע הנדרש.

תוכל להוסיף את הלוגיקה שלמעלה לאפליקציה האחורית שלך על ידי הזנת הפקודה למטה או משהו דומה לסוכן ה-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.

תוכל לבדוק את לוח המחוונים שלך כדי לוודא שפונקציה זו מיושמת כראוי ולבצע שינויים במידת הצורך.

יישום תכונת ה-checkout

ליישם את תכונת ה-checkout, יש להביא את רשומת הביקור באמצעות retrieval_code, לכלול פרטים של הכלב והבעלים הקשורים, לעדכן את check_out_time ולהחזיר תגובה עם פרטי הכלב והבעלים, וכן זמני ההרשמה וה-checkout של הביקור.

תוכל להוסיף את הלוגיקה שלמעלה לאפליקציה האחורית שלך על ידי הזנת הפקודה למטה או משהו דומה לסוכן ה-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.

תוכל לעיין בקוד שנוצר על ידי סוכן ה-AI בלוח המחוונים של האפליקציה שלך → Cloud Codemain.js.

לוח מחוונים של Cloud Code ב-Back4app המציג את תוכן קובץ main.js

עם יישום מלא של תכונת ה-checkout, השלמת את דרישות האפליקציה לניהול כלין פשוט.

סיכום

במאמר זה בנית מערכת ניהול כלין סקלאבילית שתומכת בהרשמות, עוקבת אחרי פעילויות הכלבים במהלך הביקורים, ומאפשרת לבעלי כלבים לשחזר את כלביהם בסיום הביקור באמצעות AI.

כדי לשפר את יכולת ההתרחבות של האפליקציה שלך, עיצבת מסד נתונים מנורמל כדי להבטיח שהשאילתות שלך לא יהיו איטיות.

בנוסף, מסרת משימות ארוכות כמו העלאת תמונת הכלב לפונקציה שרצה ברקע וחילקת את הקוד לקבצים כדי להקל על התחזוקה.

עם השלמת המערכת האחורית, תוכל לחבר אותה לממשק משתמש (UI) שנבנה באמצעות ספריית frontend כמו React, Svelte או Vue ולפרוס אותו באמצעות Docker בפלטפורמות כמו Back4app Web Deployment Platform.


Leave a reply

Your email address will not be published.