ما هو Azure Resource Manager؟

مكتمل

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

في هذه الوحدة، ستتعرف إلى Resource Manager ونوعين من قوالب Resource Manager.

ما هو Azure Resource Manager؟

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

المصطلحات

عندما تبدأ رحلتك مع السحابة باستخدام Resource Manager، من المهم فهم بعض المصطلحات والمفاهيم:

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

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

    ملاحظة

    لا يجري تضمين عدد قليل من الموارد في مجموعات الموارد. هذه الأنواع من الموارد لأغراض محددة مثل إدارة التحكم في الوصول وفرض النُهج. سوف تتعلم المزيد عن هذه الموارد في وحدة لاحقة.

  • الاشتراك: حاوية منطقية و حد الفوترة لمواردك ومجموعات مواردك. ترتبط جميع مجموعات موارد وموارد Azure باشتراك واحد فقط.

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

  • قالب Azure Resource Manager (قالب ARM): ملف قالب يحدد موردًا واحدًا أو أكثر لتوزيعه إلى مجموعة موارد أو اشتراك أو مجموعة إدارة أو مستأجر. يمكنك استخدام القالب لتوزيع الموارد بطريقة متسقة وقابلة للتكرار. يوجد نوعان من ملفات قالب ARM: JSON وBicep. تركز هذه الوحدة على نوع Bicep من قالب ARM.

المزايا

يزود Resource Manager العديد من الميزات والقدرات المتعلقة بالبنية الأساسية كتزويد موارد التعليمات البرمجية:

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

العمليات: وحدة التحكم وخطة البيانات

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

على سبيل المثال، يمكنك استخدام تشغيل وحدة التحكم لإنشاء جهاز ظاهري ولكن يمكنك استخدام تشغيل وحدة التحكم للاتصال بالجهاز الظاهري باستخدام بروتوكول سطح المكتب البعيد (RDP).

وحدة التحكم

عندما ترسل طلبًا من أيٍ من أدوات Azure أو واجهات برمجة التطبيقات أو عدد تطوير البرامج، يتلقى Resource Manager الطلب ويصادق عليه ويخوِّله. يُرسل الطلب إلى موفر موارد Azure، الذي يتخذ الإجراء المطلوب. نظرًا لأنه يجري التعامل مع جميع الطلبات من خلال واجهة برمجة التطبيقات نفسها، فإنك ترى نتائج وقدرات متسقة في جميع الأدوات المختلفة المتاحة في Azure.

تُظهر الصورة التالية الدور الذي يلعبه Resource Manager في معالجة طلبات Azure:

Diagram showing Azure Resource Manager accepting requests from all Azure clients and libraries.

تُرسل جميع طلبات تشغيل وحدة التحكم إلى عنوان ويب Resource Manager. على سبيل المثال، عملية الإنشاء أو التحديث للأجهزة الظاهرية هي وحدة التحكم. إليك عنوان ويب للطلب لهذه العملية:

PUT https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Compute/virtualMachines/{virtualMachineName}?api-version=2020-12-01

تفهم وحدة التحكم الموارد التي يجب إنشاؤها والموارد الموجودة بالفعل. يتفهم Resource Manager الفرق بين هذه الطلبات ولن تنشئ موارد متطابقة أو تحذف الموارد الموجودة، على الرغم من وجود طرق لمنع هذا السلوك.

خطة البيانات

عند بدء تشغيل خطة البيانات، تُرسل الطلبات إلى نقطة نهاية محددة في اشتراك Azure خاصتك. على سبيل المثال، تشغيل Detect Language في الخدمات المعرفية هي تشغيل خطة البيانات لأن عنوان الويب للطلب هو:

POST https://eastus.api.cognitive.microsoft.com/text/analytics/v2.0/languages

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

ما قوالب ARM؟

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

لماذا تستخدم قوالب ARM؟

هناك العديد من الفوائد لاستخدام قوالب ARM، كلٍ من JSON وBicep، لتزويد مواردك:

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

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

  • المعاينة: تتيح لك أداة what-if المتوفرة في PowerShell وAzure CLI معاينة التغييرات على بيئتك قبل نشر القالب. ستوضح هذه الأداة بالتفصيل أي عمليات إنشاء وتعديل وحذف ستُجرى من خلال قالبك.

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

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

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

  • إمكانية التوسعة: باستخدام البرامج النصية للنشر، يمكنك تشغيل البرامج النصية لـ Bash أو PowerShell من داخل قوالب ARM الخاصة بك. تؤدي هذه البرامج النصية مهامًا، مثل عمليات تشغيل خطة البيانات، عند التوزيع. من خلال القابلية للتوسعة، يمكنك استخدام قالب ARM واحد لتوزيع حل كامل.

قوالب JSON وBicep

هناك نوعان من قوالب ARM للاستخدام اليوم: قوالب JSON وقوالب Bicep. JavaScript Object Notation (JSON) هو تنسيق ملف مفتوح قياسي يمكن أن تستخدمه لغات متعددة. Bicep هي لغة جديدة خاصة بالمجال طُوِرت مؤخرًا لتأليف قوالب ARM باستخدام بناء جملة أسهل. يمكنك استخدام أيٍّ من تنسيقات القوالب لقوالب ARM وعمليات توزيع الموارد.