AI के साथ स्केलेबल Backend: चरण-दर-चरण गाइड

एक “स्केलेबल” बैकएंड वह है जो बढ़े हुए लोड को बिना प्रदर्शन में उल्लेखनीय गिरावट के संभाल सके।

एक स्केलेबल बैकएंड बनाने में कई प्रक्रियाएँ और विचार शामिल होते हैं, जैसे कि डेटाबेस डिज़ाइन और डिप्लॉयमेंट रणनीति।

इस लेख में, आप आर्टिफिशियल इंटेलिजेंस (AI) की मदद से एक स्केलेबल बैकएंड कैसे बनाएं, यह सीखेंगे।

एक बैकएंड को स्केलेबल बनाने वाले तत्व कौन से हैं?

सॉफ्टवेयर विकास जीवनचक्र के दौरान लागू किए गए विभिन्न कारक मिलकर एक बैकएंड को स्केलेबल बनाते हैं।

एक कारक जो बैकएंड की स्केलेबिलिटी में योगदान देता है वह है डेटाबेस क्वेरीज़ की गति।

धीमी क्वेरीज़ आपके सर्वर के रिस्पॉन्स टाइम को बढ़ाती हैं और एक साथ कई अनुरोधों को संसाधित करने की क्षमता को प्रभावित करती हैं।

आप एक उपयुक्त स्कीमा डिज़ाइन लागू करके और कुशल क्वेरीज़ लिखकर अपनी क्वेरीज़ को तेज बना सकते हैं।

असिंक्रोनस प्रोसेसिंग भी एक ऐसा तत्व है जो बैकएंड को स्केलेबल बना सकता है। रिसोर्स-इंटेंसिव टास्क्स निष्पादन थ्रेड्स को ब्लॉक कर सकते हैं और सर्वर की एक साथ कई अनुरोधों को प्रोसेस करने की क्षमता को सीमित कर सकते हैं।

आप इस समस्या को बड़े गणनाओं और फ़ाइल अपलोड जैसे रिसोर्स-इंटेंसिव टास्क्स को बैकग्राउंड जॉब्स में सौंपकर हल कर सकते हैं।

एक अन्य कारक आपकी डिप्लॉयमेंट रणनीति है। आपको Back4app जैसी सेवाओं के माध्यम से एक स्केलेबल डिप्लॉयमेंट रणनीति का उपयोग करके अपने बैकएंड को डिप्लॉय करना होगा।

उदाहरण के लिए, ट्रैफ़िक में वृद्धि होने पर नए कंटेनर स्वचालित रूप से स्पिन अप हो जाते हैं, जिससे लोड कई इंस्टेंसेस में बिना मैन्युअल हस्तक्षेप के वितरित हो जाता है।

इसी तरह, जब मांग कम होती है तो सिस्टम स्केल डाउन हो जाता है, और अनावश्यक संसाधनों को रिलीज़ कर देता है।

इस ट्यूटोरियल में, आप एक केनेल मैनेजमेंट एप्लिकेशन बनाएंगे जो उपरोक्त सभी कारकों को लागू करता है ताकि यह स्केलेबल हो सके।

AI के साथ एक स्केलेबल बैकएंड डिज़ाइन करना

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

जैसा कि ऊपर बताया गया है, आप एक केनेल मैनेजमेंट एप्लिकेशन बनाएंगे। यहां एप्लिकेशन की आवश्यकताएं दी गई हैं:

  • आपका एप्लिकेशन मालिकों को उनके कुत्तों को आपके केनेल में चेक इन करने की अनुमति देगा।
  • जब कोई मालिक अपने कुत्ते को आपके केनेल में चेक इन करता है, तो आपका एप्लिकेशन कुत्ते का विवरण संग्रहीत करेगा, जैसे कि उसका नाम, नस्ल, उम्र, मालिक का नाम, और छवि। फिर, यह मालिक के लिए एक अद्वितीय कोड जेनरेट करेगा।
  • मालिक को प्राप्त होने वाला अद्वितीय कोड ही अंतिम समय पर उनके कुत्ते को केनेल से प्राप्त करने का एकमात्र तरीका है।
  • केनेल में दौरे के दौरान, आप कुत्ते की शामिल सभी गतिविधियों का रिकॉर्ड रखेंगे। इस ट्यूटोरियल में केवल खाना, दवा, और ग्रूमिंग शामिल होंगे।
  • दौरे के अंत में, मालिक चेक-इन पर प्राप्त अद्वितीय कोड प्रदान करेगा और अपने कुत्ते(ओं) को प्राप्त करेगा।

