مشاركة عبر


استخدام DevOps وCI/CD لنشر واجهات برمجة التطبيقات

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

مع القيمة الإستراتيجية لواجهات برمجة التطبيقات في المؤسسة ، أصبح اعتماد تقنيات التكامل المستمر (CI) والنشر المستمر (CD) من جوانب مهمة في تطوير واجهة برمجة التطبيقات. تتناول هذه المقالة القرارات التي ستحتاج إلى اتخاذها لاعتماد مبادئ DevOps لإدارة واجهات برمجة التطبيقات.

تتكون API DevOps من ثلاثة أجزاء:

رسم تخطيطي يوضح تدفق API DevOps.

تتم مناقشة كل جزء من مسار API DevOps أدناه.

تعريف واجهة المستخدم

يكتب مطور واجهة برمجة التطبيقات تعريف واجهة برمجة التطبيقات من خلال توفير مواصفات وإعدادات (مثل التسجيل والتشخيص وإعدادات الواجهة الخلفية) والنهج التي سيتم تطبيقها على واجهة برمجة التطبيقات. يوفر تعريف واجهة برمجة التطبيقات المعلومات المطلوبة لتوفير واجهة برمجة التطبيقات على خدمة Azure API Management. قد تستند المواصفات إلى مواصفات واجهة برمجة التطبيقات المستندة إلى المعايير (مثل WSDL أو OpenAPI أو GraphQL)، أو قد يتم تعريفها باستخدام واجهات برمجة تطبيقات Azure Resource Manager (ARM) (على سبيل المثال، قالب ARM يصف واجهة برمجة التطبيقات والعمليات). سيتغير تعريف واجهة برمجة التطبيقات بمرور الوقت ويجب اعتباره "شفرة المصدر". تأكد من تخزين تعريف واجهة برمجة التطبيقات تحت التحكم في شفرة المصدر وإجراء مراجعة مناسبة قبل اعتماده.

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

  • توفر مجموعة أدوات Azure APIOps سير عمل مبنيًا فوق نظام التحكم في التعليمات البرمجية المصدر git (مثل GitHub أو مستودعات Azure). يستخدم مستخرج لإنتاج تعريف واجهة برمجة التطبيقات الذي يتم تطبيقه بعد ذلك على خدمة إدارة واجهة برمجة التطبيقات المستهدفة بواسطة الناشر. يدعم APIOps واجهات برمجة تطبيقات REST وGraphQL في هذا الوقت.
  • تحول أداة dotnet-apim تعريف YAML جيد التكوين إلى قالب ARM للتوزيع لاحقًا. تركز الأداة على واجهات برمجة تطبيقات REST.
  • Terraform هو بديل لـ Azure Resource Manager لتكوين الموارد في Azure. يمكنك إنشاء تكوين Terraform (جنبًا إلى جنب مع النهج) لتنفيذ واجهة برمجة التطبيقات بنفس الطريقة التي يتم بها إنشاء قالب ARM.

يمكنك أيضًا استخدام الأدوات المستندة إلى IDE للمحررين مثل Visual Studio Code لإنتاج البيانات الاصطناعية اللازمة لتعريف واجهة برمجة التطبيقات. على سبيل المثال ، هناك أكثر من 90 مكونا إضافيا لتحرير ملفات مواصفات OpenAPI على Visual Studio Code Marketplace. يمكنك أيضًا استخدام مولدات التعليمات البرمجية لإنشاء البيانات الاصطناعية. تتيح لك لغة TypeSpec تحديد واجهات برمجة تطبيقات وأشكال الخدمة السحابية وهي قابلة للتوسيع بدرجة كبيرة، مع البديات التي يمكنها وصف أشكال واجهة برمجة التطبيقات الشائعة بين REST وOpenAPI وgRPC والبروتوكولات الأخرى.

الموافقة على واجهة برمجة التطبيقات

بمجرد إنتاج تعريف واجهة برمجة التطبيقات، يرسل مطور البرامج تعريف واجهة برمجة التطبيقات للمراجعة والموافقة عليه. إذا كنت تستخدم نظام التحكم في التعليمات البرمجية المصدر المستند إلى git (مثل GitHub أو Azure Repos)، يمكن للمطور الإرسال عبر طلب السحب. يبلغ طلب السحب الآخرين بالتغييرات التي تم اقتراحها على تعريف واجهة برمجة التطبيقات. بمجرد تأكيد بوابات الموافقة، يقوم المعتمد بدمج طلب السحب في المستودع الرئيسي للإشارة إلى أنه يمكن نشر تعريف واجهة برمجة التطبيقات للإنتاج. تمكن عملية طلب السحب المطور من معالجة أي مشكلات تم العثور عليها أثناء عملية الموافقة.

