ما قوالب ARM؟

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

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

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

تلميح

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

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

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

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

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

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

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": {
    "mystore": {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2023-04-01",
      "name": "mystorageaccount",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2"
    }
  }
}
  • التزامن: لا داعي للقلق بشأن تعقيدات ترتيب العمليات. تنظم Resource Manager في توزيع موارد مترابطة بحيث يتم إنشاؤها بالترتيب الصحيح. عندما يكون ذلك ممكناً، يقوم Resource Manager بنشر الموارد بالتوازي بحيث تنتهي عمليات التوزيع أسرع من عمليات النشر التسلسلية. توزيع القالب من خلال أمر واحد بدلاً من أوامر حتمية متعددة.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ملف القالب

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

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

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

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

"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 الذي قمت بتعيينه في القالب للمورد يستخدم إصدار API لعملية REST. يمكنك نشر القالب بشكل متكرر والثقة بأنه سيستمر في العمل. باستخدام نفس إصدار API، لا داعي للقلق بشأن كسر التغييرات التي قد يتم تقديمها في الإصدارات اللاحقة.

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

تصميم القالب

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

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

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

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

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

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

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

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

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

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

الحصول على الدعم

فيما يلي خطوات فتح تذكرة دعم للمشكلات المتعلقة بقالب Azure Resource Manager (ARM):

  1. افتح مدخل Azure.

  2. حدد أيقونة الدعم + استكشاف الأخطاء وإصلاحها من الزاوية العلوية اليسرى.

  3. في وصف المشكلة بإيجاز، أدخل قالب ARM، ثم حدد Go.

  4. في أي خدمة تواجه مشكلة مع؟، حدد المدخل ضمن المراقبة والإدارة، ثم حدد التالي.

  5. حدد اشتراك ثم حدد التالي.

  6. حدد مشكلة في قوالب ARM، ثم حدد التالي.

    لقطة شاشة لطلب دعم قالب ARM.

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