أساسيات الحوسبة السحابية

المناطق ومناطق الإتاحة

كيف ينظّم مزوّدو السحابة بنيتهم التحتية العالمية في Regions وAvailability Zones، ولماذا هذا التنظيم هو السبب الذي يجعل تطبيقاً سحابياً مبنياً جيداً ينجو من حريق مركز بيانات.

مبتدئ 16 دقائق 4 أهداف التعلّم
  1. عرّف Region وAvailability Zone وكيف ترتبطان ببعضهما
  2. اشرح لماذا يعزل المزوّدون مناطق الإتاحة فعلياً بعضها عن بعض
  3. طبّق تكرار مناطق الإتاحة لتشرح لماذا يحسّن توزيع تطبيق عبر عدة مناطق إتاحة من إتاحته
  4. قارن كيف تسمّي AWS وAzure وGoogle Cloud مناطقها ومناطق إتاحتها

لا يوجد مركز بيانات لا يتعطل أبداً

تعرف الآن الفرق بين IaaS وPaaS وSaaS، ومن يدير كل طبقة في كل نموذج. السؤال التالي عملي أكثر: أين تعيش هذه الطبقات فعلياً، وكيف يحمي المزوّد بنيته من عطل واحد يوقف كل شيء؟ تخيل متجراً إلكترونياً يشغّل خوادمه من مبنى واحد. ينقطع التيار عن ذلك المبنى في يوم أكبر تخفيضاته السنوية، فتتوقف كل خوادمه في اللحظة نفسها. لا يهم عندها مدى جودة الكود أو حجم الزيارات التي كان يستطيع التعامل معها: المتجر متوقف حتى تُستعاد الكهرباء في ذلك المكان بالذات. يواجه مزوّدو السحابة الفيزياء نفسها التي واجهها ذلك المبنى. مركز بيانات واحد قد يحترق أو يغرق أو يفقد الطاقة، بصرف النظر عن اسم الشركة المكتوب على بابه. ما بناه المزوّدون بدلاً من ذلك هو تنظيم يمنع يوماً سيئاً في موقع واحد من أن يتحوّل إلى يوم سيئ للجميع: Regions وAvailability Zones.

Region: أين يقيم موردك في العالم

Region منطقة جغرافية منفصلة، مثل US East (فرجينيا الشمالية) أو Europe (أيرلندا). حين تطلق جهازاً افتراضياً أو تنشئ سلة تخزين، تختار Region، وهذا الاختيار يحدد أي بلد أو قارة يحتفظ فعلياً ببياناتك، وكم تحتاج حركة الشبكة من مسافة لتصل إلى مستخدميك. تشغّل AWS وحدها نحو 39 Region حول العالم، وكل واحدة منها مصمَّمة لتكون معزولة تماماً عن غيرها، بحيث لا يصل عطل في واحدة إلى الأخريات.

توجد Regions لسببين عمليين: زمن الاستجابة والقانون. يحصل مستخدم في سنغافورة على استجابة أسرع من Region في سنغافورة مقارنة بواحدة في فرجينيا، وتفرض بعض الصناعات والحكومات ألا تغادر بيانات معينة حدود بلد بعينه. اختيار Region هو أول قرار بنية تحتية تتخذه على أي منصة سحابية، ويحدده غالباً هذان القيدان بالضبط.

Availability Zone: العزل داخل Region

Region وحدها لا تحميك من شيء، إنها مجرد موقع. تأتي الحماية خطوة أدنى، داخل Region، حيث يقسّم المزوّدون بنيتهم إلى عدة Availability Zones. كل منطقة إتاحة مركز بيانات واحد أو أكثر، لكل واحد طاقة وتبريد وأمن مادي مستقل، ومحفوظ في مبنى منفصل فعلياً عن مناطق الإتاحة الأخرى في Region نفسها. تضمن AWS 3 مناطق إتاحة على الأقل لكل Region. تبقى مناطق الإتاحة قريبة من بعضها، غالباً ضمن 100 كيلومتر، بما يكفي لربط ألياف مخصصة منخفض الكمون وعالي النطاق الترددي يبقي حركة البيانات بينها سريعة.

تسمّي AWS مناطق الإتاحة باسم منطقتها: us-east-2a وus-east-2b وus-east-2c هي مناطق الإتاحة الثلاث في us-east-2. الحرف الأخير هو الشيء الوحيد المتغير: كل ما قبله يحدد Region، والحرف يختار المنطقة بعينها.

مثال محلول: منطقة إتاحة واحدة مقابل 3

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

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

الالتباس: تعدد مناطق الإتاحة ليس تعدد المناطق

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

كيف تقارن المزودات الثلاثة الكبرى

الفكرة عالمية، رغم أن المصطلح يختلف قليلاً بين المزودين.

المزوّدالموقع الأعلىالوحدة المعزولة بداخلهالحد الأدنى المعتاد لكل موقع
AWSRegionAvailability Zone3
AzureRegionAvailability Zone3 (في المناطق المفعَّلة لـ AZ)
Google CloudRegionZone3

هناك فرق بنيوي يستحق معرفته: إن تعرّضت Region كاملة في Azure لعطل، قد تتأثر كل مناطق الإتاحة بداخلها، لأن Azure تبني Region من Zones الخاصة بها. تصمم AWS وGoogle Cloud مناطقهما لتكون معزولة عن بعضها، بحيث لا ينتشر عطل خاص بـ Region واحدة إلى Region أخرى. هذا تفصيل تصميمي، لا يغيّر كيفية استخدامك للتوزيع عبر مناطق الإتاحة يومياً، لكنه يفسّر لماذا يصبح اختيار Regions نفسه أحياناً قراراً متعلقاً بالإتاحة، لا بزمن الاستجابة فقط.

إلى أين يقودك هذا

تختار Region مكان وجود مواردك؛ مناطق الإتاحة بداخلها هي ما يحميك فعلياً من يوم سيئ لمركز بيانات واحد. وزّع على منطقتي إتاحة على الأقل، ويُفضَّل 3، كلما احتاج تطبيق أن يبقى متاحاً، ولا تلجأ إلى عدة Regions إلا حين يكون انقطاع منطقة جغرافية كاملة خطراً لا تستطيع تحمّله. الآن وقد عرفت كيف ينظّم المزودون الخريطة الفعلية تحت السحابة، يغطي الدرس التالي ما تستأجره فعلياً داخل تلك الخريطة: الحوسبة.