Azure App Service को कॉन्फ़िगर करना
एक बार आपका एप्लिकेशन डिप्लॉय हो जाए, अगला कदम Azure App Service के विभिन्न पहलुओं को कॉन्फ़िगर करना है ताकि यह सुरक्षित और सर्वोत्तम रूप से चले। इस सेक्शन में, हम कस्टम डोमेन, ऑथेंटिकेशन और एप्लिकेशन सेटिंग्स कवर करेंगे।
कस्टम डोमेन कॉन्फ़िगर करना
डिफ़ॉल्ट रूप से, आपका App Service इस तरह के URL से एक्सेस किया जा सकता है: your-app-name.azurewebsites.net। प्रोडक्शन एप्लिकेशनों के लिए, आप आमतौर पर अपना स्वयं का डोमेन नाम उपयोग करना चाहेंगे। कस्टम डोमेन सेट अप करने का तरीका इस प्रकार है:
- यदि आपके पास पहले से डोमेन नहीं है, तो किसी डोमेन रजिस्ट्रार से एक डोमेन खरीदें
- अपने App Service में, बाएँ साइडबार में "Custom domains" पर जाएँ
- "Add custom domain" पर क्लिक करें
- अपना डोमेन नाम दर्ज करें (उदा.,
myapp.example.com) - डोमेन ओनरशिप वेरिफ़ाई करने के लिए निर्देशों का पालन करें
- आपको अपनी DNS सेटिंग्स में
TXTयाCNAMEरिकॉर्ड जोड़ना होगा

एपेक्स डोमेन्स (जैसे example.com बिना www) के लिए, आपको अपने App Service के IP पते की ओर इंगित करते हुए एक A रिकॉर्ड बनाना होगा। यह IP पता आपको कस्टम डोमेन कॉन्फ़िगरेशन पेज पर मिलेगा।
आप Azure CLI का उपयोग करके भी कस्टम डोमेन्स मैनेज कर सकते हैं:
# Add a custom domain
az webapp config hostname add --webapp-name MyWebApp --resource-group MyResourceGroup --hostname www.example.com
SSL सर्टिफिकेट्स बाइंड करना
सुरक्षित एप्लिकेशनों के लिए—खासकर जो संवेदनशील डेटा संभालते हैं—HTTPS सक्षम करना आवश्यक है। Azure App Service इसे आसान बनाता है: आप मुफ़्त मैनेज्ड सर्टिफिकेट्स का उपयोग कर सकते हैं या अपना खुद का अपलोड कर सकते हैं।
SSL सर्टिफिकेट जोड़ने के लिए:
- अपने App Service में "TLS/SSL settings" पर जाएँ
- "Private Key Certificates" चुनें
- निम्न विकल्पों में से एक चुनें:
- मुफ़्त App Service मैनेज्ड सर्टिफिकेट बनाना
- App Service सर्टिफिकेट इम्पोर्ट करना
- PFX सर्टिफिकेट अपलोड करना
- सर्टिफिकेट जोड़ने के बाद, "Bindings" पर जाएँ
- अपने कस्टम डोमेन के लिए SSL बाइंडिंग जोड़ें
संवेदनशील जानकारी संभालने वाले डेटा एप्लिकेशनों के लिए, मैं HTTPS-only मोड सक्षम करने की सलाह देता हूँ ताकि सारा ट्रैफ़िक एन्क्रिप्टेड रहे:
- "TLS/SSL settings" में, "HTTPS Only" सेक्शन पर जाएँ
- स्विच को "On" पर टॉगल करें
- "Save" पर क्लिक करें
ऑथेंटिकेशन और ऑथराइज़ेशन कॉन्फ़िगर करना
कई डेटा एप्लिकेशनों को संवेदनशील डेटा या फ़ंक्शनैलिटी तक पहुँच नियंत्रित करने के लिए यूज़र ऑथेंटिकेशन की आवश्यकता होती है। Azure App Service बिल्ट-इन ऑथेंटिकेशन विकल्प प्रदान करती है, जिससे आपको अपने कोड में ऑथेंटिकेशन लॉजिक इम्प्लीमेंट नहीं करना पड़ता।
ऑथेंटिकेशन सेट अप करने के लिए:
- अपने App Service में, बाएँ साइडबार में "Authentication" पर जाएँ
- "Add identity provider" पर क्लिक करें
- अपना आइडेंटिटी प्रोवाइडर चुनें:
- Microsoft (Azure AD)
- GitHub
- OpenID Connect
- प्रोवाइडर सेटिंग्स कॉन्फ़िगर करें
- रीडायरेक्ट URLs और टोकन स्टोर कॉन्फ़िगरेशन सेट करें

एंटरप्राइज़ डेटा एप्लिकेशनों के लिए, Azure Active Directory अक्सर पसंदीदा विकल्प है, क्योंकि यह मौजूदा कॉर्पोरेट आइडेंटिटीज़ के साथ इंटीग्रेट होता है और कंडीशनल एक्सेस व मल्टी-फैक्टर ऑथेंटिकेशन जैसी सुविधाओं का समर्थन करता है।
आप यह भी कॉन्फ़िगर कर सकते हैं कि आपके एप्लिकेशन तक किसकी पहुँच हो:
- Authentication सेटिंग्स में, अपने आइडेंटिटी प्रोवाइडर के बगल में "Edit" चुनें
- "Restrict access" के तहत, निम्न विकल्पों में से चुनें:
- Unauthenticated अनुरोधों की अनुमति दें
- ऑथेंटिकेशन आवश्यक करें
- अनाम अनुरोधों की अनुमति दें (कोई कार्रवाई नहीं)
- आवश्यक होने पर अनुमत बाहरी रीडायरेक्ट URLs कॉन्फ़िगर करें
ऐप सेटिंग्स और कनेक्शन स्ट्रिंग्स
हमने पहले संक्षेप में ऐप सेटिंग्स कवर की थीं, लेकिन अब देखते हैं कि आप उन्हें अपने डेटा एप्लिकेशन को प्रभावी ढंग से कॉन्फ़िगर करने के लिए कैसे उपयोग कर सकते हैं।
Azure App Service में ऐप सेटिंग्स आपके एप्लिकेशन के लिए एनवायरनमेंट वेरिएबल्स का काम करती हैं। ये विशेष रूप से उपयोगी हैं:
- डेटाबेस कनेक्शन स्ट्रिंग्स
- API कीज़
- फ़ीचर फ़्लैग्स
- एनवायरनमेंट-विशिष्ट कॉन्फ़िगरेशंस
ऐप सेटिंग्स जोड़ने या संशोधित करने के लिए:
- अपने App Service में, बाएँ साइडबार में "Configuration" पर जाएँ
- "Application settings" टैब चुनें
- की-वैल्यू पेयर जोड़ने के लिए "New application setting" पर क्लिक करें
- संवेदनशील वैल्यूज़ के लिए, आप "deployment slot setting" विकल्प टॉगल कर सकते हैं ताकि स्लॉट स्वैप के दौरान वे स्वैप न हों

