بناء تطبيق قابل للتوسع على Azure | أصلي، ترجم بواسطة AI
هذا المقال تم كتابته مع مساعدة ChatGPT-4o.
جدول المحتويات
- المقدمة
- بدء العمل مع اشتراك Azure
- نشر التطبيقات مع خدمة Azure Kubernetes (AKS)
- استرجاع السجلات من البودات
- المراقبة والتشخيص مع Azure Application Insights
- استخدام آلات Azure الافتراضية (VMs)
- استيعاب البيانات في الوقت الفعلي مع Azure Event Hubs
- إدارة APIs مع خدمات إدارة APIs في Azure
- استخدام قواعد بيانات Azure SQL
- استعلام السجلات باستخدام لغة استعلام Kusto (KQL)
- إعداد التنبيهات للمراقبة الاستباقية
- الخاتمة
المقدمة
في عالم الحوسبة السحابية، يتفوق Microsoft Azure كمنصة قوية لبناء ونشر وإدارة التطبيقات. في مشروعنا الأخير، استغلنا عدة خدمات Azure، بما في ذلك اشتراك Azure، خدمة Azure Kubernetes (AKS)، Application Insights، آلات افتراضية (VMs)، Event Hubs، خدمات إدارة APIs، وقواعد بيانات SQL، لإنشاء بنية تحتية للتطبيقات قابلة للتوسع ومراقبة. يوضح هذا المقال نهجنا، والأدوات المستخدمة، وأفضل الممارسات، والخطوات المفصلة لإدارة المجموعات، واسترجاع السجلات، واستعلام السجلات.
بدء العمل مع اشتراك Azure
يشكل اشتراك Azure بوابة الوصول إلى خدمات Azure. يعمل كحاوية تحتوي على جميع مواردك، مثل آلات افتراضية، وقواعد بيانات، ومجموعات Kubernetes.
- إعداد اشتراك Azure:
- التسجيل: إذا لم يكن لديك حساب Azure، ابدأ بالتسجيل في بوابة Azure.
- إنشاء اشتراك: انتقل إلى قسم “الاشتراكات” وانشئ اشتراكًا جديدًا. هذا سيكون حاوية الفواتير والإدارة.
- تنظيم الموارد:
- مجموعات الموارد: نظم مواردك في مجموعات الموارد بناءً على دورة حياتها ومعيار الإدارة.
- التسميات: استخدم التسميات لمعلومات إضافية ومزيد من سهولة إدارة الموارد والفواتير.
نشر التطبيقات مع خدمة Azure Kubernetes (AKS)
خدمة Azure Kubernetes (AKS) هي خدمة Kubernetes المدارة التي تبسط نشر وإدارة وتوسيع التطبيقات المعبأة في حاويات.
إنشاء وإدارة مجموعة AKS
- إنشاء مجموعة AKS في بوابة Azure:
- الإعداد: في بوابة Azure، ابحث عن AKS وانشئ مجموعة Kubernetes جديدة.
- التكوين: اختر حجم المجموعة، وقم بتكوين مجموعات العقد، وإعداد الشبكة.
- المصادقة: استخدم Azure Active Directory (AAD) لسيطرة الوصول الآمنة.
- المراقبة: قم تمكين المراقبة والتسجيل أثناء عملية الإعداد.
- إنشاء مجموعة AKS باستخدام واجهة Azure CLI:
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: اكتب ملفات YAML لتنزيلاتك، والخدمات، والأشياء الأخرى في Kubernetes.
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: استخدم Helm لإدارة تطبيقات Kubernetes وتحكم في الإصدارات.
helm install myapp ./mychart
استرجاع السجلات من البودات
- الارتباط ببود وتحميل السجلات:
kubectl logs <pod-name>
- لتدفق السجلات:
kubectl logs <pod-name> -f
- لتدفق السجلات:
- استخدام Sidecar للتسجيل:
- انشئ حاوية Sidecar للتسجيل في مواصفات البود الخاصة بك لإرسال السجلات إلى خدمة تسجيل مركزية.
spec: containers: - name: myapp image: myregistry.azurecr.io/myapp:latest ... - name: log-shipper image: log-shipper:latest ...
المراقبة والتشخيص مع Azure Application Insights
يوفر Application Insights قدرات قوية للمراقبة والتشخيص لتطبيقاتك.
- إعداد Application Insights:
- التكامل: أضف SDK لـ Application Insights إلى كود تطبيقك.
- مفتاح التجهيز: قم بتكوين تطبيقك مع مفتاح التجهيز من مورد Application Insights الخاص بك.
- تتبع الأداء:
- المعايير: راقب أوقات الاستجابة، ومعدلات الفشل، والتبعيات التطبيقية.
- تدفق المعايير الحية: شاهد المعايير الحية للأداء للحصول على رؤى فورية.
- التشخيص والإصلاح:
- خريطة التطبيق: visualize التبعيات وتحديد عوائق الأداء.
- تشخيص المعاملات: استخدم تتبع التوزيع لتتبع الطلبات عبر الخدمات.
استخدام آلات Azure الافتراضية (VMs)
توفر آلات Azure الافتراضية المرونة في تشغيل التطبيقات والخدمات المخصصة التي لم تُعبأ في حاويات.
- توفير آلات افتراضية:
- إنشاء آلات افتراضية: في بوابة Azure، انشئ آلات افتراضية جديدة واختر الحجم والنظام التشغيل المناسب.
- تكوين الشبكة: قم بإعداد الشبكات الافتراضية، والشبكات الفرعية، ومجموعات الأمن لتحكم في حركة المرور.
- تكوين آلات افتراضية:
- تثبيت البرامج: تثبيت البرامج والمتطلبات اللازمة.
- الأمن: تطبيق التحديثات والتحديثات بانتظام، وتكوين الحواجز النارية، واستخدام مجموعات الأمن الشبكي (NSGs).
- إدارة آلات افتراضية:
- النسخ الاحتياطي واستعادة البيانات: استخدم Azure Backup لنسخ آلات افتراضية احتياطية.
- المراقبة: راقب أداء آلات افتراضية باستخدام Azure Monitor.
استيعاب البيانات في الوقت الفعلي مع Azure Event Hubs
Azure Event Hubs هي منصة تدفق البيانات الكبيرة وخدمة استيعاب الأحداث قادرة على استقبال ومعالجة ملايين الأحداث في الثانية.
- إعداد Event Hubs:
- إنشاء مساحة اسم Event Hub: في بوابة Azure، انشئ مساحة اسم Event Hub لاستيعاب Event Hubs الخاصة بك.
- إنشاء Event Hubs: داخل المساحة، انشئ Event Hub أو أكثر لالتقاط تدفقات البيانات الخاصة بك.
- استيعاب البيانات:
- المقدمون: قم بتكوين تطبيقك أو الخدمات لإرسال الأحداث إلى Event Hubs باستخدام SDKs المتاحة للعديد من اللغات (مثل .NET، Java، Python).
- التقسيمات: استخدم التقسيمات لتوسيع معالجة الأحداث، مما يضمن معدل نقل عالٍ وموازنة متوازية.
- معالجة الأحداث:
- المستهلكون: استخدم مجموعات المستهلكين لقراءة ومعالجة الأحداث. تقدم Azure عدة خيارات لمعالجة، بما في ذلك Azure Stream Analytics، Azure Functions، ومعالجة مخصصة باستخدام SDK لـ Event Hubs.
- مراقبة Event Hubs:
- المعايير: راقب معدل النقل، واللاتنس، ومعايير معالجة الأحداث عبر بوابة Azure.
- التنبيهات: قم بإعداد التنبيهات لإخطارك بأي مشاكل، مثل اللاتنس العالية أو الرسائل المفقودة.
إدارة APIs مع خدمات إدارة APIs في Azure
توفر خدمات إدارة APIs في Azure طريقة لإنشاء بوابات APIs حديثة ومتسقة للخدمات الخلفية الموجودة.
- إعداد إدارة APIs:
- إنشاء خدمة إدارة APIs: في بوابة Azure، ابحث عن إدارة APIs وانشئ خدمة جديدة.
- تكوين APIs: حدد واصدر APIs من مواصفات OpenAPI، أو Azure Functions، أو خلفيات أخرى.
- تأمين APIs:
- المصادقة والمصادقة: استخدم OAuth2، وتحقق من JWT، وآليات أخرى لتأمين APIs الخاصة بك.
- تحديد معدل الاستهلاك وتقييده: قم بتطبيق السياسات لحماية APIs الخاصة بك من الاستغلال.
- المراقبة والتحليل:
- رؤى APIs: راقب الاستخدام، ومراقبة الأداء، وتحليل السجلات.
- بوابة المطورين: قدم بوابة للمطورين لاكتشاف واستخدام APIs الخاصة بك.
- إدارة دورة الحياة:
- الترقيم والإصدارات: إدارة إصدارات مختلفة وإصدارات APIs الخاصة بك بسلاسة.
- إدارة السياسات: تطبيق السياسات لتحويل، والتحقق، وتوجيه الطلبات والإجابات.
استخدام قواعد بيانات Azure SQL
Azure SQL Database هي قاعدة بيانات علاقية مدارة بالكامل مع ذكاء مدمج، وتوفر متانة عالية، وقابلية للتوسع.
- إعداد قاعدة بيانات Azure SQL:
- إنشاء قاعدة بيانات SQL: في بوابة Azure، انتقل إلى قواعد بيانات SQL وانشئ قاعدة بيانات جديدة.
- تكوين قاعدة البيانات: حدد حجم قاعدة البيانات، ومستوى الأداء، وتكوين إعدادات الشبكة.
- الاتصال بقاعدة بيانات SQL:
- سلاسل الاتصال: استخدم سلاسل الاتصال المقدمة للاتصال بتطبيقك بقاعدة البيانات SQL.
- قواعد حائط الحماية: قم بتكوين قواعد حائط الحماية لسماح بالوصول من تطبيقك أو جهازك المحلي.
- إدارة قاعدة البيانات:
- النسخ الاحتياطي واستعادة البيانات: استخدم النسخ الاحتياطي التلقائي واستعادة نقطة في الوقت لحماية بياناتك.
- التوسع: توسيع قاعدة البيانات أو تقليلها بناءً على احتياجات الأداء الخاصة بك.
- المراقبة وتuning الأداء:
- رؤى أداء الاستعلامات: راقب وتحسن أداء الاستعلامات.
- التكوين التلقائي: تمكين ميزات التكوين التلقائي لتحسين الأداء.
استعلام السجلات باستخدام لغة استعلام Kusto (KQL)
تستخدم لغة استعلام Kusto (KQL) لاستعلام سجلات Azure Monitor، مما يوفر رؤى قوية في بيانات السجلات الخاصة بك.
- استعلام 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 على البقاء على اطلاع دائم بشأن حالة أداء مواردك.
- إنشاء التنبيهات:
- التنبيهات المعيارية: قم بإعداد التنبيهات بناءً على المعايير مثل استخدام المعالج، واستخدام الذاكرة، وأوقات الاستجابة.
- التنبيهات السجلية: انشئ تنبيهات بناءً على استعلامات بحث السجلات باستخدام KQL.
- تكوين الإجراءات:
- مجموعات الإجراءات: حدد مجموعات الإجراءات لتحديد من سيخبر وكيف (البريد الإلكتروني، SMS، الويب هوك).
- التكامل: تكامل مع أدوات ITSM مثل ServiceNow لإدارة الحوادث التلقائية.
- الاستجابة للتنبيهات:
- اللوحات: قم بإعداد لوحات Azure لتوفير رؤية مركزية للتنبيهات.
- التلقائية: استخدم Azure Automation للاستجابة تلقائيًا لبعض التنبيهات.
الخاتمة
باستخدام اشتراك Azure، AKS، Application Insights، آلات افتراضية، Event Hubs، خدمات إدارة APIs، وقواعد بيانات SQL، بنينا بنية تحتية للتطبيقات قابلة للتوسع، قوية، ومراقبة. تضمن مجموعة أدوات Azure الشاملة أننا نستطيع نشر وإدارة ومراقبة تطبيقاتنا بكفاءة. هذا الإعداد لم يحسن أداء التطبيقات فقط، بل قدم لنا أيضًا رؤى اللازمة للحفاظ على الموارد وتطويرها بشكل استباقي.