يسمح لك كل من GitHub وAzure Repos بتكوين مسارات الموافقة التي يتم تشغيلها عند إرسال طلب سحب. يمكنك تكوين مسارات الموافقة لتشغيل أدوات مثل:

  • أداة تحليل مواصفات واجهة برمجة التطبيقات مثل Spectral للتأكد من أن التعريف يفي بمعايير واجهة برمجة التطبيقات التي تتطلبها المؤسسة.
  • مقاطعة الكشف عن التغيير باستخدام أدوات مثل openapi-diff.
  • أدوات التدقيق والتقييم الأمنية. يحتفظ OWASP بقائمة من الأدوات لفحص الأمان.
  • أطر عمل اختبار واجهة برمجة التطبيقات التلقائية.

إشعار

يجب أن تتوافق واجهات برمجة تطبيقات Azure مع مجموعة صارمة من الإرشادات التي يمكنك استخدامها كنقطة بداية لإرشادات واجهة برمجة التطبيقات الخاصة بك. هناك تكوين Spectral لفرض الإرشادات.

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

منشور واجهة برمجة التطبيقات

يتم نشر تعريف واجهة برمجة التطبيقات إلى خدمة إدارة واجهة برمجة التطبيقات من خلال مسار الإصدار. تعتمد الأدوات المستخدمة لنشر تعريف واجهة برمجة التطبيقات على الأداة المستخدمة لإنتاج تعريف واجهة برمجة التطبيقات:

  • إذا كنت تستخدم مجموعة أدوات Azure APIOps، فإن مجموعة الأدوات تتضمن ناشرا يكتب تعريف واجهة برمجة التطبيقات إلى الخدمة الهدف.
  • إذا كنت تستخدم dotnet-apim، يتم تمثيل تعريف واجهة برمجة التطبيقات كقالب ARM. تتوفر المهام لـ Azure Pipelines وGitHub Actions لتوزيع قالب ARM.
  • في حالة استخدام Terraform، تقوم أدوات CLI بنشر تعريف واجهة برمجة التطبيقات على خدمتك. هناك مهام متوفرة ل Azure Pipelines وGitHub Actions.

هل يمكنني استخدام التحكم في شفرة المصدر وأنظمة CI / CD الأخرى؟

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

أفضل الممارسات

لا يوجد معيار صناعي لإعداد مسار DevOps لنشر واجهات برمجة التطبيقات، ولن تعمل أي من الأدوات المذكورة في جميع الحالات. ومع ذلك، يتم تغطية معظم المواقف باستخدام مجموعة من الأدوات والخدمات التالية:

  • يخزن Azure Repos تعريفات واجهة برمجة التطبيقات في مستودع git.
  • تقوم Azure Pipelines بتشغيل الموافقة التلقائية على واجهة برمجة التطبيقات وعمليات نشر واجهة برمجة التطبيقات.
  • توفر مجموعة أدوات Azure APIOps أدوات ومهام سير عمل لنشر واجهات برمجة التطبيقات.

لقد شهدنا أكبر نجاح في عمليات نشر العملاء باستخدام الممارسات التالية:

  • إعداد إما GitHub أو Azure Repos لنظام التحكم في التعليمات البرمجية المصدر. يحدد هذا الاختيار اختيارك لعداء خط الأنابيب أيضا. يمكن لـ GitHub استخدام Azure Pipelines أو GitHub Actions، بينما يجب أن يستخدم Azure Repos Azure Pipelines.
  • أعد خدمة Azure API Management لكل مطور واجهة برمجة تطبيقات حتى يتمكنوا من تطوير تعريفات واجهة برمجة التطبيقات جنبا إلى جنب مع خدمة واجهة برمجة التطبيقات. استخدم الاستهلاك أو SKU المطور عند إنشاء الخدمة.
  • استخدم أجزاء النهج لتقليل النهج الجديد الذي يحتاج المطورون إلى كتابته لكل واجهة برمجة تطبيقات.
  • استخدم القيم والخلفيات المسماة للتأكد من أن النهج عامة ويمكن تطبيقها على أي مثيل APIM.
  • استخدم مجموعة أدوات Azure APIOps لاستخراج تعريف واجهة برمجة تطبيقات عامل من خدمة المطور.
  • أعد عملية الموافقة على واجهة برمجة التطبيقات التي تعمل على كل طلب سحب. يجب أن تتضمن عملية الموافقة على واجهة برمجة التطبيقات مقاطعة الكشف عن التغيير، والتحليل، واختبار واجهة برمجة التطبيقات التلقائي.
  • استخدم ناشر مجموعة أدوات Azure APIOps لنشر واجهة برمجة التطبيقات إلى خدمة APIM.

راجع عمليات توزيع واجهة برمجة التطبيقات التلقائية باستخدام APIOps في مركز هندسة Azure للحصول على مزيد من التفاصيل حول كيفية تكوين وتشغيل مسار توزيع CI/CD باستخدام APIOps.

المراجع