डेटा एप्लिकेशनों के लिए सामान्य सेटिंग्स में शामिल हैं:
- डेटाबेस कनेक्शन स्ट्रिंग्स
- स्टोरेज अकाउंट एक्सेस कीज़
- मशीन लर्निंग मॉडल एंडपॉइंट्स
- A/B टेस्टिंग के लिए फ़ीचर फ़्लैग्स
आप कनेक्शन स्ट्रिंग्स को अलग से भी कॉन्फ़िगर कर सकते हैं, जो डेटाबेस कनेक्शनों के लिए उपयोगी है:
- Configuration पेज में, "Connection strings" टैब चुनें
- "New connection string" पर क्लिक करें
- नाम, वैल्यू और प्रकार (SQL Server, MySQL, PostgreSQL, आदि) दें
कनेक्शन स्ट्रिंग्स भी आपके एप्लिकेशन में एनवायरनमेंट वेरिएबल्स के रूप में उपलब्ध होती हैं, पर भाषा/फ्रेमवर्क के आधार पर नामकरण अलग हो सकता है।
अपनी Python एप्लिकेशन में सेटिंग्स प्राप्त करने के लिए:
import os
# Retrieve an application setting
api_key = os.environ.get('API_KEY')
# Retrieve a connection string (Python)
connection_string = os.environ.get('SQLCONNSTR_MyDatabase')
Key Vault रेफ़रेंस का उपयोग
अत्यंत संवेदनशील जानकारी जैसे डेटाबेस क्रेडेंशियल्स या API कीज़ के लिए, Azure Key Vault एक अतिरिक्त सुरक्षा परत प्रदान करता है। आप अपने ऐप सेटिंग्स में सीधे Key Vault सीक्रेट्स को रेफ़रेंस कर सकते हैं:
- एक Azure Key Vault बनाएँ और अपने सीक्रेट्स जोड़ें
- सुनिश्चित करें कि आपके App Service के पास मैनेज्ड आइडेंटिटी हो
- उस आइडेंटिटी को Key Vault तक पहुँच दें
- अपनी ऐप सेटिंग्स में इस फ़ॉर्मेट का उपयोग करते हुए सीक्रेट रेफ़रेंस करें: @Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)
यह तरीका संवेदनशील जानकारी को आपकी एप्लिकेशन कॉन्फ़िगरेशन से अलग करता है और केंद्रीकृत सीक्रेट मैनेजमेंट प्रदान करता है।
Azure App Service का स्केलिंग और प्रबंधन
अब जब आपका एप्लिकेशन डिप्लॉय और कॉन्फ़िगर हो चुका है, तो आइए यह सुनिश्चित करने पर ध्यान दें कि इसका प्रदर्शन अच्छा रहे, यह भरोसेमंद बना रहे और बदलते वर्कलोड्स के अनुसार ढल सके।
डेटा एप्लिकेशनों के लिए स्केलिंग और मैनेजमेंट विशेष रूप से महत्वपूर्ण है, क्योंकि उनकी संसाधन आवश्यकताएँ परिवर्तनशील हो सकती हैं और वे संवेदनशील जानकारी प्रोसेस कर सकते हैं।
App Service प्लान्स को स्केल करना
Azure जैसे क्लाउड प्लेटफ़ॉर्म की एक बड़ी खूबी है—डिमांड के आधार पर संसाधनों को ऊपर या नीचे स्केल करने की क्षमता। डेटा एप्लिकेशनों के लिए यह विशेष रूप से उपयोगी है, क्योंकि वर्कलोड्स अक्सर बहुत अलग-अलग होते हैं—कभी गहन डेटा प्रोसेसिंग, तो कभी न्यूनतम ट्रैफ़िक।
Azure App Service दो प्राथमिक स्केलिंग तरीके प्रदान करता है:
वर्टिकल स्केलिंग (Scale up/down)
वर्टिकल स्केलिंग में आपके App Service प्लान का आकार बदलना शामिल है ताकि अधिक या कम CPU, मेमोरी और डिस्क स्पेस मिल सके। यह तब उपयोगी है जब आपके एप्लिकेशन का प्रदर्शन एकल इंस्टेंस के संसाधनों से सीमित हो।
वर्टिकल स्केल करने के लिए:
- अपने App Service प्लान में, बाएँ साइडबार में "Scale up (App Service plan)" चुनें
- अपनी ज़रूरत के अनुसार अलग प्राइसिंग टियर या इंस्टेंस आकार चुनें
- "Apply" पर क्लिक करें

डेटा एप्लिकेशनों के लिए, वर्टिकल स्केलिंग पर विचार करें जब:
- बड़े डेटा प्रोसेसिंग ऑपरेशन्स के कारण आपका ऐप मेमोरी प्रेशर में हो
- मॉडल इन्फ्रेंस के दौरान CPU लिमिट्स हिट हो रहे हों
- डेटा कैशिंग या टेंपरेरी फ़ाइलों के लिए अतिरिक्त स्टोरेज की आवश्यकता हो
हॉरिजॉन्टल स्केलिंग (Scale out/in)
हॉरिजॉन्टल स्केलिंग में आपके एप्लिकेशन को चलाने वाले वर्चुअल मशीन इंस्टेंस की संख्या बदलना शामिल है। यह लोड वितरित करने और उपलब्धता सुधारने के लिए आदर्श है।
हॉरिजॉन्टल स्केल करने के लिए:
- अपने App Service प्लान में, बाएँ साइडबार में "Scale out (App Service plan)" चुनें
- इंस्टेंस काउंट मैन्युअली सेट करें या ऑटो-स्केलिंग रूल्स कॉन्फ़िगर करें
- "Save" पर क्लिक करें
मैन्युअल स्केलिंग में, बस इंस्टेंस की संख्या अपनी इच्छानुसार समायोजित करें। हालाँकि, ऑटो-स्केलिंग मेट्रिक्स के आधार पर संसाधनों को स्वचालित रूप से समायोजित करके अधिक लचीलापन देती है।
ऑटो-स्केलिंग रूल्स सेट करना
परिवर्तनशील वर्कलोड वाले डेटा एप्लिकेशनों के लिए ऑटो-स्केलिंग खासतौर पर मूल्यवान है। उदाहरण के लिए, एक मशीन लर्निंग मॉडल सर्व करने वाला API कारोबार के घंटे में अधिक ट्रैफ़िक और रात में कम ट्रैफ़िक देख सकता है।
ऑटो-स्केलिंग कॉन्फ़िगर करने के लिए:
- "Scale out" सेक्शन में, "Enable autoscale" चुनें
- निम्न घटकों के साथ एक स्केल कंडीशन परिभाषित करें:
- डिफ़ॉल्ट इंस्टेंस काउंट
- स्केल-आउट रूल्स (कब इंस्टेंस जोड़ें)
- स्केल-इन रूल्स (कब इंस्टेंस हटाएँ)
- वैकल्पिक शेड्यूल-आधारित रूल्स

एक सामान्य ऑटो-स्केलिंग रूल का उदाहरण:
- Scale out: जब CPU प्रतिशत > 70% हो 10 मिनट के लिए, तो एक इंस्टेंस जोड़ें
- Scale in: जब CPU प्रतिशत < 30% हो 10 मिनट के लिए, तो एक इंस्टेंस हटाएँ
आप निम्न के आधार पर और भी परिष्कृत रूल्स बना सकते हैं:
- मेमोरी उपयोग
- डेटा क्यू की लंबाई
- Application Insights से कस्टम मेट्रिक्स
डेटा साइंस वर्कलोड्स के लिए, इन ऑटो-स्केलिंग रणनीतियों पर विचार करें:
- यदि आपका एप्लिकेशन मशीन लर्निंग मॉडल्स सर्व करता है, तो रिक्वेस्ट क्यू की लंबाई के आधार पर स्केल करें ताकि प्रेडिक्शन लेटेंसी कम रहे
- ETL प्रक्रियाओं के लिए, ज्ञात प्रोसेसिंग विंडोज़ के दौरान अतिरिक्त क्षमता शेड्यूल करें
- वैश्विक उपयोगकर्ताओं वाले एप्लिकेशनों के लिए, अलग-अलग समय क्षेत्रों में पर्याप्त क्षमता सुनिश्चित करने हेतु शेड्यूल-आधारित स्केलिंग उपयोग करें
आप Azure CLI का उपयोग करके भी ऑटो-स्केलिंग कॉन्फ़िगर कर सकते हैं:
# Create an autoscale setting with a rule to scale out when CPU > 70%
az monitor autoscale create --resource-group MyResourceGroup --resource MyAppServicePlan --resource-type "Microsoft.Web/serverfarms" --name MyAutoScaleConfig --min-count 2 --max-count 5 --count 2
# Add a scale out rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale out 1 --condition "Percentage CPU > 70 avg 10m"
# Add a scale in rule
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale in 1 --condition "Percentage CPU < 30 avg 10m"
मॉनिटरिंग और डायग्नोस्टिक्स
भरोसेमंद डेटा एप्लिकेशनों को बनाए रखने के लिए प्रभावी मॉनिटरिंग महत्वपूर्ण है। Azure व्यापक मॉनिटरिंग टूल्स प्रदान करता है जो आपके एप्लिकेशन के प्रदर्शन, उपयोग पैटर्न और संभावित समस्याओं में दृश्यता देते हैं।
Azure Monitor और Application Insights
Azure Monitor, Azure सेवाओं की मॉनिटरिंग का आधार है, जबकि Application Insights गहन एप्लिकेशन-विशिष्ट इनसाइट्स देता है।
अपने App Service के लिए Application Insights सक्षम करने हेतु:
- अपने App Service में, बाएँ साइडबार में "Application Insights" चुनें
- "Turn on Application Insights" पर क्लिक करें
- नई या मौजूदा Application Insights रिसोर्स कॉन्फ़िगर करें
- "Apply" पर क्लिक करें

