एज़्योर पर एक स्केलेबल एप्लिकेशन बनाना | मूल, AI द्वारा अनुवादित
इस ब्लॉग पोस्ट को ChatGPT-4o के सहयोग से लिखा गया है।
सामग्री सूची
- परिचय
- Azure Subscription से शुरू करना
- Azure Kubernetes Service (AKS) के साथ एप्लिकेशन डिप्लॉय करना
- पॉड्स से लॉग्स प्राप्त करना
- Azure Application Insights के साथ निगरानी और निदान
- Azure Virtual Machines (VMs) का उपयोग करना
- Azure Event Hubs के साथ रियल-टाइम डेटा इनजेस्टन
- Azure API Management Services के साथ APIs प्रबंधित करना
- Azure SQL Databases का उपयोग करना
- Kusto Query Language (KQL) के साथ लॉग्स क्वेरी करना
- प्रोएक्टिव निगरानी के लिए अलर्ट सेटअप करना
- निष्कर्ष
परिचय
क्लाउड कंप्यूटिंग के दुनिया में, माइक्रोसॉफ्ट एज़्योर एक मजबूत प्लेटफॉर्म के रूप में उभर कर आता है, जो एप्लिकेशन बनाना, डिप्लॉय करना और प्रबंधित करना संभालता है। हमारी हालिया परियोजना में, हमने कई Azure सेवाओं का उपयोग किया, जिसमें Azure Subscription, Azure Kubernetes Service (AKS), Application Insights, Virtual Machines (VMs), Event Hubs, API Management Services, और SQL Databases शामिल हैं, ताकि एक स्केलेबल और निगरानी वाले एप्लिकेशन इन्फ्रास्ट्रक्चर बनाया जा सके। इस ब्लॉग पोस्ट में, हमने अपने दृष्टिकोण, उपयोग किए गए उपकरणों, सर्वोत्तम प्रथाओं और क्लस्टर प्रबंधित करने, लॉग्स प्राप्त करने और लॉग्स क्वेरी करने के लिए विस्तृत चरणों का वर्णन किया है।
Azure Subscription से शुरू करना
एक Azure Subscription आपका Azure सेवाओं तक पहुंचने का प्रवेश द्वार है। यह एक कंटेनर के रूप में कार्य करता है जो सभी संसाधनों, जैसे वर्चुअल मशीनें, डेटाबेस और Kubernetes क्लस्टर को समाहित करता है।
- Azure Subscription सेटअप करना:
- साइन अप: अगर आपके पास एक Azure खाता नहीं है, तो Azure पोर्टल पर साइन अप करके शुरू करें।
- Subscription बनाना: “Subscriptions” अनुभाग पर जाएं और एक नया subscription बनाएं। यह आपका बिलिंग और प्रबंधन कंटेनर होगा।
- संसाधन संगठन:
- Resource Groups: अपने संसाधनों को उनके लाइफसाइकिल और प्रबंधन मानदंडों के आधार पर resource groups में संगठित करें।
- Tags: अतिरिक्त मेटाडेटा और आसान संसाधन प्रबंधन और बिलिंग के लिए टैग का उपयोग करें।
Azure Kubernetes Service (AKS) के साथ एप्लिकेशन डिप्लॉय करना
Azure Kubernetes Service (AKS) एक प्रबंधित Kubernetes सेवा है जो कंटेनराइज्ड एप्लिकेशन डिप्लॉय, प्रबंधित और स्केल करने को सरल बनाती है।
एक AKS क्लस्टर बनाना और प्रबंधित करना
- Azure पोर्टल में एक AKS क्लस्टर बनाना:
- सेटअप: Azure पोर्टल में, AKS खोजें और एक नया Kubernetes क्लस्टर बनाएं।
- कॉन्फ़िगरेशन: अपने क्लस्टर के आकार का चयन करें, नोड पूल कॉन्फ़िगर करें और नेटवर्किंग सेटअप करें।
- ऑथेंटिकेशन: सुरक्षित एक्सेस कंट्रोल के लिए Azure Active Directory (AAD) का उपयोग करें।
- निगरानी: सेटअप प्रक्रिया के दौरान निगरानी और लॉगिंग को सक्षम करें।
- Azure CLI के साथ एक AKS क्लस्टर बनाना:
az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 3 \ --enable-addons monitoring \ --generate-ssh-keys
- अपने AKS क्लस्टर का प्रबंधन करना:
- क्लस्टर स्केल करना:
az aks scale \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 5
- क्लस्टर अपग्रेड करना:
az aks upgrade \ --resource-group myResourceGroup \ --name myAKSCluster \ --kubernetes-version 1.21.2
- क्लस्टर स्केल करना:
एप्लिकेशन डिप्लॉय करना
- Kubernetes Manifests का उपयोग करना: अपने डिप्लॉयमेंट, सर्विस और अन्य Kubernetes ऑब्जेक्ट्स के लिए YAML फाइलें लिखें।
apiVersion: apps/v1 kind: Deployment metadata: name: myapp spec: replicas: 2 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: myregistry.azurecr.io/myapp:latest ports: - containerPort: 80
- kubectl के साथ डिप्लॉय करना:
kubectl apply -f myapp-deployment.yaml
- Helm Charts: Helm का उपयोग Kubernetes एप्लिकेशन प्रबंधित करने और वर्जन कंट्रोल के लिए करें।
helm install myapp ./mychart
पॉड्स से लॉग्स प्राप्त करना
- एक पॉड से जुड़ना और लॉग्स प्राप्त करना:
kubectl logs <pod-name>
- लॉग्स स्ट्रीम करना:
kubectl logs <pod-name> -f
- लॉग्स स्ट्रीम करना:
- लॉगिंग के लिए साइडकार का उपयोग करना:
- अपने पॉड स्पेसिफिकेशन में एक लॉगिंग साइडकार कंटेनर बनाएं ताकि लॉग्स को एक केंद्रीकृत लॉगिंग सेवा में भेजा जा सके।
spec: containers: - name: myapp image: myregistry.azurecr.io/myapp:latest ... - name: log-shipper image: log-shipper:latest ...
Azure Application Insights के साथ निगरानी और निदान
Application Insights अपने एप्लिकेशन के लिए शक्तिशाली निगरानी और निदान क्षमताएं प्रदान करता है।
- Application Insights सेटअप करना:
- इंटीग्रेशन: अपने एप्लिकेशन कोड में Application Insights SDK जोड़ें।
- इंस्ट्रूमेंटेशन की: अपने Application Insights संसाधन से इंस्ट्रूमेंटेशन की को कॉन्फ़िगर करें।
- प्रदर्शन ट्रैक करना:
- मेट्रिक्स: रिस्पॉन्स टाइम, फेल्योर रेट और एप्लिकेशन डिपेंडेंसीज का निगरानी करें।
- लाइव मेट्रिक्स स्ट्रीम: तत्काल अंतर्दृष्टि के लिए रियल-टाइम प्रदर्शन मेट्रिक्स देखें।
- निदान और ट्रबलशूटिंग:
- एप्लिकेशन मैप: डिपेंडेंसीज को विज़ुअलाइज़ करें और प्रदर्शन बोटलनेक्स पहचानें।
- ट्रांजैक्शन निदान: डिस्ट्रीब्यूटेड ट्रेसिंग का उपयोग करके सर्विसों के बीच अनुरोधों का ट्रेस करें।
Azure Virtual Machines (VMs) का उपयोग करना
Azure VMs उन अनुप्रयोगों और सेवाओं को चलाने की लचीलापन प्रदान करते हैं जो कंटेनराइज्ड नहीं हैं।
- वर्चुअल मशीनें प्रोविजन करना:
- VMs बनाना: Azure पोर्टल में, नए वर्चुअल मशीनें बनाएं और उपयुक्त आकार और ऑपरेटिंग सिस्टम का चयन करें।
- नेटवर्क कॉन्फ़िगरेशन: ट्रैफिक को नियंत्रित करने के लिए वर्चुअल नेटवर्क, सबनेट और सुरक्षा समूह सेटअप करें।
- VMs कॉन्फ़िगर करना:
- सॉफ्टवेयर इंस्टॉलेशन: आवश्यक सॉफ्टवेयर और डिपेंडेंसीज इंस्टॉल करें।
- सुरक्षा: नियमित रूप से पैच और अपडेट लागू करें, फायरवॉल कॉन्फ़िगर करें और नेटवर्क सुरक्षा समूह (NSGs) का उपयोग करें।
- VMs प्रबंधित करना:
- बैकअप और रिस्टोर: Azure Backup का उपयोग VM बैकअप के लिए करें।
- निगरानी: Azure Monitor का उपयोग करके VM प्रदर्शन का निगरानी करें।
Azure Event Hubs के साथ रियल-टाइम डेटा इनजेस्टन
Azure Event Hubs एक बिग डेटा स्ट्रीमिंग प्लेटफॉर्म और इवेंट इनजेस्टन सेवा है जो प्रति सेकंड मिलियन इवेंट प्राप्त और प्रोसेस करने में सक्षम है।
- Event Hubs सेटअप करना:
- एक Event Hub Namespace बनाना: Azure पोर्टल में, अपने Event Hubs को समाहित करने के लिए एक Event Hub namespace बनाएं।
- Event Hubs बनाना: namespace के भीतर, अपने डेटा स्ट्रीम्स को कैप्चर करने के लिए एक या अधिक Event Hubs बनाएं।
- डेटा इनजेस्ट करना:
- प्रोड्यूसर्स: अपने एप्लिकेशन या सेवाओं को Event Hubs में इवेंट भेजने के लिए SDKs कॉन्फ़िगर करें जो कई भाषाओं (जैसे, .NET, Java, Python) के लिए उपलब्ध हैं।
- पार्टिशन: पार्टिशन का उपयोग करके इवेंट प्रोसेसिंग को स्केल करें, जिससे उच्च थ्रूपुट और पैरालेलिज्म सुनिश्चित हो।
- इवेंट्स प्रोसेस करना:
- कंस्यूमर्स: कंस्यूमर ग्रुप का उपयोग करके इवेंट्स को पढ़ें और प्रोसेस करें। Azure कई विकल्प प्रदान करता है, जिसमें Azure Stream Analytics, Azure Functions, और Event Hubs SDK का उपयोग करके कस्टम प्रोसेसिंग शामिल है।
- Event Hubs का निगरानी करना:
- मेट्रिक्स: Azure पोर्टल के माध्यम से थ्रूपुट, लेटेंसी और इवेंट प्रोसेसिंग मेट्रिक्स का निगरानी करें।
- अलर्ट: उच्च लेटेंसी या ड्रॉप्ड संदेशों जैसे किसी भी समस्या के बारे में आपको सूचित करने के लिए अलर्ट सेटअप करें।
Azure API Management Services के साथ APIs प्रबंधित करना
Azure API Management Services मौजूदा बैक-एंड सेवाओं के लिए एकसंगत और आधुनिक API गेटवे बनाना संभालते हैं।
- API Management सेटअप करना:
- एक API Management सेवा बनाना: Azure पोर्टल में, API Management खोजें और एक नई सेवा बनाएं।
- APIs कॉन्फ़िगर करना: OpenAPI स्पेसिफिकेशन्स, Azure Functions, या अन्य बैकएंड्स से APIs को परिभाषित और आयात करें।
- APIs सुरक्षित करना:
- ऑथेंटिकेशन और ऑथोराइजेशन: OAuth2, JWT वैलिडेशन और अन्य मेकेनिज्म का उपयोग करके अपने APIs को सुरक्षित करें।
- रेट लिमिटिंग और थ्रॉटलिंग: अपने APIs को दुरुपयोग से बचाने के लिए पॉलिसी लागू करें।
- निगरानी और एनालिटिक्स:
- API इंसाइट्स: उपयोग, प्रदर्शन का निगरानी और लॉग्स का विश्लेषण करें।
- डेवलपर पोर्टल: डेवलपर्स के लिए एक पोर्टल प्रदान करें ताकि वे अपने APIs खोज और उपयोग कर सकें।
- लाइफसाइकिल प्रबंधित करना:
- वर्जनिंग और रिविजन: अपने APIs के विभिन्न वर्जन और रिविजन को आसानी से प्रबंधित करें।
- पॉलिसी प्रबंधन: अनुरोधों और प्रतिक्रियाओं के ट्रांसफॉर्मेशन, वैलिडेशन और रूटिंग के लिए पॉलिसी लागू करें।
Azure SQL Databases का उपयोग करना
Azure SQL Database एक पूर्ण रूप से प्रबंधित रिलेशनल डेटाबेस है जिसमें बिल्ट-इन इंटेलिजेंस, उच्च उपलब्धता और स्केलेबिलिटी है।
- Azure SQL Database सेटअप करना:
- एक SQL डेटाबेस बनाना: Azure पोर्टल में, SQL डेटाबेस पर जाएं और एक नया डेटाबेस बनाएं।
- डेटाबेस कॉन्फ़िगर करना: डेटाबेस के आकार, प्रदर्शन स्तर और नेटवर्किंग सेटिंग्स सेट करें।
- SQL डेटाबेस से कनेक्ट करना:
- कनेक्शन स्ट्रिंग्स: अपने एप्लिकेशन को SQL डेटाबेस से कनेक्ट करने के लिए प्रदान की गई कनेक्शन स्ट्रिंग्स का उपयोग करें।
- फायरवॉल रूल्स: अपने एप्लिकेशन या लोकल मशीन से एक्सेस की अनुमति देने के लिए फायरवॉल रूल्स कॉन्फ़िगर करें।
- डेटाबेस प्रबंधित करना:
- बैकअप और रिस्टोर: अपने डेटा की सुरक्षा के लिए ऑटोमेटेड बैकअप और पॉइंट-इन-टाइम रिस्टोर का उपयोग करें।
- स्केलिंग: अपने प्रदर्शन आवश्यकताओं के आधार पर डेटाबेस को अप या डाउन स्केल करें।
- निगरानी और प्रदर्शन ट्यूनिंग:
- क्वेरी प्रदर्शन इंसाइट्स: क्वेरी प्रदर्शन का निगरानी और अनुकूलन करें।
- ऑटोमेटिक ट्यूनिंग: प्रदर्शन सुधारने के लिए ऑटोमेटिक ट्यूनिंग फीचर्स को सक्षम करें।
Kusto Query Language (KQL) के साथ लॉग्स क्वेरी करना
Kusto Query Language (KQL) का उपयोग Azure Monitor Logs को क्वेरी करने के लिए किया जाता है, जो अपने लॉग डेटा में शक्तिशाली अंतर्दृष्टि प्रदान करता है।
- बेसिक KQL क्वेरी:
// एक विशिष्ट टेबल से रिकॉर्ड्स प्राप्त करना LogTableName | where TimeGenerated > ago(1h) | project TimeGenerated, Level, Message
- डेटा फिल्टरिंग और एग्रीगेटिंग:
LogTableName | where TimeGenerated > ago(1h) and Level == "Error" | summarize Count=count() by bin(TimeGenerated, 5m)
- टेबल्स जॉइन करना:
Table1 | join kind=inner (Table2) on $left.UserId == $right.UserId | project Table1.TimeGenerated, Table1.Message, Table2.AdditionalInfo
- क्वेरी के आधार पर अलर्ट बनाना:
- Azure पोर्टल में, Log Analytics वर्कस्पेस पर जाएं।
Logs
पर क्लिक करें और अपनी KQL क्वेरी दर्ज करें।New alert rule
पर क्लिक करें ताकि क्वेरी परिणामों के आधार पर एक अलर्ट बनाया जा सके।
प्रोएक्टिव निगरानी के लिए अलर्ट सेटअप करना
Azure Alerts आपको अपने संसाधनों के स्वास्थ्य और प्रदर्शन के बारे में सूचित रखते हैं।
- अलर्ट बनाना:
- मेट्रिक अलर्ट: CPU उपयोग, मेमोरी उपयोग और रिस्पॉन्स टाइम जैसे मेट्रिक्स के आधार पर अलर्ट सेटअप करें।
- लॉग अलर्ट: KQL के साथ लॉग सर्च क्वेरी के आधार पर अलर्ट बनाएं।
- एक्शन कॉन्फ़िगर करना:
- एक्शन ग्रुप: एक्शन ग्रुप परिभाषित करें ताकि यह निर्धारित हो सके कि किसे सूचित किया जाए और कैसे (ईमेल, SMS, वेबहुक)।
- इंटीग्रेशन: ITSM टूल्स जैसे ServiceNow के साथ स्वचालित इन्किडेंट प्रबंधन के लिए इंटीग्रेट करें।
- अलर्ट्स का जवाब देना:
- डैशबोर्ड: अलर्ट्स के लिए एक केंद्रीकृत दृश्य प्रदान करने के लिए Azure डैशबोर्ड सेटअप करें।
- ऑटोमेशन: Azure Automation का उपयोग करके कुछ अलर्ट्स के स्वचालित रूप से जवाब देने के लिए करें।
निष्कर्ष
Azure Subscription, AKS, Application Insights, Virtual Machines, Event Hubs, API Management Services, और SQL Databases का उपयोग करके, हमने एक स्केलेबल, मजबूत और निगरानी वाले एप्लिकेशन इन्फ्रास्ट्रक्चर बनाया। Azure की व्यापक उपकरणों की सूची ने सुनिश्चित किया कि हम अपने एप्लिकेशन को डिप्लॉय, प्रबंधित और निगरानी करने में कुशल हो सकें। इस सेटअप ने न केवल हमारे एप्लिकेशन प्रदर्शन को सुधारा, बल्कि हमें अपने संसाधनों को प्रोएक्टिव रूप से बनाए रखने और अनुकूलित करने के लिए आवश्यक अंतर्दृष्टि भी प्रदान की।