ऊपर दी गई आवश्यकताओं को साकार करने का पहला कदम एक सामान्यीकृत डेटाबेस डिज़ाइन करना है, जिसमें डेटा दोहराव कम से कम हो।

आप Back4app AI Agent की मदद से इस डेटाबेस स्कीमा को डिज़ाइन और क्रिएट करेंगे, जो एक AI बैकएंड जनरेटर के रूप में कार्य करेगा।

The Back4app AI Agent

Back4app AI Agent एक LLM है जो Back4app उत्पादों, Backend Platform, और Web Deployment Platform के साथ इंटरफेस करता है।

यह आपको इन उत्पादों के साथ प्रॉम्प्ट्स का उपयोग करके बातचीत करने की अनुमति देता है और AI के साथ एक स्केलेबल बैकएंड बनाने में आपकी मदद करेगा।

AI Agent तक पहुँचने के लिए, आपको Back4app खाता चाहिए। यदि आपके पास खाता नहीं है, तो आप मुफ्त में साइन अप कर सकते हैं।

अपने Back4app खाते में लॉग इन करें और अपने डैशबोर्ड के नेवबार पर “AI Agent” लिंक पर क्लिक करें।

Back4app app dashboard navbar with the AI Agent link highlighted

लिंक पर क्लिक करने से आपको AI Agent पेज पर ले जाया जाएगा, जैसा कि नीचे दी गई छवि में दिखाया गया है।

Back4app AI agent start page

आप इस पेज पर विभिन्न प्रॉम्प्ट्स दर्ज कर सकते हैं, जैसे कि Back4app खाते पर एक नया BaaS एप्लिकेशन बनाने के लिए।

AI के साथ बैकएंड बनाएं

Back4app पर एक नया बैकएंड एप्लिकेशन बनाने के लिए, आप नीचे दिया गया या समान प्रॉम्प्ट AI Agent में दर्ज कर सकते हैं।

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

आपको एक प्रतिक्रिया मिलनी चाहिए कि एप्लिकेशन सफलतापूर्वक बनाया गया है।

AI agent response with redacted sensitive information

आप अपने Back4app डैशबोर्ड पर बने एप्लिकेशन को देख सकते हैं, जैसा कि नीचे दी गई छवि में दिखाया गया है।

Default Back4app dashboard

जैसा कि ऊपर दी गई छवि में दिखाया गया है, आपके नए बैकएंड एप्लिकेशन का डेटाबेस डिफ़ॉल्ट _User और _Role क्लासों को छोड़कर खाली है।

अगला कदम आपके बैकएंड एप्लिकेशन में डेटाबेस स्कीमा डिज़ाइन और जोड़ना है।

अपने डेटाबेस का डिज़ाइन करना

ऊपर दी गई आवश्यकताओं के लिए एक सामान्यीकृत डेटाबेस स्कीमा डिज़ाइन करने के लिए, नीचे दिया गया या इसी तरह का प्रॉम्प्ट AI Agent में दर्ज करें।

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

ऊपर दिया गया प्रॉम्प्ट एक ऐसा डेटाबेस स्कीमा लौटाना चाहिए जैसा कि नीचे चित्रित किया गया है।

Visual representation of a normalized database schema

ऊपर के डेटाबेस स्कीमा में चार टेबल्स हैं: owners, dogs, visits, और activities। एक owner के पास कई dogs हो सकते हैं (one-to-many), लेकिन प्रत्येक कुत्ता केवल एक ही मालिक से संबंधित होता है, जो dogs टेबल में एक foreign key के माध्यम से जुड़ा होता है।