सक्रिय होने पर, Application Insights आपके एप्लिकेशन के बारे में प्रचुर डेटा एकत्र करता है, जिसमें शामिल हैं:
- रिक्वेस्ट रेट्स, रिस्पॉन्स टाइम्स और फेल्योर रेट्स
- डिपेंडेंसी कॉल्स (डेटाबेस, एक्सटर्नल APIs)
- पेज व्यू प्रदर्शन
- एक्सेप्शन लॉग्स
- कोड में परिभाषित आपके कस्टम ईवेंट्स
Python एप्लिकेशनों के लिए, आपको Application Insights SDK इंस्टॉल करना होगा:
pip install opencensus-ext-azure
और फिर अपने एप्लिकेशन में इंस्ट्रूमेंटेशन जोड़ें:
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
# Configure the Azure exporter
azure_exporter = AzureExporter(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000'
)
# Create a tracer
tracer = Tracer(exporter=azure_exporter, sampler=ProbabilitySampler(1.0))
# Use the tracer in your application
with tracer.span(name="main_function"):
# Your code here
pass
लॉग्स देखना और अलर्ट्स सेट करना
Azure App Service स्वतः लॉग्स एकत्र करता है जो समस्याओं के निदान में मदद करते हैं:
- अपने App Service में "Log stream" चुनें ताकि रियल-टाइम लॉग्स देखें
- अधिक विस्तृत विश्लेषण के लिए, "Diagnostic logs" पर जाएँ और एप्लिकेशन लॉगिंग सक्षम करें
- लॉग स्तर कॉन्फ़िगर करें (Error, Warning, Information, Verbose)

