أساسيات Microsoft Azure
أساسيات Microsoft Azure
قبل أن تنشر أي مورد واحد في Azure، يجب أن تفهم كيف تنظّم المنصة كل شيء من حولك. هذا الفهم ليس اختياريًا — إذ إن سوء فهم التسلسل الهرمي هو السبب الجذري لتجاوز التكاليف، وحوادث RBAC، وإخفاقات الامتثال على نطاق واسع. في هذا الدرس ستبني النموذج الذهني الذي يستخدمه مهندسو Azure في كل حِمل عمل سحابي رئيسي.
التسلسل الهرمي في Azure
يهيكل Azure التأجير من خلال أربعة مستويات متداخلة: Management Groups ← Subscriptions ← Resource Groups ← Resources. كل كائن تنشئه يقع في الجزء السفلي من هذه الشجرة، وكل سياسة أو تعيين RBAC تربطه بأي مستوى يتتالى تلقائيًا نحو الأسفل.
الاشتراكات: حدود الفوترة والحصص
يُعدّ الاشتراك (Subscription) الوحدة الأساسية للفوترة في Azure. كل مورد تنشئه يُحسب على اشتراك واحد بالضبط. لكن الاشتراكات ليست مجرد فواتير — فهي تحمل أيضًا حصص خدمة لكل اشتراك (مثل حدود vCPU لكل منطقة)، وجذور RBAC مستقلة، وفضاءات عناوين شبكات مستقلة.
الأحمال الإنتاجية على نطاق واسع تستخدم اشتراكات متعددة عن قصد: اشتراك لكل بيئة (إنتاج، تجهيز، تطوير)، أو اشتراك لكل وحدة عمل، أو اشتراك لكل نطاق هبوط. هذا يُبقي نطاق الضرر صغيرًا — فتعيين RBAC خاطئ في اشتراك التطوير لا يمكنه لمس موارد الإنتاج في اشتراك مختلف.
مجموعات الموارد: وحدات دورة الحياة، لا مجرد مجلدات
مجموعة الموارد (Resource Group) هي حاوية داخل الاشتراك. الفكرة الجوهرية هي أن مجموعة الموارد تمثل حدود دورة الحياة: عند حذف مجموعة موارد، تُحذف جميع الموارد الموجودة فيها بشكل ذري. هذه الحقيقة الواحدة هي ما يحدد اصطلاح التسمية والتجميع المستخدم في الإنتاج:
- جمّع حسب دورة حياة التطبيق، لا حسب نوع المورد. ضع VM وكرت الشبكة الخاص به وNSG وقرص المحادثة ومساحة عمل Log Analytics في نفس مجموعة الموارد — فجميعها تُنشر وتُدمر معًا.
- لا تجمّع حسب النوع (مثل "جميع حسابات التخزين في مجموعة واحدة"). هذا يجعل الحذف وتحديد التكلفة و RBAC مؤلمة.
- لمجموعات الموارد منطقة بيانات وصفية (حيث يُخزَّن سجل المجموعة)، لكن الموارد بداخلها يمكن أن تمتد عبر أي منطقة Azure.
اصطلاح التسمية المستخدم على نطاق المؤسسات: rg-{workload}-{environment}-{short-region}، مثلًا rg-payments-prod-eus (East US) أو rg-payments-prod-weu (West Europe).
az resource move --validate-only قبل الترحيل المباشر، وإلا فإنك تخاطر بإطلاق دورة حذف وإعادة إنشاء مع توقف.
ARM: مدير موارد Azure
Azure Resource Manager (ARM) هو مستوى التحكم لكل عملية Azure. سواء نقرت في بوابة Azure، أو شغّلت az CLI، أو استدعيت REST API مباشرةً، أو نشرت Bicep / Terraform — كل طلب يتم مصادقته عبر Azure Active Directory ويُوجَّه بواسطة ARM إلى مزود الموارد المناسب (مثل Microsoft.Compute أو Microsoft.Network). يوفر ARM:
- نشر إعلاني ملتزم بالتطابق (Idempotent) — تصف قوالب ARM (JSON) أو Bicep الحالة المطلوبة؛ يحسب ARM الفرق ويطبق فقط ما تغيّر.
- تطبيق RBAC — يُفوَّض كل إجراء على مستوى ARM قبل أن يصل إلى مزود الموارد. لا يوجد تجاوز ممكن عبر البوابة.
- وسوم (Tags) — وسوم مفتاح/قيمة اعتباطية على أي مورد لتحديد التكلفة ومشغّلات الأتمتة وفحص الامتثال.
- أقفال (Locks) — أقفال
ReadOnlyأوCanNotDeleteتُطبَّق على مستوى مجموعة الموارد أو المورد الفردي لمنع التغييرات العرضية على البنية التحتية الإنتاجية.
قوالب ARM وBicep: البنية التحتية كتعليمات برمجية
يقبل ARM قوالب JSON بشكل أصلي، لكن Bicep هي اللغة الحديثة من الدرجة الأولى لـ Azure IaC. تترجم Bicep إلى ARM JSON ولديها تعادل كامل مع ARM API. كما يستهدف Terraform ARM عبر مزود azurerm — تستخدم معظم الفرق الكبيرة Terraform للتنقلية عبر السحب، بينما تستخدم المتاجر الأصلية لـ Azure Bicep للتكامل الأوثق مع Azure DevOps و GitHub Actions.
مثال Bicep بسيط ينشئ حساب تخزين داخل مجموعة موارد موجودة:
RBAC ونموذج تفويض ARM
يُمنح كل مدير أمان (مستخدم، مجموعة، كيان خدمة، هوية مُدارة) دورًا على نطاق. يمكن أن يكون النطاق مجموعة إدارة أو اشتراكًا أو مجموعة موارد أو موردًا فرديًا. تنتقل الأدوار الممنوحة على نطاق أعلى إلى جميع العناصر الفرعية. الأدوار الثلاثة المضمّنة الأكثر استخدامًا:
- Owner — تحكم كامل بما في ذلك تعيين RBAC. احتفظ به لأصحاب الاشتراكات فقط.
- Contributor — إنشاء الموارد وإدارتها دون القدرة على تعيين الأدوار. استخدمه لكيانات خدمة CI/CD.
- Reader — عرض للقراءة فقط. استخدمه للمهندسين المناوبين الذين لا يحتاجون إلى إجراء تغييرات.
المناطق ومناطق التوفر والنموذج المادي
كل منطقة (Region) في Azure (مثل eastus أو westeurope) هي مجموعة من مراكز البيانات ضمن حدود زمن استجابة محددة. المناطق التي تدعم مناطق التوفر (Availability Zones) لديها ثلاثة مراكز بيانات أو أكثر منفصلة فيزيائيًا بطاقة ومبردات وشبكات مستقلة — تتيح النشرات المنطقية الصمود أمام فقدان مركز بيانات واحد بلا فقدان بيانات وتوقف يكاد يكون صفرًا. انشر دائمًا أحمال العمل الإنتاجية عبر منطقتَي توفر على الأقل. تتيح أزواج المناطق (مثل East US / West US) التكرار الجغرافي للتعافي من الكوارث.
نوع مورد ARM الخاص بـ Microsoft.Resources/resourceGroups عالمي — ليس مرتبطًا بمنطقة توفر. الموارد داخل المجموعة هي ما تعيّنه على المناطق. عند إنشاء مجموعة AKS أو VM Scale Set أو قرص مُدار، حدد المناطق دائمًا بشكل صريح.