इसी तरह, एक dog के पास समय के साथ कई visits हो सकते हैं (one-to-many), जिनमें से प्रत्येक उस कुत्ते के लिए विशिष्ट होता है और visits टेबल में foreign key द्वारा ट्रैक किया जाता है।

इसके अतिरिक्त, प्रत्येक visit में कई activities (one-to-many) शामिल हो सकती हैं, जैसे कि खाना, ग्रूमिंग, या दवा, जो activities टेबल में visit_id foreign key के माध्यम से एक विशिष्ट visit से जुड़ी होती हैं।

अब जब आपके पास आपके डेटाबेस का डिज़ाइन है, तो आप AI को नीचे दिए गए या इसी तरह के प्रॉम्प्ट के साथ बैकएंड में डेटाबेस बनाने के लिए निर्देश देंगे।

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

आपको एक प्रतिक्रिया मिलनी चाहिए कि डेटाबेस सफलतापूर्वक बनाया गया है। आप अपने एप्लिकेशन डैशबोर्ड पर नए बनाए गए टेबल्स की पुष्टि कर सकते हैं, जैसा कि नीचे दी गई छवि में दिखाया गया है।

Back4app dashboard highlighting newly created database tables.

अब जब आपने अपने बैकएंड को बनाया और अपने एप्लिकेशन के डेटाबेस टेबल्स जोड़ दिए हैं, तो आप एप्लिकेशन लॉजिक को लागू करेंगे।

AI के साथ अपने बैकएंड लॉजिक को लागू करना

एप्लिकेशन आवश्यकताओं के अनुसार, आपका एप्लिकेशन मालिकों को उनके कुत्तों को केनेल में चेक इन करने, कुत्ते का विवरण जैसे नाम, नस्ल, उम्र, मालिक का नाम, और छवि संग्रहीत करने, और मालिक के लिए एक अद्वितीय retrieval code जेनरेट करने में सक्षम होना चाहिए।

इन आवश्यकताओं को लागू करने के लिए, आपको एक utility function की आवश्यकता है जो एक अद्वितीय retrieval code जेनरेट करे और एक ऐसा भी जो कुत्ते की छवि को बैकग्राउंड में अपलोड करे ताकि अपलोड टास्क आपके एप्लिकेशन के रिस्पॉन्स टाइम को धीमा न करे।

Utility Functions को लागू करना

आप एक utility function बना सकते हैं जो एक अद्वितीय कोड जेनरेट करे, इसके लिए नीचे दिया गया या इसी तरह का प्रॉम्प्ट AI Agent में दर्ज करें:

- 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 page showing the response to a prompt

इसके बाद, कुत्ते की छवि अपलोड करने और उसे संबंधित कुत्ते के रिकॉर्ड से जोड़ने वाला फंक्शन जेनरेट करें, इसके लिए नीचे दिया गया या इसी तरह का प्रॉम्प्ट 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.

ऊपर दिया गया प्रॉम्प्ट सुनिश्चित करता है कि कुत्ते की छवि सही ढंग से अपलोड हो और संबंधित कुत्ते के रिकॉर्ड से जुड़ी हो, साथ ही अपलोड प्रक्रिया के दौरान संभावित त्रुटियों का प्रबंधन भी करता है।

आपको एक प्रतिक्रिया मिलनी चाहिए कि फंक्शन सफलतापूर्वक बनाया गया है।

ये दोनों utility functions utils.js फाइल में लागू किए गए हैं ताकि कोड मॉड्यूलैरिटी बनी रहे। अब, आपके पास अपने एप्लिकेशन के चेक-इन फीचर को लागू करने के लिए आवश्यक दोनों utility functions हैं।

चेक-इन फीचर को लागू करना

अपने एप्लिकेशन के चेक-इन फीचर को लागू करने के लिए, आपको कुत्ते का नाम, उम्र, नस्ल, छवि, और मालिक का यूज़रनेम चाहिए।

