مسرع المنطقة المنتقل إليها في إدارة واجهة برمجة تطبيقات Azure

Azure API Management
Azure Application Gateway
Azure Functions
.NET

أصبحت واجهات برمجة التطبيقات بارزة بشكل متزايد في كيفية وصول الشركات والعملاء إلى الخدمات، داخلياً وخارجياً. داخلياً، يتم استخدام واجهات برمجة التطبيقات للوصول إلى تطبيقات خط الأعمال والحلول التي تم إنشاؤها محلياً وتكاملات الجهات الخارجية. خارجياً، تتطلع المزيد من الشركات إلى أن تكون منتجة وتحقيق الدخل من واجهات برمجة التطبيقات الخاصة بها. مع مراعاة هذا الاتجاه، تصبح APIM مكوناً مركزياً لنهج قياسي لإدارة واجهات برمجة التطبيقات وإدارتها ونشرها لكل من الجماهير الداخلية والخارجية.

بمساعدة Azure Application Gateway، أصبح من الممكن الآن حماية وتقييد الوصول إلى واجهات برمجة التطبيقات التي يتم تقديمها من خلال إدارة واجهة برمجة تطبيقات Azure. توضح هذه المقالة حلاً حيث يمكنك إدارة واجهات برمجة التطبيقات الداخلية والخارجية من خلال مثيل APIM واحد. يمكنك الحفاظ على وضع آمن من التعرض مباشرة عبر الإنترنت، ولكن بدلاً من ذلك يتم الوصول إليه من خلال بوابة التطبيق.

ملاحظة

يتم استخدام هذه البنية كأساس لمسرع المنطقة المنتقل إليها في Azure API Management في Cloud Adoption Framework.

بناء الأنظمة

رسم تخطيطي يوضح بنية مسرع المنطقة المنتقل إليها لإدارة واجهة برمجة التطبيقات.

يبدأ هذا الرسم التخطيطي المعماري بمربع شامل يمثل نطاق الاشتراك، ومنطقة DNS خاصة حيث سيتم حل المجالات الخاصة، ونطاق شبكة ظاهرية أسماء APIM-CS VNet. أعلى الاشتراك يوجد مربع يشير إلى أنه حمل عمل محلي. يحتوي المربع على أيقونة خادم بداخله. يشير توجيه التوجيه إلى اتصال من موقع إلى موقع، أو يتصل Azure ExpressRoute بمثيل APIM في اشتراك Azure. يوجد سبعة مربعات أصغر إضافية داخل المربع الكبير الذي يظهر اشتراك Azure. يوجد أربعة من المربعات في الصف العلوي، وثلاثة في الصف السفلي. يمثل كل مربع فردي شبكة فرعية منفصلة، مع مجموعة أمان شبكة متصلة. من أقصى اليسار، يوجد عنوان IP عام مرفق بـ Azure Application Gateway في المربع أقصى اليسار في الصف العلوي. تعيش بوابة التطبيق أيضاً ضمن أحد المربعات السبعة الأصغر، مع الشبكة الفرعية المسماة App GW subnet. إلى اليمين يوجد مربع آخر يحتوي على مثيل APIM، مع الشبكة الفرعية المسماة APIM الشبكة الفرعية. بجواره يوجد المربع الثالث في الصف العلوي، والذي يحتوي على نقطة نهاية خاصة لمثيل Azure Functions في الشبكة الفرعية المسماة شبكة PE الفرعية. المربع الموجود في أقصى اليمين في الصف العلوي هو الشبكة الفرعية الخلفية التي تحتوي على Azure Function Apps وخطة Azure App Service للوظيفة وحساب التخزين المرتبط بتطبيق الوظيفة. في الصف السفلي، بدءً من اليسار، يوجد مربع يحتوي على Azure Bastion في شبكة Bastion الفرعية. يحتوي المربع الثاني على jumbox VM للإدارة في الشبكة الفرعية لـ Jump Box. المربع الأخير في الصف السفلي هو وكيل DevOps الموجود في شبكة DevOps الفرعية. في الجزء السفلي الأيمن من الصورة، توجد ثلاثة موارد مشتركة مع الرموز الخاصة بكل منها. من اليسار إلى اليمين، هي المربعات التالية: key vault وapplication insights ومساحة عمل تحليلات السجل. هناك مجموعتين من مهام سير العمل. تتم الإشارة إلى سير العمل الأول في دوائر سوداء، ويشار إلى سير العمل الآخر في دوائر زرقاء، والتي سيتم شرحها في الأقسام اللاحقة. يشير سير العمل الأسود إلى الوصول إلى واجهات برمجة التطبيقات المتوفرة خارجياً. يبدأ التدفق من وصول المستخدم إلى عنوان IP العام. يشير السهم بعد ذلك إلى اتجاه بوابة التطبيق، من بوابة التطبيق إلى نقطة النهاية الخاصة، ومن نقطة النهاية الخاصة إلى تطبيق الوظيفة. يبدأ سير العمل الأزرق من خادم محلي، مع سهم يشير إلى مثيل APIM، من خلال أيقونة مسار تشير إما إلى اتصال من موقع إلى موقع أو عبر ExpressRoute. بقية التدفق هو نفسه كما هو موضح أعلاه: من API Management إلى نقطة النهاية الخاصة، ومن نقطة النهاية الخاصة إلى Azure Function.

تفترض هذه البنية أن النهج موجودة من مسرع منطقة هبوط Azure وأن البنية مدفوعة لأسفل من مجموعة الإدارة.

تنزيل Visio file لهذه البنية.

سير العمل

سيناريو مختلط (دوائر زرقاء)

يتطلب هذا السيناريو اتصالاً من موقع إلى موقع أو اتصال Azure ExpressRoute ببيئتك المحلية.

  1. يتطلب التطبيق المحلي الوصول إلى واجهة برمجة تطبيقات داخلية يتم تقديمها من خلال إدارة واجهة برمجة تطبيقات Azure.
  2. تتصل APIM بواجهات برمجة التطبيقات الخلفية التي تتم استضافتها على Azure Functions. يتم هذا الاتصال من خلال نقطة نهاية خاصة، والتي تتوفر من خلال خطة Azure Functions Premium، ويتم استضافتها في شبكتها الفرعية.
  3. تصل نقطة النهاية الخاصة بأمان إلى واجهة برمجة التطبيقات الداخلية المستضافة على Azure Functions.

سيناريو الوصول الخارجي (دوائر سوداء)

  1. يصل تطبيق خارجي إلى عنوان IP عام أو FQDN مخصص، والذي يتم إرفاقه ببوابة تطبيق Azure.
  2. تعمل بوابة التطبيق كجدار حماية لتطبيق الويب، والذي يتطلب شهادات PFX لإنهاء SSL.
  3. تتصل APIM بواجهات برمجة التطبيقات الخلفية، والتي تتم استضافتها على Azure Functions، من خلال نقطة نهاية خاصة. تتوفر نقطة النهاية هذه من خلال خطة Azure Functions Premium ويتم استضافتها في شبكتها الفرعية.
  4. تصل نقطة النهاية الخاصة بأمان إلى واجهة برمجة التطبيقات الداخلية المستضافة على Azure Functions.

المكونات

تتضمن هذه البنية المكونات الآتية:

  • إدارة واجهة برمجة تطبيقات Azure هي خدمة مدارة تسمح لك بإدارة الخدمات عبر البيئات المختلطة ومتعددة السحابة. تعمل إدارة واجهة برمجة التطبيقات كواجهة لتجريد البنية الخلفية، وتوفر التحكم والأمان لمراقبة واجهة برمجة التطبيقات واستهلاكها لكل من المستخدمين الداخليين والخارجيين.

  • Azure Functions هو حل بلا خادم يسمح لك بالتركيز أكثر على كتل التعليمات البرمجية التي يمكن تنفيذها بأقل قدر من إدارة البنية الأساسية. يمكن استضافة الوظائف في خطط استضافة مختلفة، بينما تستخدم هذه البنية المرجعية الخطة المتميزة، بسبب استخدام نقاط النهاية الخاصة.

  • Azure Application Gateway هي خدمة مدارة تعمل كموازن تحميل الطبقة 7 وجدار حماية تطبيق الويب. في هذا السيناريو، تحمي بوابة التطبيق مثيل APIM الداخلي، والذي يسمح لك باستخدام الوضع الداخلي والخارجي.

  • تسمح لك مناطق DNS الخاصةل Azure DNS بإدارة أسماء المجالات وحلها داخل شبكة ظاهرية، دون الحاجة إلى تنفيذ حل DNS مخصص. يمكن محاذاة منطقة DNS الخاصة إلى شبكة ظاهرية واحدة أو أكثر، من خلال روابط الشبكة الظاهرية. نظراً إلى تعرض Azure Functions عبر نقطة نهاية خاصة تستخدمها هذه البنية المرجعية، يجب استخدام منطقة DNS خاصة.

  • يساعد Azure MonitorApplication Insights المطورين على اكتشاف الحالات الشاذة وتشخيص المشكلات وفهم أنماط الاستخدام. يقدم Application Insights إدارة أداء التطبيق القابلة للتوسعة ومراقبة تطبيقات الويب المباشرة. يتم دعم الأنظمة الأساسية المختلفة، بما في ذلك .NET، Node.js، وJava، وPython. وهو يدعم التطبيقات التي تتم استضافتها في Azure أو في أماكن العمل أو في بيئة مختلطة أو في السحب العامة الأخرى. يتم تضمين Application Insights كجزء من هذه البنية المرجعية، لمراقبة سلوكيات التطبيق المنشور.

  • يسمح لك Azure MonitorLog Analytics بتحرير استعلامات السجل وتشغيلها باستخدام البيانات في سجلات Azure Monitor، اختياريا من داخل مدخل Microsoft Azure. يمكن للمطورين تشغيل استعلامات بسيطة لمجموعة من السجلات أو استخدام Log Analytics لإجراء تحليل متقدم. يمكنهم بعد ذلك تصور النتائج. يتم تكوين Log Analytics كجزء من هذه البنية المرجعية، لتجميع جميع سجلات المراقبة للتحليل وإعداد التقارير.

  • أجهزة Azure الظاهرية هي مورد حوسبة يمكن استخدامه لاستضافة العديد من أحمال العمل المختلفة. في هذه البنية المرجعية، يتم استخدام الأجهزة الظاهرية لتوفير خادم jumpbox للإدارة، وتوفير مضيف لعامل DevOps أو مشغل GitHub.

  • Azure Key Vault هي خدمة سحابية تقوم بتخزين الأسرار والوصول إليها بأمان، والتي تتراوح من مفاتيح واجهة برمجة التطبيقات وكلمات المرور إلى الشهادات ومفاتيح التشفير. تستخدم بنية المرجع هذه Azure Key Vault لتخزين شهادات SSL التي تستخدمها بوابة التطبيق.

  • Azure Bastion هو نظام أساسي كخدمة يتم توفيره داخل الشبكة الظاهرية للمطور. كما توفر اتصال RDP/SSH آمن بأجهزة المطور الظاهرية عبر TLS من مدخل Microsoft Azure. مع Azure Bastion، لم تعد الأجهزة الظاهرية تتطلب عنوان IP عامًا للاتصال عبر RDP/SSH. تستخدم هذه البنية المرجعية Azure Bastion للوصول إلى عامل DevOps أو خادم مشغل GitHub أو خادم jump box للإدارة.

