شراء حساب Microsoft Cloud: يعلمك كيفية استخدام Azure VMSS لتحقيق التوسع المرن في التطبيقات
في البرنامج التعليمي الأخير ، نجحنا في نشر أول جهاز افتراضي في Azure. ولكن في الواقع ، إذا واجه موقع الويب الخاص بك فجأة ضربة مرورية من نوع "Double Eleven" ، فقد يصاب جهاز افتراضي واحد بالشلل على الفور ؛ وفي وقت متأخر من الليل ، عندما تكون حركة المرور منخفضة ، فإن ترك مجموعة من الخوادم عالية الأداء في وضع الخمول يعد مضيعة ضخمة للأموال.
في عصر السحابة الأصلية ، لا ينبغي لنا شراء الخوادم والبيئات يدويًا.
مجموعة مقياس الجهاز الظاهري Azure (VMSS)
ولد لحل نقطة الألم هذه. يمكن أن تتغير وفقا لتدفق الأعمال ،
يساعدك تلقائيًا على زيادة (شراء) أو تقليل عدد مثيلات الجهاز الظاهري
.
يأخذك هذا البرنامج التعليمي المتعمق اليوم من الصفر لبناء بنية تطبيق ويب فائقة الاستخدام مع القدرة على "التوسع التلقائي والمرن".
1. المفهوم الأساسي: ما هو VMSS والتوسع والتصغير المرن ؟
قبل القيام بذلك ، قمنا أولاً بتوضيح مفهومين متشددين باللغة العامية:
مجموعة مقياس الجهاز الظاهري (VMSS): ببساطة ، إنه "قالب آلة كاتبة". تحتاج فقط إلى تكوين نظام التشغيل وبيئة البرامج لجهاز ظاهري. يمكن لـ VMSS مساعدتك في استنساخ 5 أو 50 أو حتى 500 جهاز افتراضي متطابق في غضون دقائق.
التمدد الأفقي (التمدد الأفقي) والانكماش الأفقي (التمدد الأفقي): التوسع الرأسي هو استبدال وحدة المعالجة المركزية ثنائية النواة رباعية النوى (تتطلب إعادة تشغيل ، مع حد أعلى) ؛ التوسع الأفقي هو "قوة متعددة"-لا يمكن حمل واحد ، اثنان آخران تلقائيًا. اختفت حركة المرور ، ثم ارجعها تلقائيًا. هذا هو المرونة (Elasticity).
2. تصميم العمارة الأساسية
ما نريد بناؤه ليس مجموعة مقياس عارية ، ولكن هيكل بيئة إنتاج قياسي:
[حركة المرور على الإنترنت (HTTP/80)]
│
▲
[موازن تحميل Azure]
(Load Balancer)
│
▼ ▼
[VMSS مثيل 1 ] [ VMSS مثيل 2 ] ... (زيادة أو طرح تلقائيا وفقا لوحدة المعالجة المركزية)
يصل التدفق أولاً إلى ميزان التحميل ، والذي يتم توزيعه بالتساوي على مثيلات VMSS في النهاية الخلفية. سيحدق VMSS في فقدان وحدة المعالجة المركزية لهذه الأمثلة ، وبمجرد تجاوز العتبة ، يقوم تلقائيًا بإنشطار مثيل جديد للانضمام إلى المعركة.
3. المرحلة الأولى: إنشاء وتكوين VMSS (بناء الأساس)
قم بتسجيل الدخول إلى Azure Portal ، ادخل في شريط البحث
أدخل
"مجموعة مقياس الجهاز الظاهري"
(Virtual Machine Scale Sets) ، انقر على "إنشاء".
1-المعلومات الأساسية
مجموعة الموارد: يوصى بإنشاء واحدة جديدة ، مثل MyVMSS-RG.
اسم مجموعة مقياس الجهاز الظاهري: مثل My-web-scale-set.
المنطقة: اختر المنطقة الأقرب إليك (مثل East Asia).
العمليات التجارية: اختر "Uniform". يمكن أن يضمن ذلك أن جميع الأجهزة المستنسخة متسقة تمامًا ، وهي الأنسب لتطبيقات الويب عديمة الحالة.
الصورة: هنا نأخذ Ubuntu Server 24.04 LTS كمثال (منطق تشغيل Windows هو نفسه تمامًا).
2-الحجم والمواصفات
الحجم: لا يزال يوصى بـ Standard_B1s أو Standard_B2s (التدريب الكافي وتوفير المال أولاً).
نوع التحقق: حدد "كلمة المرور" أو "مفتاح SSH". من أجل تسهيل التدريس ، نختار كلمة المرور هنا ، وننشئ اسم مستخدم (مثل azureuser) وكلمة مرور قوية.
3-تكوين الشبكة (خطوات حاسمة)
اسحب إلى قسم الشبكة وسترى خيار "موازنة التحميل".
تحقق من "استخدام موازن الحمل".
خيار موازن التحميل: حدد "موازن تحميل Azure".
اختيار موازن الحمل/جديد: اسم my-load-balancer.
اختر المسبح الخلفي/جديد: اسم pool my-backend.
💡لماذا تختار هذا ؟ بهذه الطريقة ، بغض النظر عن عدد الأجهزة الافتراضية التي تم إنشاؤها تلقائيًا بواسطة VMSS في المستقبل ، فإن Azure ستدخلها تلقائيًا في "التجمع الخلفي" ، وسيوزع موازن التحميل تلقائيًا حركة مرور وصول المستخدم ، ولا تحتاج إلى تكوين IP يدويًا.
4. المرحلة الثانية: استخدام البرامج النصية المخصصة لتحقيق "خارج الصندوق"
يساعدنا التجمع على نطاق واسع تلقائيًا في بناء الآلات ، لكن الجهاز الجديد فارغ. كيف يمكن للجهاز المستنسخ حديثًا تثبيت خدمات الويب تلقائيًا (مثل Nginx) وتشغيل تطبيقنا ؟
نحن بحاجة إلى الاستفادة
متقدم (Advanced)
في الخيارات
"ملحق البرنامج النصي المخصص (Custom Script Extension)"
.
في إنشاء صفحة
”متقدم“
في علامة التبويب ، ابحث عن "Custom Data" ، وقم بنشر البرنامج النصي التالي لتهيئة Linux في مربع النص:
باش
#! # /بن/باش
# تحديث النظام وتثبيت Nginx
Apt-get update -y
Apt-get install nginx -y
# إطلاق خدمة Nginx
Systemctl start nginx
Sys
Temctl enable nginx
# اكتب صفحة ويب لعرض اسم المضيف الحالي ديناميكيًا (حتى نتمكن من اختبار التأثير)
Echo "<h1>Hello from Azure VMSS! My Hostname is: $(hostname)</h1>" > /var/www/html/index.html
دور هذا البرنامج النصي هو:
عندما يجد VMSS حركة مرور كبيرة ويقوم تلقائيًا بإنشاء جهاز افتراضي جديد ، سيقوم هذا الجهاز الجديد تلقائيًا بتنفيذ هذا الرمز في لحظة تشغيله-تثبيت Nginx ، وبدء الخدمة ، وكتابة صفحة الويب. أتمتة غير مراقب حقا.
5. المرحلة الثالثة: تكوين استراتيجية التوسيع والانكماش المرنة التلقائية
انقر على التبديل
”مقياس (Scaling)“
علامات التبويب. هذا هو المكان الذي تكمن فيه روح البرنامج التعليمي بأكمله.
الخيار الافتراضي هو "القياس اليدوي" ، نحتاج إلى تغييره
"Custom autoscale"
.
بعد ذلك ، نحتاج إلى تكوين مجموعة صارمة من "قواعد التوسع والانكماش":
1-تحديد نطاق الأمثلة
أقل عدد من الحالات (Minimum): 1 (عندما لا يزورها أحد ، احتفظ بجهاز واحد لتوفير المال).
أعلى عدد من الحالات (Maximum): 3 (منع الشفرة من الوقوع في حلقة ميتة ، أو عند مواجهة هجوم ضار ، يؤدي تشغيل الجهاز غير المحدود إلى انفجار بطاقة الائتمان ، قم بإعداد حد أعلى لحماية المحفظة).
عدد الحالات الافتراضية (Default): 1.
2-إضافة قاعدة التوسيع (قاعدة التوسيع)
انقر فوق "إضافة قاعدة" ، نريد أن نقول النظام عند إضافة الجهاز:
مصدر القيمة المترية: الموارد الحالية (VMSS).
تجميع الوقت: متوسط القيمة.
اسم القيمة المتري: وحدة المعالجة المركزية Percentage (استخدام وحدة المعالجة المركزية).
المشغل: أكبر من.
العتبة (Metric threshold): 70 (عندما يتجاوز متوسط استخدام وحدة المعالجة المركزية 70 ٪).
المدة (الدقيقة): 5 (استمر هذا الموقف لأكثر من 5 دقائق ، مما يشير إلى أنه ليس تقلبًا عابرًا ، ولا يمكن تحمله حقًا).
العملية: زيادة عدد.
عدد الأمثلة: 1 (1 آلة إضافية في كل مرة).
وقت التبريد (دقيقة): 5 (بعد إضافة آلة ، دع الرصاصة تطير لفترة من الوقت ، راقب لمدة 5 دقائق ، لا تضيف بسرعة كبيرة).
3. إضافة قاعدة الانكماش (Scale In Rule)
إذا قمت بإرجاع القرض ، أضف قاعدة أخرى تخبر النظام متى يجب عليك إعادة الجهاز لتوفير المال:
اسم القيمة المتري: وحدة المعالجة المركزية Percentage.
المشغل: أقل من.
العتبة: 30 (عندما يكون متوسط وحدة المعالجة المركزية في الحقل بأكمله أقل من 30 ٪).
العملية: تقليل عدد.
عدد الأمثلة: 1 (آلة واحدة لكل قطع
، حتى يتم تقليله إلى الحد الأدنى 1 وحدة).
بعد اكتمال التكوين ، انقر فوق
”عرض إنشاء“
، في انتظار اكتمال النشر.
6. معجزة التحقق: كيفية اختبار التوسع والانكماش التلقائي ؟
بعد النشر ، انتقل إلى مجموعة الموارد الخاصة بك وابحث عن ذلك
موازنة التحميل (my-load-balancer)
، نسخ "عنوان IP العام للواجهة الأمامية".
زيارة عادية: أدخل هذا IP في المتصفح ، يجب أن تكون قادرا على رؤية Hello from Azure VMSS! My Hostname is: my-web-scale-set_0. تم تحديثه عدة مرات وكانت الصفحة مستقرة مثل جبل تاي.
الضرب الاصطناعي (اختبار الضغط): نحتاج إلى ملء وحدة المعالجة المركزية لهذا الجهاز يدويًا. اتصل بمثيل الجهاز الظاهري الحالي من خلال SSH ، قم بتشغيل أمر اختبار ضغط وحدة المعالجة المركزية الكلاسيكي (أو قم بتثبيت أداة stress) في الجهاز: Bash # تثبيت أداة قياس الضغط sudo apt-get stall stress -y # دع وحدة المعالجة المركزية 4 تعمل بكامل طاقتها (حتى لو كان لديك نواة واحدة فقط ، سوف تملأ أيضًا بكل قوتها) stress-cpu 4-timeout 600
3-** شاهد المعجزات: **
بالعودة إلى صفحة VMSS لبوابة Azure ، انقر على ** "Run history" ** أو ** "Instances" ** على اليسار.
بعد حوالي 5 دقائق ، ستجد أن منحنى وحدة المعالجة المركزية في الرسم البياني يرتفع بشكل حاد. بعد ذلك مباشرة ، تم تحديث مثال جديد في قائمة المثيل: "my-web-scale-set_1" ، مع حالة "قيد الإنشاء"-> "قيد التشغيل".
4-** زيارة ثانية **:
قم بتحديث عنوان IP الخاص بموازنة التحميل في متصفحك. سوف تجد أنه في حين أن ما يظهر هو 'Hostname is: . .. _ 0 '، بعد فترة أصبح 'Hostname is: . .. _ 1 '.
** هذا يدل على أن معادل التحميل قد نجح في تحويل جزء من التدفق إلى الأخ المولود حديثًا! **
5-** الخروج التلقائي: **
بعد 10 دقائق ، انتهى أمر اختبار الضغط وانخفضت وحدة المعالجة المركزية. في غضون 5-10 دقائق أخرى ، يقوم النظام بتشغيل قاعدة الانكماش ، وسيتم إيقاف تشغيل الجهاز الظاهري الذي تم بناؤه حديثًا وحذف تلقائيًا وأناقة ، وسيعود كل شيء إلى حالته الأصلية.
---
##7. ملخص ودليل الحفر
من خلال التعلم المتقدم اليوم ، قمت بفتح القدرات الأساسية للبنية السحابية الأصلية-** الشفاء الذاتي القابل للاستخدام والمرونة **. في تطبيقات بيئة الإنتاج الفعلية ، هناك نوعان من النصائح الأخرى التي يجب ملاحظتها:
* ** التصميم بدون حالة: ** آلة التوسيعة والانكماش المرنة هي "الحياة والموت". لا تفعل ذلك أبداً
قم بتضفي ملفات تحميل المستخدم وقواعد البيانات على القرص الصلب المحلي للجهاز الظاهري VMSS ، وإلا ستختفي عندما تتقلص السعة. يجب حفظ الملفات في Azure Blob Storage (تخزين الكائنات) ، ويجب حفظ البيانات في قواعد البيانات المستقلة مثل Azure SQL.
* ** تحديث المرآة: ** نحن نستخدم البرامج النصية لتركيب Nginx اليوم. إذا كان تطبيقك معقدًا ويعتمد كثيرًا ، فإن الطريقة الأفضل هي: قم بمطابقة جميع البيئة في VM عادي ، ثم قم بتعبئتها في صورة مخصصة ** ** ، دع VMSS يستنسخ مباشرة على أساس الصورة المخصصة الخاصة بك.
إذا كنت تتقن VMSS ، فلن تضطر أبدًا إلى التحديق في لوحة مرور الخادم في منتصف الليل ، ويمكنك بسهولة تسليم الاستخدام العالي إلى خوارزمية التشغيل الآلي لسحابة Microsoft!

