مشاركة عبر


ما قوالب ARM؟

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

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

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

تلميح

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

لماذا تختار قوالب 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. تسهل مجموعة الأدوات تطوير الخبرة باستخدام لغة القالب.

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

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

  • عمليات التوزيع المتعقبة: في مدخل 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"
  },
]

يقوم بتحويل التعريف إلى عملية REST API التالية، والتي يرسلها إلى موفر موارد 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.

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