डेटा एप्लिकेशनों के लिए, विशेष ध्यान दें:
- आउट-ऑफ-मेमोरी एक्सेप्शन्स—बड़े डेटासेट प्रोसेसिंग में आम
- डेटा सोर्सेस से कनेक्शन टाइमआउट्स
- डेटा ट्रांसफॉर्मेशन के दौरान परफॉर्मेंस बॉटलनेक्स
अलर्ट्स सेट करना सुनिश्चित करता है कि समस्याएँ उपयोगकर्ताओं को प्रभावित करने से पहले ही आपको सूचित कर दिया जाए:
- Azure Monitor में, "Alerts" चुनें
- "New alert rule" पर क्लिक करें
- रिसोर्स के रूप में अपना App Service चुनें
- वह कंडीशन परिभाषित करें जो अलर्ट ट्रिगर करे
- किसे और कैसे सूचित करना है, यह निर्धारित करने के लिए एक्शन ग्रुप्स कॉन्फ़िगर करें
- अपने अलर्ट का नाम दें और सेव करें
डेटा एप्लिकेशनों के लिए सामान्य अलर्ट्स में शामिल हैं:
- उच्च मेमोरी उपयोग (>80%)
- सर्वर एरर्स (5xx रिस्पॉन्स)
- मुख्य ऑपरेशन्स के लिए लंबे प्रोसेसिंग टाइम्स
- असफल डेटा कनेक्शन प्रयास
डेटा एप्लिकेशनों के लिए कस्टम मॉनिटरिंग
डेटा-विशिष्ट मॉनिटरिंग आवश्यकताओं के लिए, इन कस्टम मेट्रिक्स को ट्रैक करने पर विचार करें:
- डेटा प्रोसेसिंग थ्रूपुट (प्रति मिनट प्रोसेस रिकॉर्ड्स)
- मॉडल इन्फ्रेंस लेटेंसी
- फ़ीचर कैलकुलेशन टाइम
- कैश हिट/मिस रेशियो
आप Application Insights SDK का उपयोग करके कस्टम मेट्रिक्स भेज सकते हैं:
from opencensus.ext.azure import metrics_exporter
from opencensus.stats import aggregation, measure, stats, view
# Create a metrics exporter
exporter = metrics_exporter.new_metrics_exporter(
connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
# Create and record custom metrics
prediction_time = measure.MeasureFloat(
"prediction_time", "Time taken for model inference", "ms")
prediction_time_view = view.View(
"prediction_time_view", "Model inference time", [], prediction_time, aggregation.LastValueAggregation())
# Register the view
stats.stats.view_manager.register_view(prediction_time_view)
# Record metrics
mmap = stats.stats.stats_recorder.new_measurement_map()
mmap.measure_float_put(prediction_time, 175.5) # Record 175.5ms inference time
mmap.record()
# Force metrics to be sent immediately
exporter.export_metrics([])
बैकअप और रिस्टोर
डेटा एप्लिकेशन अक्सर मूल्यवान जानकारी मैनेज करते हैं, इसलिए बैकअप और रिकवरी क्षमताएँ आवश्यक हैं। Azure App Service बिल्ट-इन बैकअप फ़ंक्शनैलिटी प्रदान करता है जो आपकी एप्लिकेशन फ़ाइलें, कॉन्फ़िगरेशन और कनेक्टेड डेटाबेस कैप्चर कर सकता है।
स्वचालित बैकअप सेट करना
बैकअप कॉन्फ़िगर करने के लिए:
- अपने App Service में, बाएँ साइडबार में "Backups" चुनें
- "Configure" पर क्लिक करें
- बैकअप शेड्यूल सेट करें (डेली, वीकली, या कस्टम)
- बैकअप फ़ाइलों के लिए एक स्टोरेज अकाउंट निर्दिष्ट करें
- वैकल्पिक रूप से बैकअप में डेटाबेस शामिल करें
- "Save" पर क्लिक करें

डेटा एप्लिकेशनों के लिए, इन बैकअप सर्वोत्तम प्रक्रियाओं पर विचार करें:
- कम गतिविधि की अवधि के दौरान बैकअप शेड्यूल करें
- तेज़ बैकअप के लिए सुनिश्चित करें कि आपका स्टोरेज अकाउंट आपके App Service के उसी क्षेत्र में हो
- बार-बार डेटा परिवर्तन वाले एप्लिकेशनों के लिए, अधिक आवृत्ति वाले बैकअप कॉन्फ़िगर करें
- याद रखें कि बड़े डेटाबेस बैकअप आकार सीमाओं से अधिक हो सकते हैं; ऐसे मामलों में डेटाबेस-विशिष्ट बैकअप रणनीतियों पर विचार करें
बैकअप से रिस्टोर करना
यदि आपको अपना एप्लिकेशन रिस्टोर करना हो:
- Backups सेक्शन में, वह बैकअप पॉइंट चुनें जिससे रिस्टोर करना है
- "Restore" पर क्लिक करें
- ऐप कंटेंट, कॉन्फ़िगरेशन और कनेक्टेड डेटाबेस रिस्टोर करने का चुनाव करें
- टार्गेट App Service निर्दिष्ट करें (यह वही या कोई दूसरा ऐप हो सकता है)
- रिस्टोर प्रक्रिया शुरू करने के लिए "OK" पर क्लिक करें
क्रिटिकल डेटा एप्लिकेशनों के लिए, मैं समय-समय पर रिस्टोर प्रक्रिया का परीक्षण करने की अनुशंसा करता हूँ ताकि आपकी रिकवरी रणनीति अपेक्षा के अनुरूप काम करे।
डेटाबेस-विशिष्ट बैकअप रणनीतियाँ
हालाँकि App Service बैकअप में कनेक्टेड डेटाबेस शामिल किए जा सकते हैं, डेटा-इंटेंसिव एप्लिकेशनों को अक्सर डेटाबेस-विशिष्ट बैकअप रणनीतियों से अधिक लाभ मिलता है:
- Azure SQL डेटाबेस के लिए, पॉइंट-इन-टाइम रिस्टोर के साथ ऑटोमैटिक बैकअप कॉन्फ़िगर करें
- Cosmos DB के लिए, कंटीन्यूस बैकअप मोड का उपयोग करें
- Azure Storage में संग्रहीत बड़े डेटासेट्स के लिए, स्टोरेज अकाउंट रेप्लिकेशन और वर्जनिंग का उपयोग करें
Azure App Service में सुरक्षा और अनुपालन
डेटा एप्लिकेशनों के लिए सुरक्षा सर्वोच्च है, खासकर जब वे संवेदनशील या विनियमित जानकारी संभालते हैं। Azure App Service आपके एप्लिकेशनों की सुरक्षा में मदद के लिए कई फीचर्स प्रदान करता है।
रोल-आधारित एक्सेस कंट्रोल (RBAC)
RBAC आपको यह नियंत्रित करने देता है कि आपके App Service संसाधनों को कौन मैनेज कर सकता है:
- Azure Portal में अपने App Service पर जाएँ
- बाएँ साइडबार में "Access control (IAM)" चुनें
- "Add" पर क्लिक करें और फिर "Add role assignment"
- उपयुक्त रोल चुनें:
- Contributor: App Service मैनेज कर सकता है लेकिन दूसरों को एक्सेस नहीं दे सकता
- Reader: देख सकता है, बदल नहीं सकता
- Website Contributor: वेबसाइट्स मैनेज कर सकता है लेकिन App Service प्लान नहीं
- रोल असाइन करने के लिए यूज़र्स, ग्रुप्स या सर्विस प्रिंसिपल्स चुनें
- "Save" पर क्लिक करें

डेटा टीमों के लिए, जॉब जिम्मेदारियों के आधार पर विशिष्ट ऑपरेशन्स तक पहुँच सीमित करने वाले कस्टम रोल बनाने पर विचार करें।
IP प्रतिबंध और नेटवर्किंग
IP प्रतिबंध आपको यह नियंत्रित करने देते हैं कि कौन-से IP पते आपके App Service तक पहुँच सकते हैं:
- अपने App Service में, बाएँ साइडबार में "Networking" चुनें
- "Access Restrictions" पर जाएँ
- "Add rule" पर क्लिक करें
- IP एड्रेस रेंज, एक्शन (Allow/Deny), प्रायोरिटी और नाम निर्दिष्ट करें
- "Add rule" पर क्लिक करें
आंतरिक संसाधनों से कनेक्ट होने वाले डेटा एप्लिकेशनों के लिए, इन पर विचार करें:
- VNet Integration: अपने App Service को अपनी वर्चुअल नेटवर्क से जोड़ें
- Service Endpoints: SQL और Storage जैसी Azure सेवाओं से कनेक्शनों को सुरक्षित करें
- Private Endpoints: अपनी वर्चुअल नेटवर्क से अपने App Service के लिए एक प्राइवेट लिंक बनाएं
VNet Integration सेट करने के लिए:
- Networking सेक्शन में "VNet Integration" चुनें
- "Add VNet" पर क्लिक करें
- एक वर्चुअल नेटवर्क और सबनेट चुनें या बनाएँ
- "OK" पर क्लिक करें
यह इंटीग्रेशन विशेष रूप से आपकी नेटवर्क के भीतर डेटाबेस या अन्य डेटा स्रोतों से सुरक्षित रूप से कनेक्ट होने के लिए उपयोगी है।
सामान्य Azure App Service समस्याओं का ट्रबलशूटिंग
सावधानीपूर्वक योजना के बावजूद, आपके App Service में समस्याएँ आ सकती हैं। यहाँ कुछ सामान्य समस्याएँ और उनके समाधान दिए गए हैं—डेटा एप्लिकेशन परिदृश्यों पर फोकस के साथ।
ऐप क्रैश का निदान
यदि आपका ऐप क्रैश हो रहा है या अनुत्तरदायी है:
- App Service लॉग्स जाँचें:
- रियल-टाइम लॉग्स के लिए "Log stream" पर जाएँ
- ऐतिहासिक डेटा के लिए "Diagnostic logs" देखें
- एक्सेप्शन्स पहचानने के लिए Application Insights का उपयोग करें
- Kudu डायग्नोस्टिक टूल्स चलाएँ:
https://<your-app-name>.scm.azurewebsites.net/DebugConsoleपर जाएँ- कंसोल का उपयोग करके फ़ाइलें और प्रोसेसेज़ जाँचें
डेटा एप्लिकेशनों में क्रैश के सामान्य कारणों में शामिल हैं:
- मेमोरी लिमिट्स: बड़े डेटासेट प्रोसेसिंग उपलब्ध मेमोरी से अधिक हो सकती है
- डिपेंडेंसी समस्याएँ: गायब या असंगत पैकेजेस
- कॉन्फ़िगरेशन एरर्स: गलत कनेक्शन स्ट्रिंग्स या एनवायरनमेंट वेरिएबल्स
मेमोरी-इंटेंसिव ऑपरेशन्स के लिए, इस पर विचार करें:
- अधिक मेमोरी वाले उच्च टियर पर स्केल करना
- छोटे बैचों में प्रोसेस करने के लिए डेटा चंकिंग लागू करना
- अधिक कुशल एल्गोरिद्म या डेटा स्ट्रक्चर्स का उपयोग करना
परफॉर्मेंस समस्याओं का डीबगिंग
यदि आपका एप्लिकेशन धीमा चल रहा है:
- Application Insights परफॉर्मेंस मॉनिटरिंग का उपयोग करें:
- धीमी रिक्वेस्ट्स पहचानने के लिए Performance ब्लेड देखें
- ऐसी डिपेंडेंसी कॉल्स देखें जो बॉटलनेक पैदा कर सकती हैं
- Azure Monitor में सर्वर मेट्रिक्स रिव्यू करें:
- CPU और मेमोरी उपयोग
- HTTP क्यू की लंबाई
- डेटा-हेवी ऑपरेशन्स के लिए डेटाबेस क्वेरी परफॉर्मेंस जाँचें
परफॉर्मेंस सुधारने के लिए:
- बार-बार होने वाली क्वेरीज़ के लिए कैशिंग लागू करें
- डेटाबेस इंडेक्सेस को ऑप्टिमाइज़ करें
- स्केल अप या आउट करने पर विचार करें
- लंबे समय तक चलने वाली प्रक्रियाओं के लिए असिंक ऑपरेशन्स का उपयोग करें
लॉग्स और एरर संदेशों की समीक्षा
Azure App Service कई लॉगिंग विकल्प प्रदान करता है:
- एप्लिकेशन लॉग्स: आपके एप्लिकेशन के अपने लॉग्स
- वेब सर्वर लॉग्स: HTTP रिक्वेस्ट और एरर लॉग्स
- डिप्लॉयमेंट लॉग्स: आपकी डिप्लॉयमेंट प्रक्रिया की जानकारी
- विस्तृत एरर लॉगिंग: HTTP एरर्स के बारे में अधिक जानकारी
अधिक विस्तृत लॉगिंग कॉन्फ़िगर करने के लिए:
- अपने App Service में "Diagnostic logs" पर जाएँ
- उपयुक्त लॉग प्रकार सक्षम करें
- उपयुक्त स्तर सेट करें (Error, Warning, Information, Verbose)
- लॉग्स को फ़ाइल सिस्टम या ब्लॉब स्टोरेज में स्टोर करना चुनें
Python एप्लिकेशनों के लिए, आप लॉगिंग को इस तरह एन्हांस कर सकते हैं:
import logging
import sys
# Configure logging
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
handlers=[
logging.StreamHandler(sys.stdout)
]
)
# Use logging in your application
logger = logging.getLogger(__name__)
logger.info("Processing data batch")
logger.error("Failed to connect to database", exc_info=True)
Azure App Service के साथ लागत प्रबंधन
डेटा एप्लिकेशन अक्सर बड़े संसाधन उपभोग करते हैं, इसलिए लागत को समझना और अनुकूलित करना विशेष रूप से महत्वपूर्ण है। इस अंतिम सेक्शन में, हम Azure App Service प्राइसिंग मॉडल और लागत को प्रभावी ढंग से मैनेज करने की रणनीतियों का अन्वेषण करेंगे।
Azure App Service प्राइसिंग समझना
Azure App Service की प्राइसिंग मुख्यतः आपके द्वारा चुने गए App Service प्लान पर आधारित होती है। आइए लागत कारकों को समझें:
App Service प्लान टियर्स
जैसा कि हमने पहले कवर किया, Azure कई प्राइसिंग टियर्स प्रदान करता है, जिनकी क्षमताएँ और लागतें अलग-अलग हैं:
|
टियर |
मासिक लागत रेंज (USD) |
विशेषताएँ |
उपयुक्त किसके लिए |
|
Free |
$0 |
1GB स्टोरेज, साझा इन्फ्रास्ट्रक्चर, 60 मिनट/दिन कंप्यूट |
डेवलपमेंट, लर्निंग |
|
Shared (D1) |
$10-15 |
1GB स्टोरेज, 240 मिनट/दिन कंप्यूट |
लो-ट्रैफिक साइट्स, टेस्टिंग |
|
Basic (B1-B3) |
$55-220 |
डेडिकेटेड VM, मैनुअल स्केल, कस्टम डोमेन्स |
प्रोडक्शन वर्कलोड्स, लो से मीडियम ट्रैफिक |
|
Standard (S1-S3) |
$70-400 |
ऑटो-स्केलिंग, स्टेजिंग स्लॉट्स, दैनिक बैकअप्स |
परिवर्तनशील ट्रैफिक वाले प्रोडक्शन ऐप्स |
|
Premium (P1V2-P3V2) |
$80-500 |
उन्नत परफॉर्मेंस, अधिक स्केलिंग विकल्प |
उच्च-प्रदर्शन आवश्यकताएँ, बड़े एप्लिकेशन |
|
Isolated |
$300-1000+ |
समर्पित नेटवर्क/कंप्यूट आइसोलेशन |
कड़े अनुपालन आवश्यकताओं वाले एप्लिकेशन |
नोट: कीमतें अनुमानित हैं और क्षेत्र या Azure प्राइसिंग परिवर्तनों के साथ भिन्न हो सकती हैं। नवीनतम जानकारी के लिए, आधिकारिक प्राइसिंग पेज देखें।
अतिरिक्त लागत कारक
बेस App Service प्लान से परे, इन अतिरिक्त लागतों पर विचार करें:
- आउटबाउंड डेटा ट्रांसफ़र: प्रति माह पहले 5GB (जो मुफ़्त है) के बाद, आउटबाउंड डेटा ट्रांसफ़र पर शुल्क लगता है। ऐसे डेटा एप्लिकेशनों के लिए जो उपयोगकर्ताओं को बड़े डेटासेट सर्व करते हैं, यह महत्वपूर्ण हो सकता है।
- SSL सर्टिफिकेट्स: Azure मुफ़्त सर्टिफिकेट्स प्रदान करता है, लेकिन कस्टम सर्टिफिकेट्स की लागत होती है।
- कस्टम डोमेन्स: पहला कस्टम डोमेन मुफ़्त है, लेकिन अतिरिक्त डोमेन्स पर शुल्क लग सकता है।
- स्टोरेज: आपके टियर में शामिल स्टोरेज से अधिक के लिए अतिरिक्त लागत लगती है।
- ऐड-ऑन्स और कनेक्टेड सेवाएँ: डेटाबेस, कैशिंग सेवाएँ और आपके App Service से कनेक्ट अन्य Azure संसाधनों के अपने-अपने शुल्क होते हैं।
लागत मॉनिटर करना
Azure आपकी खर्च को मॉनिटर और पूर्वानुमान करने के टूल्स प्रदान करता है:
- Azure cost management: Azure Portal में इससे रिसोर्स के हिसाब से लागत देखें, बजट सेट करें और अलर्ट बनाएं।
- प्राइसिंग कैलकुलेटर: Azure Pricing Calculator का उपयोग डिप्लॉयमेंट से पहले लागत का अनुमान लगाने के लिए करें।
- Advisor सिफारिशें: Azure Advisor आपकी उपयोग पैटर्न के आधार पर लागत अनुकूलन सुझाव प्रदान करता है।
> Azure सेवाओं में लागत, सुरक्षा और परफॉर्मेंस को प्रभावी ढंग से मैनेज करने के लिए, यह Azure Management and Governance पर कोर्स अत्यंत अनुशंसित है।
लागत अनुकूलन रणनीतियाँ
अब जब हम प्राइसिंग मॉडल समझते हैं, तो Azure App Service पर डेटा एप्लिकेशनों के लिए लागत अनुकूलित करने की रणनीतियों का अन्वेषण करें।
अपने App Service प्लान का सही आकार चुनना
लागत नियंत्रित करने के सबसे प्रभावी तरीकों में से एक है यह सुनिश्चित करना कि आप उचित App Service प्लान का उपयोग कर रहे हैं:
- उचित बेसलाइन से शुरू करें: उच्च-टियर प्लान पर डिफ़ॉल्ट होने के बजाय, मध्यम प्लान से शुरू करें और आवश्यकता पड़ने पर ही स्केल अप करें।
- रिसोर्स उपयोग मॉनिटर करें: CPU, मेमोरी और डिस्क उपयोग ट्रैक करने के लिए Azure Monitor का उपयोग करें। यदि आप लगातार 50% उपयोग से नीचे हैं, तो डाउनसाइज़िंग पर विचार करें।
- वर्कलोड से टियर मैच करें: अनुमानित, स्थिर वर्कलोड वाले डेटा एप्लिकेशनों के लिए Basic या Standard टियर पर्याप्त हो सकता है। Premium टियर्स को मांग वाली परफॉर्मेंस आवश्यकताओं वाले एप्लिकेशनों के लिए सुरक्षित रखें।
डेटा साइंस एप्लिकेशनों के लिए विशेष सिफारिशें:
- मॉडल सर्विंग APIs जिनमें लो-लेटेंसी आवश्यकताएँ हैं लेकिन मध्यम ट्रैफिक—वे अक्सर ऑटो-स्केलिंग वाले Standard प्लान पर अच्छा काम करते हैं।
- डेटा प्रोसेसिंग पाइपलाइंस जो शेड्यूल पर चलती हैं—यदि प्रोसेसिंग टाइम क्रिटिकल नहीं है, तो अक्सर Basic प्लान का उपयोग कर सकती हैं।
- इंटरैक्टिव डैशबोर्ड्स जिनमें एक साथ कई यूज़र होते हैं—उत्तरदायित्व बनाए रखने के लिए आमतौर पर Standard या Premium प्लान की आवश्यकता होती है।
ऑटो-स्केलिंग का प्रभावी उपयोग
ऑटो-स्केलिंग केवल ट्रैफ़िक स्पाइक्स संभालने के लिए नहीं है—यह एक शक्तिशाली लागत-अनुकूलन टूल भी है:
- संभव हो तो शून्य तक स्केल करें: नॉन-क्रिटिकल एप्लिकेशनों या डेवलपमेंट एनवायरनमेंट्स के लिए, ऑफ-ऑवर्स के दौरान न्यूनतम शून्य इंस्टेंस तक स्केल डाउन करने पर विचार करें।
- उपयुक्त स्केलिंग थ्रेशहोल्ड्स सेट करें: बहुत आक्रामक रूप से स्केल आउट न करें। संयमित थ्रेशहोल्ड्स (जैसे 70% CPU) से शुरू करें और परफॉर्मेंस के आधार पर समायोजित करें।
- शेड्यूल्ड स्केलिंग इम्प्लीमेंट करें: अनुमानित वर्कलोड्स के लिए, मेट्रिक-आधारित ऑटो-स्केलिंग की बजाय शेड्यूल्ड रूल्स का उपयोग करें। उदाहरण के लिए, कारोबार के घंटों में स्केल अप करें और रातों/वीकेंड में स्केल डाउन।
# Example: Create a scheduled autoscale rule to scale down at night
az monitor autoscale rule create --resource-group MyResourceGroup --autoscale-name MyAutoScaleConfig --scale to 1 --condition "Current time is between 22:00 and 06:00 recurring"
डेवलपमेंट और टेस्टिंग एनवायरनमेंट्स का अनुकूलन
डेवलपमेंट और टेस्टिंग एनवायरनमेंट्स में लागत बचत की पर्याप्त संभावनाएँ होती हैं:
- Free या Shared टियर का उपयोग करें—जब संभव हो—डेवलपमेंट एनवायरनमेंट्स के लिए।
- ऑटो-शटडाउन लागू करें नॉन-प्रोडक्शन एनवायरनमेंट्स के लिए ऑफ-ऑवर्स में। जबकि App Service में बिल्ट-इन शटडाउन सुविधा नहीं है, आप Azure Automation या Logic Apps का उपयोग करके शेड्यूल पर ऐप्स को रोक/स्टार्ट कर सकते हैं।
- डिप्लॉयमेंट स्लॉट्स का कुशल उपयोग करें: स्टेजिंग के लिए अलग एनवायरनमेंट्स बनाए रखने के बजाय, एक सिंगल प्रोडक्शन App Service में डिप्लॉयमेंट स्लॉट्स का उपयोग करें। यह तरीका अतिरिक्त लागत जोड़े बिना एनवायरनमेंट स्वैप की सुविधा देता है।
# Create a staging slot
az webapp deployment slot create --name MyWebApp --resource-group MyResourceGroup --slot staging
# Swap staging to production
az webapp deployment slot swap --name MyWebApp --resource-group MyResourceGroup --slot staging --target-slot production
डेटा-विशिष्ट लागत अनुकूलन
डेटा एप्लिकेशनों के लिए, इन विशिष्ट लागत-बचत उपायों पर विचार करें:
- भारी प्रोसेसिंग ऑफ़लोड करें: App Service में गहन डेटा प्रोसेसिंग करने के बजाय, Azure Functions (सर्वरलेस प्रोसेसिंग) या Azure Data Factory (ETL वर्कफ़्लोज़) जैसी समर्पित सेवाओं का उपयोग करें।
- कैशिंग लागू करें: कम-परिवर्तनशील डेटा के लिए, डेटाबेस कॉल्स और कम्प्यूटेशन घटाने हेतु कैशिंग लागू करें। Azure Cache for Redis, App Service के साथ अच्छी तरह इंटीग्रेट होता है।
- डेटाबेस लागत अनुकूलित करें: अक्सर, आपके App Service से जुड़ा डेटाबेस स्वयं App Service से अधिक खर्चीला होता है। विचार करें:
- SQL डेटाबेस के लिए इलास्टिक पूल्स का उपयोग
- उचित इंडेक्सिंग लागू करना
- कम-आवृत्ति से एक्सेस किए जाने वाले डेटा के लिए टियर्ड स्टोरेज का उपयोग
- रिस्पॉन्सेस को कंप्रेस करें: ऐसे एप्लिकेशनों के लिए जो उपयोगकर्ताओं को बड़े डेटासेट सर्व करते हैं, आउटबाउंड डेटा ट्रांसफ़र लागत घटाने के लिए कंप्रेशन सक्षम करें:
# Example for Flask applications
from flask import Flask
from flask_compress import Compress
app = Flask(__name__)
Compress(app)
डेटा एप्लिकेशनों के लिए उन्नत तकनीकें
लागत अनुकूलन से आगे बढ़कर, Azure App Service पर अपने डेटा एप्लिकेशनों के प्रदर्शन और क्षमताओं को बढ़ाने के लिए कई उन्नत तकनीकें हैं।
डेटा एप्लिकेशनों का कंटेनराइज़ेशन
कंटेनर्स एनवायरनमेंट्स के बीच स्थिरता प्रदान करते हैं और डिपेंडेंसी मैनेजमेंट को सरल बनाते हैं—जो जटिल आवश्यकताओं वाले डेटा एप्लिकेशनों में एक आम चुनौती है:
- Azure Portal में एक नया Web App बनाएँ
- Publish विकल्प के रूप में "Code" की बजाय "Docker Container" चुनें
- Single Container चुनें और अपना Docker इमेज निर्दिष्ट करें
डेटा साइंस एप्लिकेशनों के लिए, NumPy, pandas, और scikit-learn जैसी सामान्य लाइब्रेरीज़ के साथ एक बेस कंटेनर इमेज मेंटेन करने पर विचार करें ताकि डिप्लॉयमेंट तेज़ हो।
डेटा वर्कफ़्लोज़ के लिए CI/CD लागू करना
बेसिक CI/CD से आगे बढ़कर, डेटा एप्लिकेशनों के लिए विशेष रूप से ऑटोमेटेड टेस्टिंग लागू करने पर विचार करें:
- डेटा वैलिडेशन टेस्ट्स: सत्यापित करें कि डेटा प्रोसेसिंग अपेक्षित परिणाम देती है
- मॉडल परफॉर्मेंस टेस्ट्स: सुनिश्चित करें कि ML मॉडल्स एक्युरेसी और परफॉर्मेंस थ्रेशहोल्ड्स को पूरा करते हैं
- लोड टेस्टिंग: वैलिडेट करें कि एप्लिकेशन अपेक्षित डेटा वॉल्यूम हैंडल करता है
डेटा एप्लिकेशन के लिए GitHub Actions वर्कफ़्लो उदाहरण:
name: Data App CI/CD
on:
push:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pytest pytest-cov
- name: Test with pytest
run: |
pytest tests/data_validation_tests.py
pytest tests/model_performance_tests.py
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Deploy to Azure
uses: azure/webapps-deploy@v2
with:
app-name: 'my-data-app'
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
बैकग्राउंड प्रोसेसिंग के लिए WebJobs का उपयोग
बैकग्राउंड प्रोसेसिंग की आवश्यकता वाले डेटा एप्लिकेशनों के लिए, Azure WebJobs आपके App Service के समान संदर्भ में स्क्रिप्ट्स या प्रोग्राम्स चलाने का तरीका प्रदान करता है:
- अपने App Service में, बाएँ साइडबार में "WebJobs" पर जाएँ
- "Add" पर क्लिक करें
- अपनी स्क्रिप्ट फ़ाइल अपलोड करें (उदा., डेटा प्रोसेसिंग के लिए Python स्क्रिप्ट)
- ट्रिगर प्रकार चुनें (मैनुअल, शेड्यूल्ड, या कंटीन्यूस)
- "OK" पर क्लिक करें
WebJobs विशेष रूप से उपयोगी हैं:
- शेड्यूल्ड डेटा क्लीनअप
- नियमित रिपोर्ट जनरेशन
- पीरियोडिक मॉडल रीट्रेनिंग
- सिस्टमों के बीच डेटा सिंक्रोनाइज़ेशन
ऑन-प्रिमाइसेस डेटा के लिए हाइब्रिड कनेक्टिविटी
कई संगठनों में डेटा ऑन-प्रिमाइसेस रहता है। Azure App Service इस डेटा से कनेक्ट हो सकता है:
- VNet integration: अपने App Service को ऐसी वर्चुअल नेटवर्क से जोड़ें जिसकी कनेक्टिविटी आपके ऑन-प्रिमाइसेस नेटवर्क से ExpressRoute या VPN के जरिए हो।
- Hybrid connections: एक सरल विकल्प जिसे VPN की ज़रूरत नहीं—यह आपके App Service को होस्टनेम और पोर्ट के द्वारा विशिष्ट ऑन-प्रिमाइसेस सर्वर्स तक पहुँचने देता है।
Hybrid Connections सेट करने के लिए:
- अपने App Service में, बाएँ साइडबार में "Networking" चुनें
- "Hybrid Connections" पर जाएँ
- "Add hybrid connection" पर क्लिक करें
- नया बनाएँ या मौजूदा कनेक्शन का उपयोग करें
- एंडपॉइंट होस्टनेम और पोर्ट निर्दिष्ट करें
- अपने ऑन-प्रिमाइसेस सर्वर पर Hybrid Connection Manager इंस्टॉल करें
डेटा एप्लिकेशनों के लिए फ़ीचर फ़्लैग्स लागू करना
फ़ीचर फ़्लैग्स आपको चयनात्मक रूप से फ़ंक्शनैलिटी सक्षम करने देते हैं—जो डेटा फ़ीचर्स के A/B टेस्टिंग या नए मॉडल्स को धीरे-धीरे रोल आउट करने में मूल्यवान है:
{
"FeatureFlags": {
"NewRecommendationModel": false,
"AdvancedDataFiltering": true
}
}
अपने कोड में इन फ़्लैग्स को पढ़ें:
import os
import json
feature_flags = json.loads(os.environ.get('FeatureFlags', '{}'))
use_new_model = feature_flags.get('NewRecommendationModel', False)
if use_new_model:
# Use new recommendation model
else:
# Use existing model
यह तरीका आपको उपयोगकर्ताओं के एक उपसमूह के साथ नई सुविधाओं का परीक्षण करने या बिना पुनः डिप्लॉयमेंट के समस्याग्रस्त सुविधाओं को जल्दी से डिसेबल करने देता है।
> ML मॉडल्स के डिप्लॉयमेंट को ऑटोमेट करने में गहराई से जाने के लिए देखें यह CI/CD for Machine Learning कोर्स।
निष्कर्ष
इस ट्यूटोरियल के दौरान, हमने डेटा एप्लिकेशनों के लिए Azure App Service को सेट अप करने, डिप्लॉय करने, कॉन्फ़िगर करने, स्केल करने और ऑप्टिमाइज़ करने के तरीके देखे। अपना पहला App Service बनाने से लेकर ऑटो-स्केलिंग और हाइब्रिड कनेक्टिविटी जैसी उन्नत सुविधाएँ लागू करने तक—अब आपके पास अपने डेटा वर्कलोड्स के लिए Azure के प्लेटफ़ॉर्म का लाभ उठाने का ज्ञान है।
मुख्य सीख
- Azure App Service एक पूर्ण-प्रबंधित प्लेटफ़ॉर्म प्रदान करता है जो डेटा प्रैक्टिशनर्स को इन्फ्रास्ट्रक्चर मैनेजमेंट के बजाय एप्लिकेशन लॉजिक पर ध्यान केंद्रित करने देता है।
- कई डिप्लॉयमेंट विकल्प आपके मौजूदा डेवलपमेंट वर्कफ़्लो के साथ सहज एकीकरण सक्षम करते हैं—चाहे आप GitHub, Azure DevOps या लोकल Git रिपोजिटरीज़ का उपयोग करते हों।
- स्केलिंग क्षमताएँ यह सुनिश्चित करती हैं कि आपका एप्लिकेशन विकास टेस्टिंग से लेकर प्रोडक्शन ट्रैफ़िक स्पाइक्स तक परिवर्तनशील वर्कलोड्स संभाल सके।
- बिल्ट-इन मॉनिटरिंग और डायग्नोस्टिक्स टूल्स विश्वसनीयता और प्रदर्शन बनाए रखने में मदद करते हैं—डेटा एप्लिकेशनों के लिए विशेष मेट्रिक्स के साथ।
- लागत अनुकूलन रणनीतियाँ आपको संसाधन-इंटेंसिव डेटा वर्कलोड्स के लिए भी कम खर्च में अधिक मूल्य पाने में सक्षम बनाती हैं।
अगले कदम
अपनी Azure App Service यात्रा जारी रखने के लिए, इनका अन्वेषण करें:
- Azure ML के साथ इंटीग्रेशन: Azure Machine Learning में प्रशिक्षित मॉडल्स को इन्फ्रेंस के लिए अपने App Service पर डिप्लॉय करें।
- Azure Functions: इवेंट-ड्रिवन, सर्वरलेस कम्प्यूट जो आपके App Service एप्लिकेशनों का पूरक है।
- Azure API Management: आपके डेटा सेवाओं को एक्सपोज़ करने वाले APIs को सुरक्षित और मैनेज करने के लिए।
- Azure Logic Apps: आपके App Service और अन्य डेटा स्रोतों के बीच वर्कफ़्लो ऑटोमेशन के लिए।
- The Microsoft Azure Fundamentals ट्रैक प्रमाणन की तैयारी या संरचित लर्निंग चाहने वालों के लिए भी एक शानदार संसाधन है।
ध्यान रखें कि क्लाउड परिदृश्य तेज़ी से विकसित होता है, इसलिए Azure अपडेट्स पेज पर नज़र रखें—नई सुविधाएँ और सेवाएँ आपके डेटा एप्लिकेशनों को और बेहतर बना सकती हैं!

