ما قوالب ARM؟

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

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

لتنفيذ البنية الأساسية كرمز لحلول Azure، استخدم قوالب إدارة الموارد Azure (قوالب ARM). القالب عبارة عن ملف JavaScript Object Notation (JSON) يحدد البنية التحتية والتكوين لمشروعك. يستخدم القالب بناء الجملة التعريفي، والذي يتيح لك تحديد ما تنوي توزيعه دون الحاجة إلى كتابة تسلسل أوامر البرمجة لإنشائها. في القالب، يمكنك تحديد الموارد للتوزيع والخصائص الخاصة بهذه الموارد.

تلميح

لقد قدمنا ​​لغة جديدة تسمى Bicep تقدم نفس الإمكانات مثل قوالب ARM ولكن مع بناء جملة يسهل استخدامها. يتم تحويل كل ملف Bicep تلقائياً إلى قالب ARM أثناء التوزيع. إذا كنت تفكر في البنية الأساسية كخيارات للتعليمات البرمجية، فإننا نوصي بالنظر إلى Bicep. لمزيد من المعلومات، اطلع على ما هو Bicep؟.

للتعرف على كيفية البدء باستخدام قوالب ARM، راجع الفيديو التالي.

لماذا تختار قوالب ARM؟

إذا كنت تحاول أن تقرر بين استخدام قوالب ARM وإحدى البنى التحتية الأخرى كخدمات شفرة، ففكر في المزايا التالية لاستخدام القوالب:

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

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

  • التزامن: لا داعي للقلق بشأن تعقيدات ترتيب العمليات. تنظم Resource Manager في توزيع موارد مترابطة بحيث يتم إنشاؤها بالترتيب الصحيح. عندما يكون ذلك ممكناً، يقوم Resource Manager بنشر الموارد بالتوازي بحيث تنتهي عمليات التوزيع أسرع من عمليات النشر التسلسلية. توزيع القالب من خلال أمر واحد بدلاً من أوامر حتمية متعددة.

    رسم تخطيطي يوضح الفرق بين النشر الإلزامي والتوضيحي.

  • وحدات الملفات: يمكنك تقسيم القوالب الخاصة بك إلى مكونات أصغر وقابلة لإعادة الاستخدام وربطها معاً في وقت التوزيع. يمكنك أيضاً تضمين قالب داخل قالب آخر.

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

  • القابلية للتوسعة: مع برامج نصية للتوزيع، يمكنك إضافة البرامج النصية PowerShell أو Bash إلى القوالب الخاصة بك. برامج التوزيع النصية توسّع قدرتك على إعداد الموارد أثناء التوزيع. يمكن تضمين برنامج نصي في القالب، أو تخزينه في مصدر خارجي والمشار إليه في القالب. تمنحك برامج النشر النصية القدرة على إكمال إعداد البيئة من طرف إلى طرف في قالب ARM واحد.

  • الاختبار: يمكنك التأكد من أن القالب يتبع الإرشادات الموصى بها من خلال اختباره باستخدام مجموعة أدوات قالب ARM (arm-ttk). مجموعة الاختبار هذه هي برنامج PowerShell النصي الذي يمكنك تنزيله من GitHub. تسهل مجموعة الأدوات تطوير الخبرة باستخدام لغة القالب.

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

  • التحقق من الصحة المضمن: يتم توزيع القالب الخاص بك فقط بعد تمرير التحقق من الصحة. يقوم مدير الموارد بفحص القالب قبل بدء التوزيع للتأكد من نجاح عملية التوزيع. توزيعك هو أقل احتمالاً لإيقاف في حالة نصف النهائي.

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

    لقطة شاشة لمدخل Microsoft Azure تعرض محفوظات النشر.

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

  • مخططات التوزيع: يمكنك الاستفادة من المخططات التي تقدمها Microsoft لتلبية المعايير التنظيمية ومعايير الامتثال. تتضمن هذه المخططات قوالب تم بناؤها مسبقاً لمختلف البنى.

  • دمج CI / CD: يمكنك دمج القوالب في أدوات التكامل المستمر الخاص بك والتوزيع المستمر (CI / CD) حيث يمكن أتمتة مسارات الإصدار للحصول على تطبيق وتحديثات سريعة وموثوق بها للبنية التحتية. باستخدام Azure DevOps ومهمة قالب إدارة الموارد، يمكنك استخدام مسارات Azure لإنشاء وتوزيع مشاريع قالب ARM بشكل مستمر. لمعرفة المزيد، راجع VS project مع المسارات والبرنامج التعليمي: التكامل المستمر لقوالب إدارة الموارد Azure مع مسارات Azure.

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

  • أدوات التأليف: يمكنك تأليف قوالب مع Visual Studio كود وامتداد أداة القالب. يمكنك الحصول على intellisense، وتسليط الضوء على بناء الجملة، في الخط مساعدة، والعديد من وظائف اللغة الأخرى. بالإضافة إلى رمز Visual Studio، يمكنك أيضاً استخدام Visual Studio.

ملف قالب

داخل القالب الخاص بك، يمكنك كتابة تعبيرات القالب التي توسع قدرات JSON. تستخدم هذه التعبيرات الدالات التي يوفرها إدارة الموارد.

يتضمن النموذج الأقسام التالية:

عملية توزيع القالب

عند توزيع قالب، تحول إدارة الموارد القالب إلى عمليات REST API. على سبيل المثال، عندما تتلقى "إدارة الموارد" قالب بتعريف المورد التالي:

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2022-09-01",
    "name": "mystorageaccount",
    "location": "centralus",
    "sku": {
      "name": "Standard_LRS"
    },
    "kind": "StorageV2"
  },
]

يقوم بتحويل التعريف إلى عملية API REST التالية، التي يتم إرسالها إلى موفر موارد Microsoft.Storage:

PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/mystorageaccount?api-version=2022-09-01
REQUEST BODY
{
  "location": "centralus",
  "sku": {
    "name": "Standard_LRS"
  },
  "kind": "StorageV2",
  "properties": {}
}

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

لنشر قالب، استخدم أياً من الخيارات التالية:

تصميم القالب

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

رسم تخطيطي يوضح توزيع تطبيق ثلاثي المستويات باستخدام قالب واحد.

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

رسم تخطيطي يوضح توزيع تطبيق من ثلاثة مستويات باستخدام قوالب متداخلة.

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

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

للحصول على معلومات حول القوالب المتداخلة، راجع استخدام قوالب مرتبطة مع إدارة موارد Azure.

مشاركة القوالب

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

يعني هذا النهج أنه يمكنك مشاركة القوالب التي تفي بمعايير مؤسستك بأمان.

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