إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
الآن بعد أن أصبح لديك فهم أفضل لاختلافات النظام الأساسي بين AWS وAzure، دعنا نفحص بنية تطبيق الويب على AWS والتعديلات اللازمة لجعلها متوافقة مع خدمة Azure Kubernetes (AKS).
تصميم تطبيق Yelb
يتكون نموذج تطبيق الويب Yelb من مكون واجهة أمامية يسمى yelb-ui ومكون تطبيق يسمى yelb-appserver.
يخدم yelb-ui تعليمة JavaScript البرمجية إلى المتصفح. يتم تحويل هذه التعليمة البرمجية برمجيا من تطبيق Angular. قد يتضمن مكون yelb-ui أيضا وكيلا nginx اعتمادا على نموذج التوزيع.
yelb-appserver هو تطبيق Sinatra يتفاعل مع خادم ذاكرة التخزين المؤقت (redis-server) وقاعدة بيانات Postgres الخلفية (yelb-db).
تخزين Redis Cache بتخزين عدد طرق عرض الصفحة، بينما يستمر PostgreSQL في التصويت. يتم نشر كلتا الخدمتين على Kubernetes دون استخدام أي خدمة مدارة لتخزين البيانات على AWS أو Azure.
تطبيق Yelb الأصلي مكتف ذاتيا ولا يعتمد على الخدمات الخارجية، حتى تتمكن من ترحيله من AWS إلى Azure دون أي تغييرات في التعليمات البرمجية. على Azure، يمكنك استخدام Azure Managed RedisوAzure Database ل PostgreSQL كبدائل لخدمات Redis Cache وPostgreSQL المنشورة على AKS.
يسمح نموذج تطبيق Yelb للمستخدمين بالتصويت على مجموعة من البدائل (المطاعم) وتحديث المخططات الدائرية ديناميكيا استنادا إلى عدد الأصوات المستلمة. يتعقب التطبيق أيضا عدد طرق عرض الصفحة ويعرض اسم مضيف مثيل yelb-appserver الذي يخدم طلب واجهة برمجة التطبيقات عند التصويت أو تحديث الصفحة. تمكنك هذه الميزة من عرض التطبيق بشكل مستقل أو تعاوني.
البنية على AWS
للمساعدة في حماية تطبيقات الويب وواجهات برمجة التطبيقات من عمليات استغلال الويب الشائعة، يقدم AWS جدار حماية تطبيقات الويب AWS (WAF)AWS Firewall Manager.
تعيين خدمات AWS إلى خدمات Azure
لإعادة إنشاء حمل عمل AWS في Azure مع الحد الأدنى من التغييرات، استخدم مكافئ Azure لكل خدمة AWS. يلخص الجدول التالي تعيينات الخدمة:
| تعيين الخدمة | خدمة AWS | خدمة Azure |
|---|---|---|
| جدار حماية الوصول إلى الويب | جدار الحماية لتطبيقات الويب AWS (WAF) | جدار حماية تطبيقات الويب (WAF) في Azure |
| موازنة تحميل التطبيق | موازن تحميل التطبيق (ALB) | بوابة تطبيق AzureApplication Gateway للحاويات (AGC) |
| شبكة تسليم المحتوى | أمازون كلاودفرونت | Azure Front Door (AFD) |
| التزامن | Elastic Kubernetes Service (EKS) | خدمة Azure Kubernetes (AKS) |
| مخزن الأسرار | AWS Key Management Service (KMS) | Azure Key Vault |
| سجل الحاوية | Amazon Elastic Container Registry (ECR) | Azure Container Registry (ACR) |
| نظام أسماء المجالات (DNS) | طريق أمازون 53 | Azure DNS |
| التخزين المؤقت | أمازون إيلاستي كاش | Azure Managed Redis |
| NoSQL | أمازون داينامو دي بي | قاعدة بيانات Azure ل PostgreSQL |
للمقارنة الشاملة بين خدمات Azure وAWS، راجع مقارنة AWS إلى خدمات Azure.
البنية على Azure
في هذا الحل، يتم نشر تطبيق Yelb إلى نظام مجموعة AKS ويتم عرضه عبر وحدة تحكم دخول مثل وحدة تحكم دخول NGINX . يتم عرض خدمة وحدة تحكم الدخول عبر موازن تحميل داخلي (أو خاص) . لمزيد من المعلومات حول كيفية استخدام موازن تحميل داخلي لتقييد الوصول إلى تطبيقاتك في AKS، راجع استخدام موازن تحميل داخلي مع خدمة Azure Kubernetes (AKS).
يدعم هذا النموذج تثبيت وحدة تحكم دخول NGINX مدارة مع الوظيفة الإضافية لتوجيه التطبيق أو وحدة تحكم دخول غير مدارة NGINX باستخدام مخطط Helm. توفر الوظيفة الإضافية لتوجيه التطبيق مع وحدة تحكم دخول NGINX الميزات التالية:
- تكوين سهل لوحدات تحكم دخول NGINX المدارة استنادا إلى وحدة تحكم دخول Kubernetes NGINX.
- التكامل مع Azure DNS لإدارة المنطقة العامة والخاصة.
- إنهاء SSL مع الشهادات المخزنة في Azure Key Vault.
للحصول على تكوينات أخرى، راجع المقالات التالية:
- تكوين DNS وSSL
- تكوين الوظيفة الإضافية لتوجيه التطبيق
- تكوين وحدة تحكم دخول NGINX الداخلية لمنطقة DNS الخاصة Azure
يتم تأمين تطبيق Yelb مع مورد Azure Application Gateway المنشور في شبكة فرعية مخصصة داخل نفس الشبكة الظاهرية مثل نظام مجموعة AKS أو في شبكة ظاهرية نظيرة. يمكنك تأمين الوصول إلى تطبيق Yelb باستخدام Azure Web Application Firewall (WAF)، والذي يوفر حماية مركزية لتطبيقات الويب من عمليات الاستغلال والثغرات الأمنية الشائعة.
تصميم بنية الحل
يوضح الرسم التخطيطي التالي البنية الموصى بها على Azure:
تتكون بنية الحل مما يلي:
- تعالج بوابة التطبيق إنهاء TLS وتتصل بتطبيق الواجهة الخلفية عبر HTTPS.
- يستخدم مستمع بوابة التطبيق شهادة SSL التي تم الحصول عليها من Azure Key Vault.
- يقوم نهج Azure WAF المقترن بوحدة الاستماع بتشغيل قواعد OWASP والقواعد المخصصة ضد الطلبات الواردة ويحظر الهجمات الضارة.
- تستدعي إعدادات HTTP الخلفية لبوابة التطبيق تطبيق Yelb عبر HTTPS على المنفذ 443.
- يستدعي تجمع الواجهة الخلفية لبوابة التطبيق والتحقيق الصحي وحدة تحكم دخول NGINX من خلال موازن التحميل الداخلي ل AKS باستخدام HTTPS.
- تستخدم وحدة تحكم دخول NGINX موازن التحميل الداخلي ل AKS.
- تم تكوين نظام مجموعة AKS مع موفر Azure Key Vault للوظيفة الإضافية لبرنامج تشغيل CSI مخزن الأسرار لاسترداد الأسرار والشهادات والمفاتيح من Azure Key Vault عبر وحدة تخزين CSI.
- SecretProviderClass يسترد نفس الشهادة المستخدمة من قبل بوابة التطبيق من Azure Key Vault.
- يستخدم عنصر دخول Kubernetes وحدة تحكم دخول NGINX لعرض التطبيق عبر HTTPS من خلال موازن التحميل الداخلي ل AKS.
- خدمة Yelb من نوع
ClusterIPويتم عرضها عبر وحدة تحكم دخول NGINX.
للحصول على إرشادات شاملة حول نشر تطبيق Yelb على AKS باستخدام هذه البنية، راجع نموذج المصاحب.
الحلول البديلة
يقدم Azure العديد من الخيارات لنشر تطبيق ويب على نظام مجموعة AKS وتأمينه باستخدام جدار حماية تطبيق ويب:
- وحدة التحكم في دخول بوابة التطبيق
- بوابة تطبيق Azure للحاويات
- الباب الأمامي Azure
- وحدة تحكم دخول NGINX
وحدة التحكم في دخول بوابة التطبيق (AGIC) هو تطبيق Kubernetes، بحيث يمكنك الاستفادة من موازنة تحميل Application Gateway الأصلية في Azure L7 لعرض برامج السحابة على الإنترنت لأحمال عمل Azure Kubernetes Service (AKS). تراقب AGIC مجموعة Kubernetes التي تستضيفها وتحدث بوابة التطبيق باستمرار بحيث يتم عرض الخدمات المحددة على الإنترنت.
تعمل وحدة تحكم الدخول في جرابها الخاص على نظام مجموعة AKS. تراقب AGIC مجموعة فرعية من موارد Kubernetes للتغييرات، وتترجم حالة المجموعة إلى تكوين محدد لبوابة التطبيق، وتطبقها على Azure Resource Manager (ARM). لمزيد من المعلومات، راجع ما هي وحدة تحكم دخول بوابة التطبيق؟.
يوضح الجدول التالي مزايا وعيوب وحدة تحكم دخول بوابة التطبيق (AGIC):
| المزايا | أضرار |
|---|---|
|
*
التكامل الأصلي: يوفر AGIC التكامل الأصلي مع خدمات Azure، وتحديدا Azure Application Gateway، والذي يسمح للتوجيه السلس والفعال لنسبة استخدام الشبكة إلى الخدمات التي تعمل على AKS. * عمليات النشر المبسطة: يعد نشر AGIC كوظيفة AKS إضافية أمرا بسيطا وأبسط مقارنة بالأساليب الأخرى. وهو يتيح إعدادا سريعا وسهلا لبوابة التطبيق والمجموعة AKS مع تمكين AGIC. * خدمة مدارة بالكامل: AGIC كوظيفة إضافية هي خدمة مدارة بالكامل، وتوفر مزايا مثل التحديثات التلقائية وزيادة الدعم من Microsoft. يضمن بقاء Ingress Controller up-to-date ويضيف طبقة إضافية من الدعم. |
* نهج سحابة واحدة: يعتمد AGIC في المقام الأول من قبل العملاء الذين يعتمدون نهج سحابة واحدة. قد لا يكون الخيار الأفضل إذا كنت تحتاج إلى بنية متعددة السحابات حيث يعد النشر عبر الأنظمة الأساسية السحابية المختلفة شرطا. في هذه الحالة، قد تحتاج إلى استخدام وحدة تحكم دخول غير محددة على السحابة مثل NGINX أو Traefik أو HAProxy لتجنب مشكلات vendo-lockin. |
لمزيد من المعلومات، راجع الموارد التالية: