سير عمل تصميم جهاز Azure الظاهري الكلاسيكي

هام

تم الآن إهمال Cloud Services (كلاسيكي) للعملاء الجدد وسيتم استبعادها في 31 أغسطس 2024 لجميع العملاء. ينبغي أن تستخدم عمليات النشر الجديدة نموذج النشر الجديد القائم على Azure Resource Manager ‏‏Azure Cloud Services (الدعم الموسع) .

توفر هذه المقالة نظرة عامة حول عمليات سير العمل التي تحدث عند نشر أو تحديث مورد Azure مثل الجهاز الظاهري.

ملاحظة

لدى Azure نموذجان للنشر لإنشاء الموارد والعمل معها: Resource Manager والكلاسيكي. تتناول هذه المقالة استخدام نموذج النشر الكلاسيكي.

يوضح الرسم التخطيطي التالي تصميم موارد Azure.

<alt الصورة حول سير عمل Azure>

أساسيات سير العمل

A. RDFE / FFE هو مسار الاتصال من المستخدم إلى البنية. RDFE (RedDog Front End) هي واجهة برمجة التطبيقات المعروضة للجمهور وهي الواجهة الأمامية لمدخل الإدارة وواجهة برمجة تطبيقات إدارة الخدمة مثل Visual Studio وAzure MMC وغيرها. تمر جميع الطلبات من المستخدم من خلال RDFE. FFE (Fabric Front End) هي الطبقة التي تترجم الطلبات من RDFE إلى أوامر في البنية. تمر جميع الطلبات من RDFE عبر FFE للوصول إلى وحدات التحكم في البنية.

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

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

ج2. يعد WaAppAgent مسؤولاً عن تثبيت WindowsAzureGuestAgent.exe وتكوينه وتحديثه.

د. WindowsAzureGuestAgent مسؤول عما يلي:

  1. تكوين نظام تشغيل الضيف بما في ذلك جدار الحماية وقوائم التحكم بالوصول وموارد LocalStorage وحزمة الخدمة والتكوين والشهادات.
  2. إعداد معرّف الأمان لحساب المستخدم الذي سيتم تشغيل الدور ضمنه.
  3. إيصال حالة الدور إلى البنية.
  4. بدء تشغيل WaHostBootstrapper ومراقبته للتأكد من أن الدور في حالة الهدف.

هـ. WaHostBootstrapper مسؤول عن:

  1. قراءة تكوين الدور، وبدء جميع المهام والعمليات المناسبة لتكوين الدور وتشغيله.
  2. مراقبة جميع عملياتها الخاصة بالعنصر التابع.
  3. رفع حدث StatusCheck في عملية دور المضيف.

و. يتم تشغيل IISConfigurator إذا تم تكوين الدور باعتباره دور IIS Web الكامل. وهو مسؤول عن:

  1. بدء IIS القياسية
  2. تكوين وحدة إعادة الكتابة في تكوين الويب
  3. إعداد AppPool للدور الذي تم تكوينه في نموذج الخدمة
  4. إعداد تسجيل IIS للإشارة إلى مجلد DiagnosticStore LocalStorage
  5. تكوين الأذونات وقوائم التحكم بالوصول
  6. موقع الويب موجود في %roleroot%:\sitesroot\0، ويشير AppPool إلى هذا الموقع لتشغيل IIS.

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

ح. تُعد هذه المهام جزءاً من SDK ويتم تعريفها على أنها إضافات في تعريف خدمة الدور (.csdef). عند التوسع في مهام بدء التشغيل، يكون كل من DiagnosticsAgent وRemoteAccessAgent فريداً من حيث إنهما يعرّفان مهمتين لبدء التشغيل، إحداهما عادية والأخرى تتضمن المعلمة /blockStartup. يتم تعريف مهمة بدء التشغيل العادية على أنها مهمة بدء تشغيل في الخلفية حتى يمكن تشغيلها في الخلفية أثناء تشغيل الدور نفسه. تم تحديد مهمة بدء التشغيل /blockStartup على أنها مهمة بدء تشغيل بسيطة بحيث ينتظر WaHostBootstrapper حتى الخروج قبل المتابعة. تنتظر المهمة /blockStartup حتى تنتهي المهمة العادية من التكوين، ثم تخرج وتتيح لنظام تمهيد تشغيل الكمبيوتر التابع للمضيف بالمتابعة. يتم ذلك بحيث يمكن تكوين التشخيصات والوصول إلى RDP قبل بدء عمليات الدور (يتم ذلك من خلال المهمة /blockStartup). يسمح هذا أيضاً للتشخيصات ووصول RDP بالاستمرار في العمل بعد أن ينتهي نظام تمهيد تشغيل الكمبيوتر التابع للمضيف من مهام بدء التشغيل (يتم ذلك من خلال المهمة العادية).

ط. WaWorkerHost هي عملية المضيف القياسية لأدوار العامل العادية. تستضيف عملية المضيف هذه جميع مكتبات DLL للدور ورمز نقطة الإدخال، مثل OnStart وRun.

ي. WaIISHost هي عملية المضيف لرمز نقطة إدخال الدور لأدوار الويب التي تستخدم IIS الكاملة. تعمل هذه العملية على تحميل مكتبة الارتباطات الديناميكية الأولى التي تم العثور عليها والتي تستخدم الفئة RoleEntryPoint وتنفذ التعليمات البرمجية من هذه الفئة (OnStart وRun وOnStop). تظهر أي أحداث RoleEnvironment (مثل StatusCheck وChanged) التي تم إنشاؤها في فئة RoleEntryPoint في هذه العملية.

ك. W3WP هي عملية عامل IIS القياسية المستخدَمة إذا تم تكوين الدور لاستخدام IIS الكاملة. يؤدي هذا إلى تشغيل AppPool الذي تم تكوينه من IISConfigurator. تظهر أي أحداث RoleEnvironment (مثل StatusCheck وChanged) التي تم إنشاؤها هنا في هذه العملية. تجدر الإشارة إلى أن أحداث RoleEnvironment سيتم إطلاقها في كلا الموقعين (WaIISHost وw3wp.exe) إذا اشتركت في الأحداث في كلا العمليتين.

عمليات سير العمل

  1. يقدم المستخدم طلب، مثل تحميل ملفات ".cspkg" و".cscfg"، وإخبار مورد بالتوقف أو إجراء تغيير في التكوين، وما إلى ذلك. يمكن تنفيذ ذلك من خلال مدخل Microsoft Azure أو أداة تستخدم واجهة برمجة تطبيقات إدارة الخدمة، مثل ميزة نشر Visual Studio. ينتقل هذا الطلب إلى RDFE لتنفيذ جميع الأعمال المتعلقة بالاشتراك ثم توصيل الطلب إلى FFE. تتمثل بقية خطوات سير العمل هذه في نشر حزمة جديدة وبدء تشغيلها.
  2. يجد FFE تجمع الأجهزة الصحيحة (بناءً على إدخالات العميل، مثل مجموعة الترابط أو الموقع الجغرافي بالإضافة إلى الإدخالات من البنية، مثل توفر الأجهزة) ويتواصل مع وحدة التحكم الرئيسية للبنية في تجمع الجهاز هذا.
  3. تبحث وحدة التحكم في البنية عن مضيف يتضمن ذاكرات معالج أساسية (أو يدير مضيفاً جديداً). يتم نسخ حزمة الخدمة والتكوين إلى المضيف، وتتواصل وحدة التحكم في البنية مع عامل المضيف على نظام تشغيل المضيف لنشر الحزمة (تكوين وحدات DIP، والمنافذ، ونظام تشغيل الضيف، وما إلى ذلك).
  4. يبدأ عامل المضيف نظام تشغيل الضيف ويتصل مع عامل الضيف (WindowsAzureGuestAgent). يرسل المضيف رسالة كشف أخطاء الاتصال إلى الضيف للتأكد من أن الدور يعمل نحو حالة الهدف.
  5. يعمل WindowsAzureGuestAgent على إعداد نظام تشغيل الضيف (جدار الحماية، وقوائم التحكم بالوصول، وLocalStorage، وما إلى ذلك)، ونسخ ملف تكوين XML جديد إلى c:\Config، ثم يبدأ عملية WaHostBootstrapper.
  6. بالنسبة إلى أدوار IIS Web الكاملة، يعمل WaHostBootstrapper على تشغيل IISConfigurator ويخبره بحذف أي AppPools موجودة لدور الويب من IIS.
  7. يقرأ WaHostBootstrapper مهام بدء التشغيل من E:\RoleModel.xml ويبدأ في تنفيذ مهام بدء التشغيل. ينتظر WaHostBootstrapper حتى تنتهي جميع مهام بدء التشغيل البسيطة ويُظهر رسالة "نجاح".
  8. بالنسبة إلى أدوار IIS Web الكاملة، يخبر WaHostBootstrapper IISConfigurator بتكوين خدمات معلومات الإنترنت AppPool وتوجيه الموقع إلى E:\Sitesroot\<index>، حيث <index> هو فهرس صفري في عدد <Sites> العناصر المحددة للخدمة.
  9. سيبدأ WaHostBootstrapper عملية المضيف بناءً على نوع الدور:
    1. دور العامل: يبدأ تشغيل WaWorkerHost.exe. ينفذ WaHostBootstrapper أسلوب OnStart (). بعد ظهوره، يبدأ WaHostBootstrapper في تنفيذ أسلوب Run()، ثم يحدد الدور في الوقت نفسه على أنه جاهز ويُدخِله في دوران موازنة التحميل (في حالة تحديد InputEndpoints). ثم يذهب WaHostBootsrapper في تكرار حلقي للتحقق من حالة الدور.
    2. دور IIS Web الكامل: يبدأ تشغيل aIISHost. ينفذ WaHostBootstrapper أسلوب OnStart (). بعد ظهوره، يبدأ في تنفيذ أسلوب Run()، ثم يميز في نفس الوقت الدور على أنه جاهز ويضعه في دوران موازنة التحميل. ثم يذهب WaHostBootsrapper في تكرار حلقي للتحقق من حالة الدور.
  10. تشغّل طلبات الويب الواردة إلى دور IIS Web الكامل IIS لبدء عملية W3WP وخدمة الطلب، نفسه كما هو الحال في بيئة IIS محلية.

موقع ملف السجل

WindowsAzureGuestAgent

  • C:\Logs\AppAgentRuntime.Log.
    يحتوي هذا السجل على تغييرات على الخدمة بما في ذلك عمليات البدء والتوقف والتكوينات الجديدة. إذا لم تتغير الخدمة، يمكنك توقع رؤية فجوات كبيرة من الوقت في ملف السجل هذا.
  • C:\Logs\WaAppAgent.Log.
    يتضمن هذا السجل على تحديثات الحالة وإخطارات رسائل كشف أخطاء الاتصال ويتم تحديثه كل 2-3 ثوانٍ. يتضمن هذا السجل طريقة عرض تاريخية لحالة المثيل وسيخبرك عندما لا يكون المثيل في حالة الاستعداد.

WaHostBootstrapper

C:\Resources\Directory\<deploymentID>.<role>.DiagnosticStore\WaHostBootstrapper.log

WaIISHost

C:\Resources\Directory\<deploymentID>.<role>\WaIISHost.log

IISConfigurator

C:\Resources\Directory\<deploymentID>.<role>\IISConfigurator.log

سجلات IIS

C:\Resources\Directory\<guid>.<role>.DiagnosticStore\LogFiles\W3SVC1

سجلات أحداث Windows

D:\Windows\System32\Winevt\Logs