मशीन लर्निंग, डेटा साइंस, क्वांटिटेटिव मॉडलिंग, सॉफ्टवेयर इंजीनियरिंग, देवऑप्स और क्लाउड कंप्यूटिंग सहित व्यापक तकनीकी पृष्ठभूमि।
एप्लिकेशन को प्रभावी ढंग से परिनियोजित करना अब उन्हें विकसित करने जितना ही महत्वपूर्ण हो गया है। एक डेटा प्रैक्टिशनर के रूप में, मैंने अक्सर पाया है कि जहां हम अपने मॉडल और एप्लिकेशन को परफेक्ट करने में काफी समय लगाते हैं, वहीं डिप्लॉयमेंट प्रक्रिया कभी-कभी बाद की बात लगती है। यहीं Azure App Service काम आती है—एक ऐसा प्लेटफ़ॉर्म जो डिप्लॉयमेंट को सरल बनाता है और साथ ही स्केलेबिलिटी, सुरक्षा और मॉनिटरिंग के लिए मजबूत सुविधाएँ प्रदान करता है।
इस व्यापक ट्यूटोरियल में, मैं आपको Azure App Service पर एप्लिकेशन सेट अप करने, डिप्लॉय करने और स्केल करने की प्रक्रिया से रूबरू कराऊँगा।
चाहे आप अपना पहला एप्लिकेशन डिप्लॉय करने वाले जूनियर डेटा प्रैक्टिशनर हों या अपना क्लाउड इन्फ्रास्ट्रक्चर बेहतर बनाने की कोशिश कर रहे अनुभवी प्रोफ़ेशनल—यह गाइड व्यावहारिक चरण और श्रेष्ठ प्रक्रियाएँ प्रदान करेगा।
Azure App Service क्या है?
Azure App Service, Microsoft का Platform as a Service (PaaS) समाधान है, जो आपको अंतर्निहित इन्फ्रास्ट्रक्चर को मैनेज किए बिना वेब एप्लिकेशन बनाने और होस्ट करने देता है। यह Python, Java, Node.js, .NET और अन्य कई भाषाओं व फ्रेमवर्क्स का समर्थन करता है।
सेटअप प्रक्रिया में जाने से पहले, आइए समझते हैं कि Azure App Service डेटा प्रैक्टिशनर्स के लिए विशेष रूप से मूल्यवान क्यों है:
एक डेटा साइंटिस्ट या इंजीनियर के रूप में आप सोच रहे होंगे कि App Service, Azure Functions या Azure Kubernetes Service जैसी अन्य सेवाओं से कैसे अलग है। मुख्य अंतर यह है कि App Service एक संतुलित मध्य मार्ग प्रदान करती है—सर्वरलेस विकल्पों से अधिक लचीलापन, लेकिन कंटेनर ऑर्केस्ट्रेशन प्लेटफ़ॉर्म्स से कम जटिलता।
> Azure के इकोसिस्टम और सेवाओं का बुनियादी अवलोकन पाने के लिए देखें यह Microsoft Azure पर प्रारंभिक कोर्स।
Azure App Service सेट अप करना
अब जबकि हमें पता है कि Azure App Service क्या है, आइए अपना पहला App Service सेट अप करते हैं। प्रक्रिया दो मुख्य चरणों में होती है: App Service प्लान बनाना और फिर उस प्लान के भीतर एक वेब ऐप बनाना।
Azure App Service प्लान बनाना
App Service प्लान आपके एप्लिकेशन के लिए कंप्यूट संसाधन, क्षेत्र और प्राइसिंग टियर निर्धारित करता है। इसे उस सर्वर फार्म की तरह समझें जहां आपके एप्लिकेशन चलेंगे। कई ऐप्स एक ही App Service प्लान साझा कर सकते हैं, जो कई छोटे एप्लिकेशन चलाने के लिए किफायती होता है।
App Service प्लान बनाने का तरीका इस प्रकार है:
प्राइसिंग टियर्स की बात करें, तो Azure App Service कई विकल्प प्रदान करता है:
टियर
विशेषताएँ
उपयुक्त किसके लिए
Free
1GB स्टोरेज, साझा इन्फ्रास्ट्रक्चर, 60 मिनट/दिन कंप्यूट
डेवलपमेंट और टेस्टिंग
Shared
1GB स्टोरेज, 240 मिनट/दिन कंप्यूट
लो-ट्रैफिक ऐप्स, डेवलपमेंट
Basic
10GB स्टोरेज, डेडिकेटेड VM, कस्टम डोमेन
मध्यम ट्रैफिक वाले प्रोडक्शन वर्कलोड
Standard
50GB स्टोरेज, ऑटो-स्केलिंग, स्टेजिंग स्लॉट्स
उच्च ट्रैफिक वाले प्रोडक्शन ऐप्स
Premium
250GB स्टोरेज, बेहतर परफॉर्मेंस, अधिक स्केलिंग विकल्प
एंटरप्राइज़ एप्लिकेशन, उच्च-प्रदर्शन आवश्यकताएँ
डेटा एप्लिकेशनों के लिए, मैं आम तौर पर प्रोडक्शन में कम से कम Basic टियर से शुरू करने की सलाह देता हूँ, क्योंकि डेटा प्रोसेसिंग को साधारण वेब सर्विंग से अधिक संसाधनों की जरूरत होती है। यदि आप ऐसे मशीन लर्निंग मॉडल सर्व कर रहे हैं जिन्हें अधिक कंप्यूट चाहिए, तो इसकी ऑटो-स्केलिंग क्षमताओं के लिए Standard टियर पर विचार करें।
आप Azure CLI का उपयोग करके भी App Service प्लान बना सकते हैं:
App Service वेब ऐप बनाना
एक बार जब आपके पास App Service प्लान हो, तो आप उसके भीतर एक वेब ऐप बना सकते हैं। वेब ऐप वह वास्तविक एप्लिकेशन इंस्टेंस है जो आपका कोड चलाएगा।
वेब ऐप बनाने के लिए ये चरण अपनाएँ:
myapp.azurewebsites.net)यदि आप Azure CLI का उपयोग कर रहे हैं, तो एक ही कमांड से वेब ऐप बना सकते हैं:
वेब ऐप बनाने के बाद, Azure आवश्यक संसाधन प्रोविजन करेगा। पूरा होते ही, आप "Go to resource" पर क्लिक करके या अपने रिसोर्स ग्रुप में खोजकर अपने नए वेब ऐप पर जा सकते हैं।
इस बिंदु पर, जब आप अपने ऐप के URL (
https://your-app-name.azurewebsites.net) पर जाते हैं, तो आपको एक डिफ़ॉल्ट पेज दिखना चाहिए। यह पुष्टि करता है कि आपका ऐप चल रहा है, हालांकि इसमें अभी आपका कोड नहीं है—हम अगले सेक्शन में डिप्लॉयमेंट कवर करेंगे।बेसिक ऐप सेटिंग्स कॉन्फ़िगर करना
डिप्लॉयमेंट पर आगे बढ़ने से पहले, आइए अपने ऐप के लिए कुछ बेसिक कॉन्फ़िगरेशन सेट करें। डेटा एप्लिकेशन के लिए, आपको डेटाबेस कनेक्शनों या API कीज़ के लिए विशिष्ट एनवायरनमेंट वेरिएबल्स की आवश्यकता हो सकती है।
ऐप सेटिंग्स कॉन्फ़िगर करने के लिए:
आप इन्हें Azure CLI के जरिए भी सेट कर सकते हैं:
ये सेटिंग्स आपके एप्लिकेशन में एनवायरनमेंट वेरिएबल्स के रूप में उपलब्ध होंगी—यह आपके सोर्स कोड में हार्डकोड किए बिना कॉन्फ़िगरेशन स्टोर करने का एक सुरक्षित तरीका है।
अपना पहला एप्लिकेशन डिप्लॉय करना
अब जब हमने अपनी Azure App Service इन्फ्रास्ट्रक्चर सेट कर ली है, तो अब एप्लिकेशन डिप्लॉय करने का समय है। Azure App Service कई डिप्लॉयमेंट तरीके प्रदान करता है, जिससे आप अपने वर्कफ़्लो और पसंद के अनुसार लचीलापन पा सकते हैं। इस सेक्शन में, हम सोर्स कंट्रोल (GitHub या Azure Repos), FTP, और लोकल Git रिपोजिटरीज़ के जरिए डिप्लॉय करने के तरीके देखेंगे।
एक डेटा प्रैक्टिशनर के रूप में, यह चरण महत्वपूर्ण है क्योंकि यह आपके लोकल डेवलपमेंट एनवायरनमेंट और एक प्रोडक्शन-रेडी एप्लिकेशन के बीच की खाई पाटता है, जो आपके मॉडल्स या डेटा प्रोसेसिंग पाइपलाइंस को सर्व कर सकता है।
> जिनके लिए डिप्लॉयमेंट सिद्धांत नए हैं, यह DevOps कोर्स मुख्य अवधारणाओं और टूल्स का स्पष्ट परिचय देता है।
GitHub या Azure Repos से डिप्लॉय करना
Azure App Service की सबसे शक्तिशाली विशेषताओं में से एक इसकी बिल्ट-इन कंटीन्यूस डिप्लॉयमेंट (CD) क्षमता है। अपने App Service को GitHub या Azure DevOps रिपोजिटरी से कनेक्ट करके, आप किसी विशिष्ट ब्रांच पर कोड पुश होते ही ऑटोमेटिक डिप्लॉयमेंट कर सकते हैं।
यह तरीका सहयोगात्मक प्रोजेक्ट्स पर काम करने वाली डेटा टीमों के लिए खास तौर पर मूल्यवान है, क्योंकि यह:
> यदि आप वर्शन कंट्रोल में नए हैं, तो GitHub Foundations ट्रैक आपको बेसिक्स में गति दिला सकता है। आप Azure DevOps का अन्वेषण भी कर सकते हैं—जो आपकी डिप्लॉयमेंट पाइपलाइंस और वर्शन कंट्रोल मैनेज करने का एक सशक्त विकल्प है।
GitHub से कंटीन्यूस डिप्लॉयमेंट सेट अप करने का तरीका:
Azure आपकी रिपोजिटरी में एक GitHub वर्कफ़्लो फ़ाइल बनाएगा, जो चयनित ब्रांच पर बदलाव पुश होते ही आपके एप्लिकेशन को ऑटोमेटिक रूप से बिल्ड और डिप्लॉय करेगा। यह वर्कफ़्लो GitHub Actions का उपयोग करके CI/CD प्रक्रिया को संभालता है।
> डिप्लॉयमेंट को और ऑटोमेट करने के लिए, Makefiles को GitHub Actions के साथ संयोजित करने पर विचार करें ताकि CI/CD वर्कफ़्लो सुव्यवस्थित हो सकें।
Python एप्लिकेशनों के लिए, वर्कफ़्लो आमतौर पर इन चरणों को शामिल करता है:
requirements.txtसे डिपेंडेंसीज़ इंस्टॉल करनाआप Azure CLI का उपयोग करके भी कंटीन्यूस डिप्लॉयमेंट सेट अप कर सकते हैं:
डिप्लॉयमेंट सेटिंग्स कॉन्फ़िगर करना
अपने डिप्लॉयमेंट को फाइन-ट्यून करने के लिए, आप GitHub वर्कफ़्लो फ़ाइल या Azure Portal में अतिरिक्त सेटिंग्स कॉन्फ़िगर कर सकते हैं:
डेटा साइंस एप्लिकेशनों के लिए, आपको ऐसे कस्टम बिल्ड स्टेप्स जोड़ने पड़ सकते हैं जो वैज्ञानिक पैकेज इंस्टॉल करें या मॉडल ट्रेनिंग स्क्रिप्ट्स चलाएँ। इन्हें सीधे अपनी रिपोजिटरी की वर्कफ़्लो फ़ाइल में जोड़ा जा सकता है।
FTP या लोकल Git का उपयोग करके डिप्लॉय करना
हालाँकि टीम एनवायरनमेंट्स के लिए GitHub या Azure Repos से कंटीन्यूस डिप्लॉयमेंट की अनुशंसा की जाती है, कभी-कभी आपको अधिक प्रत्यक्ष डिप्लॉयमेंट तरीकों की ज़रूरत पड़ सकती है। Azure App Service ऐसे परिदृश्यों के लिए FTP और लोकल Git दोनों का समर्थन करता है।
FTP डिप्लॉयमेंट
FTP डिप्लॉयमेंट आपके एप्लिकेशन फ़ाइलों को सीधे Azure App Service पर अपलोड करने का एक सरल तरीका है। यह तरीका त्वरित अपडेट्स या उन एप्लिकेशनों के लिए उपयोगी है जिन्हें जटिल बिल्ड प्रक्रियाओं की आवश्यकता नहीं होती।
FTP के जरिए डिप्लॉय करने के लिए:
/site/wwwroot/डायरेक्टरी में अपलोड करेंPython एप्लिकेशनों के लिए, सुनिश्चित करें कि आपकी
requirements.txtफ़ाइल अपलोड में शामिल हो। Azure App Service आवश्यक पैकेजों को ऑटोमेटिकली इंस्टॉल कर देगा।लोकल Git डिप्लॉयमेंट
लोकल Git डिप्लॉयमेंट आपको अपनी लोकल Git रिपोजिटरी से सीधे Azure पर कोड पुश करने देता है। यह तरीका डिप्लॉयमेंट प्रक्रिया पर अधिक नियंत्रण देता है, जबकि Git के वर्शन कंट्रोल लाभ भी बनाए रखता है।
लोकल Git डिप्लॉयमेंट सेट अप करने के लिए:
जब आप Azure रिमोट पर कोड पुश करते हैं, तो प्लेटफ़ॉर्म आपका एप्लिकेशन ऑटोमेटिक रूप से बिल्ड और डिप्लॉय कर देगा।
डिप्लॉयमेंट स्टेटस मॉनिटर करना
आप जो भी डिप्लॉयमेंट तरीका चुनें, प्रक्रिया की मॉनिटरिंग करना ज़रूरी है ताकि समस्याएँ जल्दी पकड़ी जा सकें। Azure डिप्लॉयमेंट स्टेटस ट्रैक करने के कई तरीके प्रदान करता है:
यदि कोई डिप्लॉयमेंट असफल होता है, तो लॉग्स बताएँगे कि समस्या कहाँ है। आम समस्याएँ शामिल हैं:
requirements.txtमें डिपेंडेंसीज़ का गायब होनाडिप्लॉयमेंट समस्याओं को ट्रबलशूट करने के लिए:
requirements.txtमें सूचीबद्ध हैंडेटा साइंस एप्लिकेशनों में डिप्लॉयमेंट असफलताएँ अक्सर बड़े पैकेज इंस्टॉलेशन या स्टार्टअप के दौरान मेमोरी-इंटेंसिव ऑपरेशन्स के कारण होती हैं। यदि आपको ऐसी समस्याएँ मिलें, तो विचार करें: