توزيع واجهات برمجة التطبيقات الداخلية للمستخدمين الخارجيين

Azure API Management
Azure Application Gateway
Azure DevOps
Azure Monitor
Azure Virtual Network

في هذا السيناريو، تدمج المؤسسة واجهات برمجة تطبيقات متعددة داخليا باستخدام Azure API Management المنشورة داخل شبكة ظاهرية.

بناء الأنظمة

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

قم بتنزيل ملف Visio لهذه البنية.

يغطي الرسم التخطيطي السابق دورة حياة كاملة لواجهات برمجة التطبيقات الداخلية التي يستهلكها المستخدمون الخارجيون.

تدفق البيانات

تتدفق البيانات على النحو التالي:

  1. يقوم المطورون بالتحقق من التعليمات البرمجية إلى مستودع GitHub المتصل بعامل تدفق CI/CD المثبت على جهاز Azure الظاهري.
  2. يدفع العامل البناء إلى تطبيق API المستضاف على بيئة خدمة تطبيق ILB.
  3. تستهلك Azure API Management واجهات برمجة التطبيقات السابقة عبر عناوين HOST المحددة في نهج APIM.
  4. تستخدم APIM اسم DNS لبيئة خدمة التطبيقات لجميع واجهات برمجة التطبيقات.
  5. تعرض بوابة التطبيق مطور APIM ومدخل واجهة برمجة التطبيقات.
  6. يتم استخدام Azure Private DNS لتوجيه نسبة استخدام الشبكة داخليا بين بيئة خدمة التطبيقات وإدارة واجهة برمجة التطبيقات وبوابة التطبيق.
  7. يستخدم المستخدمون الخارجيون مدخل المطور المكشوف لاستهلاك واجهات برمجة التطبيقات عبر عنوان IP العام لبوابة التطبيق.

المكونات

  • تعمل شبكة Azure الظاهرية على تمكين موارد Azure من الاتصال ببعضها البعض والإنترنت والشبكات المحلية بشكل آمن.
  • يتيح Azure Private DNS لك إدارة أسماء المجالات وحلها في شبكة ظاهرية دون الحاجة إلى إضافة حل DNS مخصص.
  • تساعد إدارة واجهة برمجة التطبيقات المؤسسات على نشر واجهات برمجة التطبيقات للمطورين الخارجيين والشركاء والداخليين لاستخدام بياناتهم وخدماتهم.
  • بوابة التطبيق هي موازن تحميل حركة مرور الويب الذي يساعدك على إدارة نسبة استخدام الشبكة إلى تطبيقات الويب الخاصة بك.
  • بيئة خدمة تطبيق موازن التحميل الداخلي هي ميزة Azure App Service التي توفر بيئة معزولة ومخصصة بالكامل لتشغيل تطبيقات App Service بشكل آمن على نطاق واسع.
  • Azure DevOps هي خدمة لإدارة دورة حياة التطوير الخاصة بك وتتضمن ميزات للتخطيط وإدارة المشاريع وإدارة التعليمات البرمجية والبناء والإصدار.
  • Application Insights هي خدمة إدارة أداء التطبيقات القابلة للتوسيع (APM) لمطوري الويب على أنظمة أساسية متعددة.
  • Azure Cosmos DB هي خدمة قاعدة بيانات متعددة النماذج موزعة عالميًّا من Microsoft.

البدائل

  • في سيناريو رفع وتحويل Azure المنشور في شبكة Azure الظاهرية، يمكن معالجة الخوادم الخلفية مباشرة من خلال عناوين IP الخاصة.
  • إذا كنت تستخدم موارد محلية، يمكن لمثيل إدارة واجهة برمجة التطبيقات الوصول مرة أخرى إلى الخدمة الداخلية بشكل خاص عبر بوابة Azure VPN واتصال VPN لأمان بروتوكول الإنترنت من موقع إلى موقع (IPSec) أو ExpressRoute الذي يقوم بعمل سيناريو مختلط في Azure وداخلي.
  • يمكن استخدام موفري DNS الحاليين أو مفتوحي المصدر بدلا من خدمة DNS المستندة إلى Azure.
  • لا يزال بإمكان واجهات برمجة التطبيقات الداخلية المنشورة خارج Azure الاستفادة من خلال كشف واجهات برمجة التطبيقات من خلال خدمة إدارة واجهة برمجة التطبيقات.

تفاصيل السيناريو

في هذا السيناريو، تستضيف المؤسسة واجهات برمجة تطبيقات متعددة باستخدام بيئة خدمة تطبيق Azure (بيئة خدمة تطبيق ILB)، وتريد دمج واجهات برمجة التطبيقات هذه داخليا باستخدام إدارة واجهة برمجة تطبيقات Azure (APIM) المنشورة داخل شبكة ظاهرية. يمكن أيضا عرض مثيل APIM الداخلي للمستخدمين الخارجيين للسماح باستخدام الإمكانات الكاملة لواجهات برمجة التطبيقات. يمكن تحقيق هذا التعرض الخارجي باستخدام طلبات إعادة توجيه بوابة تطبيق Azure إلى خدمة APIM الداخلية، والتي بدورها تستهلك واجهات برمجة التطبيقات المنشورة في بيئة خدمة التطبيقات.

  • تتم استضافة واجهات برمجة تطبيقات الويب عبر بروتوكول HTTPS الآمن وستستخدم شهادة TLS.
  • يتم تكوين بوابة التطبيق أيضا عبر المنفذ 443 للمكالمات الصادرة الآمنة والموثوقة.
  • تم تكوين خدمة APIM لاستخدام المجالات المخصصة باستخدام شهادات TLS.
  • مراجعة تكوين الشبكة المقترح لبيئات خدمة التطبيقات
  • يجب أن يكون هناك إشارة صريحة حول المنفذ 3443 الذي يسمح لإدارة واجهة برمجة التطبيقات بالإدارة عبر مدخل Azure أو PowerShell.
  • استخدم النهج داخل APIM لإضافة عنوان HOST لواجهة برمجة التطبيقات المستضافة على App Service Environment. وهذا يضمن أن موازن تحميل بيئة خدمة التطبيقات سيقوم بإعادة توجيه الطلب بشكل صحيح.
  • تقبل إدارة واجهة برمجة التطبيقات إدخال DNS لبيئة خدمة التطبيقات لجميع التطبيقات المستضافة ضمن بيئات خدمة التطبيقات. أضف نهج APIM لتعيين عنوان HOST بشكل صريح للسماح لموازن تحميل App Service Environment بالتفريق بين التطبيقات ضمن App Service Environment.
  • ضع في اعتبارك التكامل مع Azure Application Insights، والذي يظهر أيضاً القياسات من خلال Azure Monitor للمراقبة.
  • إذا كنت تستخدم مسارات CI/CD لنشر واجهات برمجة التطبيقات الداخلية، ففكر في إنشاء عامل مستضاف خاص بك على جهاز ظاهري داخل الشبكة الظاهرية.

حالات الاستخدام المحتملة

  • مزامنة معلومات عنوان العميل داخليا بعد إجراء العميل تغييرا.
  • جذب المطورين إلى نظامك الأساسي من خلال الكشف عن أصول البيانات الفريدة.

الاعتبارات

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

الموثوقيه

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

التوافر

يمكنك نشر خدمة Azure API Management كنشر متعدد المناطق للحصول على توفر أعلى وأيضا لتقليل زمن الانتقال. تتوفر هذه الميزة فقط في الوضع Premium. تستهلك خدمة APIM في هذا السيناريو المحدد واجهات برمجة التطبيقات من بيئات خدمة التطبيقات. يمكنك أيضا استخدام APIM لواجهات برمجة التطبيقات المستضافة على البنية الأساسية الداخلية الداخلية.

يمكن لبيئات خدمة التطبيقات الاستفادة من ملفات تعريف مدير نسبة استخدام الشبكة لتوزيع نسبة استخدام الشبكة المستضافة على App Service Environments للحصول على مقياس وتوافر أعلى.

مرونة

على الرغم من أن سيناريو المثال هذا يتحدث أكثر عن التكوين، يجب أن تكون واجهات برمجة التطبيقات المستضافة على بيئات خدمة التطبيقات مرنة بما يكفي لمعالجة الأخطاء في الطلبات، والتي تتم إدارتها في نهاية المطاف بواسطة خدمة إدارة واجهة برمجة التطبيقات وبوابة التطبيق. ضع في اعتبارك إعادة المحاولة وأنماط قاطع الدوائر في تصميم واجهة برمجة التطبيقات. للحصول على إرشادات عامة حولَ تصميم حلول مرنة، راجع تصميم تطبيقات مرنة لـ Azure.

الأمان

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

نظرا لأن سيناريو المثال السابق مستضاف بالكامل على شبكة داخلية، يتم بالفعل نشر إدارة واجهة برمجة التطبيقات وبيئة خدمة التطبيقات على البنية الأساسية الآمنة (شبكة Azure الظاهرية). يمكنك دمج Application Gateways مع Microsoft Defender for Cloud لتوفير طريقة سلسة لمنع التهديدات التي تتعرض لها البيئة واكتشافها والاستجابة لها. للحصول على إرشادات عامة الخاصة بتصميم الحلول الآمنة، راجع Azure Security Documentation.

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

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

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

يمكن للعملاء توسيع نطاق إدارة واجهات برمجة التطبيقات APIM عن طريق إضافة وإزالة الوحدات. كل وحدة لديها سعة تعتمد على طبقتها.

إشعار

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

لعرض التكاليف المتوقعة والتخصيص حسب احتياجات التوزيع الخاصة بك، يمكنك تعديل عدد وحدات القياس ومثيلات خدمة التطبيقات في Azure Pricing Calculator.

وبالمثل، يمكنك العثور على إرشادات تسعير App Service Environments.

يمكنك تكوين تسعير بوابة التطبيق اعتمادا على المستوى والموارد المطلوبة.

كفاءة الأداء

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

قابلية التوسع

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

تم تصميم App Service Environments للتحجيم بحدود استنادا إلى مستوى التسعير. يمكنك تكوين التطبيقات المستضافة ضمن App Service Environments لتوسيع نطاقها (عدد المثيلات) أو توسيع نطاقها (حجم المثيل) اعتمادا على متطلبات التطبيق.

يتوفر التحجيم التلقائي لبوابة تطبيق Azure كجزء من وحدة حفظ المخزون المكررة في المنطقة في جميع مناطق Azure العالمية. راجع ميزة المعاينة العامة فيما يتعلق بالتحجيم التلقائي لبوابة التطبيق.

نشر هذا السيناريو

المتطلبات الأساسية والافتراضات

  1. تحتاج إلى شراء اسم مجال مخصص.
  2. تحتاج إلى شهادة TLS (استخدمنا شهادة حرف بدل من خدمة شهادات Azure) لاستخدام واحدة لجميع مجالاتنا المخصصة. يمكنك أيضا شراء شهادة موقعة ذاتيا لسيناريوهات Dev Test.
  3. يستخدم هذا النشر المحدد اسم المجال contoso.org وشهادة TLS لحرف البدل للمجال.
  4. يستخدم التوزيع أسماء الموارد ومساحات العناوين المذكورة في قسم التوزيع. يمكنك تكوين أسماء الموارد ومساحات العناوين.

توزيع الأجزاء ووضعها معا

نشر في Azure

تحتاج إلى تكوين المكونات المنشورة باستخدام قالب Resource Manager السابق كما يلي:

  1. شبكة ظاهرية مع التكوينات التالية:

    • الاسم: ase-internal-vnet
    • مساحة العنوان للشبكة الظاهرية: 10.0.0.0/16
    • أربع شبكات فرعية
      • backendSubnet لخدمة DNS: 10.0.0.0/24
      • apimsubnet لخدمة إدارة واجهة برمجة التطبيقات الداخلية: 10.0.1.0/28
      • asesubnet لبيئة خدمة تطبيق ILB: 10.0.2.0/24
      • VMSubnet لاختبار الأجهزة الظاهرية والأجهزة الظاهرية لعامل DevOps المستضاف الداخلي: 10.0.3.0/24
  2. تتطلب خدمة DNS الخاصة (المعاينة العامة) منذ إضافة خدمة DNS أن تكون الشبكة الظاهرية فارغة.

  3. بيئة خدمة التطبيق مع خيار موازن التحميل الداخلي (ILB): aseinternal (DNS: aseinternal.contoso.org). بمجرد اكتمال التوزيع، قم بتحميل شهادة البطاقة البديلة لـ ILB

  4. خطة خدمة التطبيقات مع بيئة خدمة التطبيقات كموقع

  5. تطبيق API (App Service للتبسيط) - srasprest (URL: https://srasprest.contoso.org) - ASP.NET Model-View-Controller (MVC) المستند إلى واجهة برمجة تطبيقات الويب. بعد التوزيع، قم بتكوين:

    • تطبيق ويب لاستخدام شهادة TLS
    • Application Insights للتطبيقات السابقة: api-insights
    • إنشاء خدمة Azure Cosmos DB لواجهات برمجة تطبيقات الويب المستضافة داخليا إلى الشبكة الظاهرية: noderestapidb
    • إنشاء إدخالات DNS في منطقة Azure Private DNS التي تم إنشاؤها
    • يمكنك الاستفادة من Azure Pipelines لتكوين العوامل على الأجهزة الظاهرية لنشر التعليمات البرمجية لتطبيق الويب على الشبكة الداخلية
    • لاختبار تطبيق API داخليا، قم بإنشاء اختبار VM داخل الشبكة الفرعية للشبكة الظاهرية
  6. إنشاء خدمة APIM: apim-internal

  7. تكوين الخدمة للاتصال بالشبكة الظاهرية الداخلية على الشبكة الفرعية: apimsubnet. بعد اكتمال النشر، قم بتنفيذ الخطوات الإضافية التالية:

    • تكوين المجالات المخصصة لخدمات APIM باستخدام TLS
      • مدخل API (api.contoso.org)
      • مدخل التطوير (portal.contoso.org)
      • في قسم واجهات برمجة التطبيقات، قم بتكوين App Service Environment Apps باستخدام اسم DNS لبيئة خدمة التطبيقات المضافة Policy لعنوان HOST لتطبيق الويب
      • استخدم الجهاز الظاهري للاختبار الذي تم إنشاؤه مسبقا لاختبار خدمة APIM الداخلية على الشبكة الظاهرية

    إشعار

    لن يعمل اختبار واجهات برمجة تطبيقات APIM من مدخل Microsoft Azure، لأنه api.contoso.org غير قادر على حلها بشكل عام.*

  8. تكوين بوابة التطبيق للوصول إلى خدمة API: apim-gateway على المنفذ 80. أضف شهادات TLS إلى بوابة التطبيق وفحوصات السلامة المقابلة وإعدادات HTTP. قم أيضا بتكوين القواعد والمستمعين لاستخدام شهادة TLS.

بمجرد اكتمال الخطوات السابقة بنجاح، قم بتكوين إدخالات DNS في إدخالات CNAME لجهة تسجيل الويب ل api.contoso.org ومع portal.contoso.org اسم DNS العام لبوابة التطبيق: ase-appgtwy.westus.cloudapp.azure.com. تحقق من قدرتك على الوصول إلى مدخل التطوير من Public وأنك قادر على اختبار واجهات برمجة تطبيقات خدمات APIM باستخدام مدخل Microsoft Azure.

إشعار

ليس من الممارسات الجيدة استخدام نفس عنوان URL لنقاط النهاية الداخلية والخارجية لخدمات APIM.

المساهمون

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

الكاتب الرئيسي:

مساهمون آخرون:

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

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

ترحيل تطبيق ويب باستخدام إدارة واجهة برمجة تطبيقات Azure