फिर, आपको मालिक के लिए एक retrieval code जेनरेट करना होगा, दौरे का रिकॉर्ड रखना होगा, कुत्ते की छवि को (बैकग्राउंड में) अपलोड करना होगा, और कोड को मालिक को रिटर्न करना होगा।

आप ऊपर दी गई लॉजिक को अपने बैकएंड एप्लिकेशन में जोड़ने के लिए नीचे दिया गया या इसी तरह का प्रॉम्प्ट AI Agent में दर्ज कर सकते हैं:

- 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 में AI Agent द्वारा बनाया गया कोड देख सकते हैं और आवश्यकतानुसार उसमें संशोधन कर सकते हैं, जैसा कि नीचे दी गई छवि में दिखाया गया है।

Back4app cloud code page highlighting the cloud code button and the files in the cloud folder

अब, आप अपने केनेल में नए कुत्तों को चेक-इन कर सकते हैं। अगला, आप रिकॉर्ड एक्टिविटी फीचर को लागू करेंगे।

रिकॉर्ड एक्टिविटी फीचर को लागू करना

एप्लिकेशन आवश्यकताओं के आधार पर, आपका एप्लिकेशन दौरे के दौरान कुत्ते की शामिल सभी गतिविधियों का रिकॉर्ड रखेगा।

रिकॉर्ड एक्टिविटी फीचर को लागू करने के लिए, आपको visit रिकॉर्ड प्राप्त करना होगा और आवश्यक जानकारी के साथ एक नई activity क्रिएट करनी होगी।

आप ऊपर दी गई लॉजिक को अपने बैकएंड एप्लिकेशन में जोड़ने के लिए नीचे दिया गया या इसी तरह का प्रॉम्प्ट AI Agent में दर्ज कर सकते हैं:

- 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 का उपयोग करके visit रिकॉर्ड प्राप्त करना होगा, संबंधित कुत्ते और मालिक का विवरण शामिल करना होगा, check_out_time अपडेट करना होगा, और कुत्ते तथा मालिक की जानकारी के साथ-साथ visit के check-in और checkout समय का विवरण प्रदान करना होगा।

आप ऊपर दी गई लॉजिक को अपने बैकएंड एप्लिकेशन में जोड़ने के लिए नीचे दिया गया या इसी तरह का प्रॉम्प्ट AI Agent में दर्ज कर सकते हैं:

- 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 में AI Agent द्वारा बनाया गया कोड देख सकते हैं।

Back4app Cloud Code Dashboard showing the contents of the main.js file

चेकआउट फीचर के पूरी तरह लागू होने के साथ, आपने एक साधारण केनेल मैनेजमेंट एप्लिकेशन के एप्लिकेशन आवश्यकताओं को पूरा कर लिया है।

निष्कर्ष

इस लेख में, आपने एक स्केलेबल केनेल मैनेजमेंट एप्लिकेशन बनाया जो चेक-इन, दौरे के दौरान कुत्तों की गतिविधियों का ट्रैक रखता है, और AI के माध्यम से मालिकों को दौरे के अंत में उनके कुत्तों को प्राप्त करने की अनुमति देता है।

अपने एप्लिकेशन की स्केलेबिलिटी में सुधार करने के लिए, आपने एक सामान्यीकृत डेटाबेस डिज़ाइन किया ताकि आपकी क्वेरीज़ धीमी न हों।

आपने लंबी अवधि चलने वाले टास्क्स जैसे कुत्ते की छवि अपलोड को बैकग्राउंड में चलने वाले फंक्शन को सौंप दिया और कोड को फाइलों में विभाजित किया ताकि उसे बनाए रखना आसान हो सके।

अपने बैकएंड के पूरा हो जाने के बाद, आप इसे एक UI से कनेक्ट कर सकते हैं जिसे React, Svelte, या Vue जैसी फ्रंटएंड लाइब्रेरी के साथ बनाया गया हो और Docker का उपयोग करके Back4app Web Deployment Platform जैसी प्लेटफ़ॉर्म पर डिप्लॉय किया जा सके।


Leave a reply

Your email address will not be published.