إذا كنت تستخدم أداة DevOps، مثل Azure DevOps أو GitHub، فإن العوامل أو المشغلات المستضافة على السحابة تعمل عبر الإنترنت العام. نظراً لتعيين إدارة واجهة برمجة التطبيقات في هذه البنية إلى شبكة داخلية، ستحتاج إلى استخدام عامل DevOps لديه حق الوصول إلى VNet. سيساعدك عامل DevOps على نشر النهج والتغييرات الأخرى على واجهات برمجة التطبيقات في البنية الخاصة بك. يمكن استخدام قوالب CI/CD هذه لفصل العملية والسماح لفرق التطوير بنشر التغييرات، لكل واجهة برمجة تطبيقات. يتم تنفيذها من قبل مشغلي DevOps.

البدائل

بالنسبة لخدمات الواجهة الخلفية التي يتصل بها مثيل APIM، تتوفر العديد من البدائل، بالإضافة إلى Azure Functions، والتي يتم استخدامها في تنفيذ المرجع هذا:

  • Azure App Service هي خدمة مستندة إلى HTTP مدارة بالكامل تقوم بإنشاء تطبيقات الويب وتوزيعها وتوسيع نطاقها. يتم دعم .NET و.NET Core وJava وRu ruby Node.js وPHP وPython. يمكن تشغيل التطبيقات وتوسيع نطاقها في البيئات المستندة إلى Windows أو Linux.
  • خدمة Azure Kubernetes تقدم مجموعات Kubernetes المدارة بالكامل للحصول على تكامل مستمر متكامل وتجربة تسليم مستمر (CI/CD) وحوكمة وأمان.
  • Azure Logic Apps هو النظام الأساسي المستند إلى السحابة لإنشاء وتشغيل مهام سير عمل تلقائية. يمكن العثور على مثال بنية مرجعية في تكامل المؤسسة الأساسي على Azure.
  • Azure Container Apps تمكنك من تشغيل الخدمات الصغيرة والتطبيقات الحاوية على منصة بدون خادم.

بالنسبة إلى عمليات النشر متعددة المناطق، ضع في اعتبارك استخدام Azure Front Door لتوفير وصول سريع وموثوق وآمن بين المستخدمين ومحتوى الويب الثابت والديناميكي لتطبيقاتك.

للاطلاع على أمثلة إضافية حول كيفية حماية بوابة التطبيق لواجهات برمجة التطبيقات، راجع حماية واجهات برمجة التطبيقات باستخدام بوابة التطبيق وإدارة واجهة برمجة التطبيقات.

الاعتبارات

تنفذ هذه الاعتبارات ركائز Azure Well-Architected Framework، وهو عبارة عن مجموعة من المبادئ التوجيهية التي يمكن استخدامها لتحسين جودة حمل العمل. لمزيد من المعلومات، راجع إطار العمل جيد التصميم في Microsoft Azure.

الموثوقيه

تضمن الموثوقية أن التطبيق الخاص بك يمكن أن يفي بالالتزامات التي تتعهد بها لعملائك. لمزيد من المعلومات، راجع نظرة عامة على ركيزة الموثوقية.

  • نشر وحدتي مقياس على الأقل من APIM التي تنتشر على منطقتين من مناطق التوفر، لكل منطقة. تزيد هذه الطريقة من توفرك وأدائك.
  • يوفر نظير الشبكة الظاهرية أداءً رائعاً في منطقة ما، ولكن لديه حد قابلية التوسع بحد أقصى 500 شبكة. إذا كنت بحاجة إلى المزيد من أعباء العمل ليتم توصيلها، فاستخدم تصميم محور التوزيع أو Azure vWAN.

الأمان

ويوفر عامل الأمان ضمانات للحماية من الهجمات المتعمدة واستغلال البيانات والأنظمة القيمة الخاصة بك. للمزيد من المعلومات، يرجى الرجوع إلى نظرة عامة على ركيزة الأمان.

  • تتوفر نهج التحقق من صحة APIM للتحقق من صحة طلبات واجهة برمجة التطبيقات والاستجابات مقابل مخطط OpenAPI. هذه الميزات ليست بديلاً لجدار حماية تطبيق الويب، ولكنها يمكن أن توفر حماية إضافية ضد بعض التهديدات. يمكن أن يكون لإضافة نهج التحقق من الصحة آثار على الأداء، لذلك نوصي باستخدام اختبارات تحميل الأداء لتقييم تأثيرها على معدل نقل واجهة برمجة التطبيقات.
  • انشر Azure Web Application Firewall (WAF) أمام APIM لتوفير الحماية من عمليات استغلال تطبيق الويب الشائعة ونقاط الضعف.
  • طبّق القيم المسماة باستخدام أسرار Key Vault لحماية المعلومات الحساسة في نهج APIM.
  • استخدم Application Gateway للوصول الخارجي لمثيل APIM داخلي لحماية مثيل APIM ولتمكين الاتصال المختلط.
  • انشر بوابة إدارة واجهة برمجة التطبيقات في شبكة ظاهرية، لدعم الاتصال المختلط وزيادة الأمان.
  • يوفر نظير الشبكة الظاهرية أداءً رائعاً في منطقة ما، ولكن لديه حد قابلية التوسع بحد أقصى 500 شبكة. إذا كنت بحاجة إلى المزيد من أعباء العمل ليتم توصيلها، فاستخدم تصميم محور التوزيع أو Azure vWAN.

تحسين التكلفة

يركز تحسين التكلفة على البحث عن طرق للحد من النفقات غير الضرورية وتحسين الكفاءة التشغيلية. لمزيد من المعلومات، يرجى مراجعةنظرة عامة على ركيزة تحسين التكلفة.

  • نظراً للحاجة إلى منطقة التوفر ودعم الشبكة الظاهرية، اخترنا المستوى Premium لإدارة واجهة برمجة التطبيقات، بعد التسعير لكل منطقة. بالإضافة إلى ذلك، في حمل العمل هذا، تتم استضافة Azure Functions على خطة Premium، بسبب الحاجة إلى الوصول إلى VNet.
  • لإثبات المفهوم أو النماذج الأولية، نوصيك باستخدام مستويات أخرى من إدارة واجهة برمجة التطبيقات (مثل المطور أو القياسي).

التميز التشغيلي

يغطي التميز التشغيلي عمليات التشغيل التي تحافظ على تشغيل التطبيق في الإنتاج. لمزيد من المعلومات، يرجى مراجعةنظرة عامة على ركيزة التميز التشغيلي.

  • يجب تمثيل تكوينات APIM كقوالب ARM، ويجب عليك تبني عقلية البنية الأساسية كتعلم برمجي.
  • استخدم عملية CI/CD لإدارة تكوينات APIM وإصدارها وتحديثها.
  • إنشاء تحقيقات صحية مخصصة للمساعدة في التحقق من صحة حالة مثيل إدارة واجهة برمجة التطبيقات. استخدم عنوان URL /status-0123456789abcdef لإنشاء نقطة نهاية صحية مشتركة لخدمة APIM في بوابة التطبيق.
  • الشهادات التي تم تحديثها في مخزن المفاتيح يتم تدويرها تلقائياً في إدارة واجهة برمجة التطبيقات، والتي يتم تحديثها في غضون 4 ساعات.
  • نشر وحدتي مقياس على الأقل من APIM التي تنتشر على منطقتين من مناطق التوفر، لكل منطقة. تزيد هذه الطريقة من توفرك وأدائك.

توزيع هذا السيناريو

يتوفر تطبيق لهذه البنية على GitHub. يحتوي على جميع ملفات البنية الأساسية كتعلم برمجية وإرشادات النشر الضرورية.

المساهمون

هذه المقالة تحتفظ بها Microsoft. تمت كتابتها في الأصل من قِبل المساهمين التاليين.

المؤلفون الأساسيون:

لمشاهدة ملفات تعريف LinkedIn غير العامة، سجل الدخول إلى LinkedIn.

الخطوات التالية

راجع هذه الموارد الرئيسية:

تعرف على المزيد حول هذه الخدمات الرئيسية: