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

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

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

بناء الأنظمة

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

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

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

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

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

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

المكونات

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

البدائل

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

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

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

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

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

الاعتبارات

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

الموثوقيه

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

التوفر

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

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

المرونة

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

الأمان

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

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

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

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

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

يمكن للعملاء توسيع نطاق إدارة واجهات برمجة التطبيقات 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
    • Address space للشبكة الظاهرية: 10.0.0.0/16
    • أربع شبكات فرعية
      • backendSubnet لخدمة DNS: 10.0.0.0/24
      • apimsubnet لخدمة إدارة واجهة برمجة التطبيقات الداخلية: 10.0.1.0/28
      • asesubnet لـ ILB ASE: 10.0.2.0/24
      • VMSubnet لاختبار الأجهزة الظاهرية والأجهزة الظاهرية لعامل DevOps المستضاف الداخلي: 10.0.3.0/24
  2. تتطلب خدمة DNS الخاصة (المعاينة العامة) منذ إضافة خدمة DNS أن تكون الشبكة الظاهرية فارغة.

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

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

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

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

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

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

    ملاحظة

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

  8. تكوين بوابة التطبيق (WAF V1) للوصول إلى خدمة واجهة برمجة التطبيقات: apim-gateway على المنفذ 80. أضف شهادات TLS إلى بوابة التطبيق وفحوصات السلامة المقابلة وإعدادات http. قم أيضا بتكوين القواعد والمستمعين لاستخدام شهادة TLS.

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

ملاحظة

ليس من الممارسات الجيدة استخدام نفس عنوان URL لنقاط النهاية الداخلية والخارجية لخدمات APIM (على الرغم من أن كلا عنواني URL متشابهين في هذا العرض التوضيحي). إذا اخترت أن يكون لديك عناوين URL مختلفة لنقاط النهاية الداخلية والخارجية، يمكنك الاستفادة من Application Gateway WAF v2، والذي يدعم إعادة توجيه http وأكثر من ذلك بكثير.

المساهمون

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

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

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

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

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

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