🎯 Introducing Cloud Architecting — مقدمة في هندسة السحابة
تأخذك هذه الوحدة في رحلة لفهم أساسيات هندسة الحوسبة السحابية باستخدام Amazon Web Services (AWS). ستتعلم كيف تصمم وتقيّم البنى المعمارية السحابية باستخدام AWS Well-Architected Framework، وتكتشف أفضل الممارسات لبناء حلول على AWS، وتفهم كيفية اتخاذ قرارات مدروسة حول مكان نشر الموارد باستخدام البنية التحتية العالمية لـ AWS.
1️⃣ Cloud Computing and AWS — الحوسبة السحابية و AWS
حوالي عام 2000، واجهت Amazon تحدياً كبيراً في بناء خدمة تجارة إلكترونية تتيح للبائعين الخارجيين إنشاء متاجرهم الخاصة على منصة أمازون. كانت التطبيقات تُبنى دون تخطيط سليم، وكانت الخدمات متداخلة بشدة ويصعب فصلها، مما جعل التطوير بطيئاً ومعقداً. الحل كان إنشاء مجموعة من واجهات البرمجة (APIs) الموثقة جيداً لتنظيم بيئة التطوير، لكن المشاريع استغرقت شهوراً حتى مع هذا التحسين. في عام 2006، بدأت Amazon ببيع هذه الخدمات داخلياً كخدمات سحابية تحت اسم Amazon Web Services (AWS) بدءاً من Amazon SQS ثم Amazon S3 وAmazon EC2.
- كانت فرق التطوير تبني مواردها دون التخطيط لقابلية التوسع أو إعادة الاستخدام.
- استغرق بناء قواعد البيانات والحوسبة والتخزين 3 أشهر كاملة من أصل 3 أشهر للمشروع بأكمله.
- لم تكن الخدمات قابلة للفصل لإنشاء منصة تطوير مركزية.
بدلاً من بناء كل شيء من الصفر كفعلت أمازون عام 2000 تستخدم الشركة خدمات AWS الجاهزة.
تستضيف موقعها على Amazon S3 وتستخدم Amazon EC2 للخوادم وAmazon RDS لقاعدة البيانات.
ما كان يستغرق شهوراً أصبح ممكناً في أيام بل وساعات.
2️⃣ Cloud Architecture — معمارية السحابة
هي ممارسة تطبيق خصائص الحوسبة السحابية على حل يستخدم الخدمات والميزات السحابية لتلبية الاحتياجات التقنية وحالات الاستخدام التجارية للمؤسسة. إنشاء حلول تقنية يشبه بناء مبنى فعلي — إذا كان الأساس غير متين فسيسبب مشاكل هيكلية تقوض سلامة المبنى ووظيفته. في هندسة السحابة، يحدد صاحب القرار أهداف العمل والمتطلبات، ثم يصمم مهندس السحابة حلاً يشبه المخطط المعماري للمبنى، ليقوم فريق التسليم بتنفيذ الحل.
هكذا تعمل معمارية السحابة: صاحب القرار يحدد أهداف العمل، مهندس السحابة يصمم الحل، وفريق التسليم ينفذه.
وجود أنظمة مصممة بشكل متقن (well-architected) يزيد من احتمالية تحقيق مخرجات التقنية لأهداف العمل.
3️⃣ Role of a Cloud Architect — دور مهندس السحابة
مهندس السحابة مسؤول عن إدارة بنية الحوسبة السحابية للمؤسسة. يتفاعل مع صانعي القرار لتحديد أهداف العمل والقدرات التي تحتاج تحسيناً، ويضمن التوافق بين مخرجات التقنية وأهداف العمل. يعمل مع فرق التسليم المنفذة للحل لضمان ملاءمة الميزات التقنية، ويمتلك معرفة متعمقة بالمبادئ المعمارية والخدمات المستخدمة.
- التخطيط: وضع استراتيجية تقنية سحابية مع قادة الأعمال وتحليل الحلول لاحتياجات العمل.
- البحث: التحقق من مواصفات الخدمات السحابية ومتطلبات العمل ومراجعة البنى الحالية وتصميم نماذج أولية.
- البناء: تصميم خارطة طريق للتحول مع معالم ومسؤولين وإدارة عملية التبني والترحيل.
- تقديم إرشادات حول معالجة القضايا عالية المخاطر.
- تطبيق AWS Well-Architected Framework في عمله.
يحلل الاحتياجات ويقرر استخدام Amazon EC2 Auto Scaling للتوسع التلقائي وAmazon CloudFront للتخزين المؤقت.
بعد التنفيذ تنخفض مدة معالجة المطالبة من 5 دقائق إلى 30 ثانية وتنخفض التكلفة بنسبة 40%.
- بدأت AWS عام 2006 كحل لمشاكل أمازون الداخلية في بناء منصة تجارة إلكترونية قابلة للتوسع.
- معمارية السحابة هي تطبيق خصائص الحوسبة السحابية لتلبية احتياجات العمل باستخدام الخدمات السحابية.
- عملية التصميم تشبه بناء مبنى: صاحب القرار يحدد المتطلبات، المهندس يصمم، الفريق ينفذ.
- مهندس السحابة يخطط ويبحث ويبني حلولاً سحابية متوافقة مع أهداف العمل.
- الأنظمة المصممة بشكل متقن تزيد احتمالية تحقيق أهداف العمل.
- يمكن استخدام خدمات AWS لإنشاء بنى عالية التوفر وقابلة للتوسع وموثوقة.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Cloud Architecture | معمارية السحابة | ممارسة تطبيق خصائص الحوسبة السحابية على حل يستخدم الخدمات السحابية لتحقيق أهداف العمل. |
| Cloud Architect | مهندس السحابة | مسؤول عن إدارة بنية الحوسبة السحابية ومواءمة مخرجات التقنية مع أهداف العمل. |
| Amazon EC2 | حوسبة سحابية مرنة | خدمة حوسبة توفر سعات حاسوبية قابلة للتوسع في السحابة. |
| Amazon S3 | خدمة تخزين بسيطة | خدمة تخزين كائني توفر قابلية توسع لا محدودة وأماناً عالياً. |
| Amazon SQS | خدمة قوائم الرسائل | خدمة قوائم رسائل مدارة بالكامل تتيح فصل المكونات وفك الارتباط. |
| API | واجهة برمجة التطبيقات | مجموعة تعريفات تسمح للبرامج بالتواصل والتفاعل مع بعضها البعض. |
| Well-Architected | مصمم بشكل متقن | نظام يتبع أفضل الممارسات المعمارية لتحقيق الأمان والأداء والموثوقية. |
| Scalability | قابلية التوسع | قدرة النظام على التعامل مع زيادة الطلب بإضافة الموارد بشكل تلقائي. |
1️⃣ Pillars of the AWS Well-Architected Framework — ركائز إطار العمل
هو دليل يقدم نهجاً ثابتاً لتقييم البنى المعمارية السحابية ويقدم إرشادات للمساعدة في تنفيذ التصاميم. يوثق مجموعة من الأسئلة التأسيسية وأفضل الممارسات التي يمكنك استخدامها لفهم ما إذا كانت بنية معينة تتوافق مع أفضل ممارسات الحوسبة السحابية. طوّرت AWS هذا الإطار بعد مراجعة آلاف البنى المعمارية للعملاء على AWS، وينظم في ست ركائز أساسية.
- Operational Excellence — التميز التشغيلي
- Security — الأمان
- Reliability — الموثوقية
- Performance Efficiency — كفاءة الأداء
- Cost Optimization — تحسين التكلفة
- Sustainability — الاستدامة
2️⃣ Operational Excellence Pillar — ركيزة التميز التشغيلي
تعالج هذه الركيزة القدرة على تشغيل الأنظمة واكتساب رؤى حول عملياتها لتقديم قيمة تجارية، بالإضافة إلى القدرة على تحسين العمليات والإجراءات الداعمة باستمرار. عند تصميم حمل عمل للتشغيل، يجب أن تكون على دراية بكيفية نشره وتحديثه وتشغيله. قم بتنفيذ ممارسات هندسية تتماشى مع تقليل العيوب والإصلاحات السريعة والآمنة. في AWS، يمكنك عرض حملك بالكامل (التطبيقات والبنية التحتية والسياسات والحوكمة والعمليات) ككود برمجي، مما يتيح تطبيق نفس الانضباط الهندسي على كل عنصر من عناصر بنيتك.
- تشغيل ومراقبة الأنظمة التي تقدم قيمة تجارية.
- تحسين العمليات والإجراءات الداعمة باستمرار.
- عرض حمل العمل بالكامل ككود برمجي (Infrastructure as Code).
- جعل المراقبة ممكنة عبر التسجيل والقياسات الفنية والتجارية.
بدلاً من تكوين الخوادم يدوياً يكتبون قالباً يتم نشره تلقائياً مع كل تحديث.
هذا يقلل الأخطاء البشرية ويسّرع وتيرة النشر ويضمن اتساق البيئات.
3️⃣ Security Pillar — ركيزة الأمان
تعالج القدرة على حماية المعلومات والأنظمة والأصول مع تقديم قيمة تجارية من خلال تقييم المخاطر واستراتيجيات التخفيف. ستقدم بنيتك حضوراً أمنياً أقوى إذا طبقت أساساً متيناً للهوية، واستخدمت التتبع، وطبقت الأمان على جميع الطبقات، وأتمتت أفضل ممارسات الأمان، وحماية البيانات أثناء النقل والتخزين.
- تنفيذ أساس هوية قوي (strong identity foundation) بمبدأ الامتياز الأقل.
- الحفاظ على قابلية التتبع (traceability).
- تطبيق الأمان على جميع الطبقات (security at all layers).
- أتمتة أفضل ممارسات الأمان.
- حماية البيانات أثناء النقل والتخزين (data in transit and at rest).
- إبعاد الأشخاص عن البيانات (keep people away from data).
- الاستعداد للأحداث الأمنية (prepare for security events).
4️⃣ Reliability Pillar — ركيزة الموثوقية
تعالج قدرة النظام على التعافي من انقطاعات البنية التحتية أو الخدمات واكتساب موارد حاسوبية ديناميكياً لتلبية الطلب، بالإضافة إلى قدرته على تخفيف الاضطرابات مثل التكوينات الخاطئة أو مشاكل الشبكة المؤقتة. ضمان الموثوقية في البيئات التقليدية صعب بسبب نقاط الفشل الفردية ونقص الأتمتة والمرونة. بتطبيق أفضل الممارسات في هذه الركيزة يمكنك منع العديد من هذه المشاكل.
عندما يتعطل هذا الخادم يتوقف التطبيق بالكامل عن العمل.
الحل هو نشر قاعدة البيانات عبر منطقتي توفر (Availability Zones) مختلفتين مع نسخ احتياطي تلقائي.
عند انقطاع إحدى المنطقتين، تنتقل الحركة تلقائياً إلى المنطقة الأخرى دون توقف.
5️⃣ Performance Efficiency Pillar — ركيزة كفاءة الأداء
تركز على تعظيم الأداء باستخدام موارد الحوسبة بكفاءة والحفاظ على هذه الكفاءة مع تغير الطلب. من المهم إضفاء الطابع الديمقراطي على التقنيات المتقدمة — في الحالات التي يصعب فيها تنفيذ التكنولوجيا بنفسك، فكر في استخدام مورد خارجي (vendor) ليتولى التعقيد. يشير مصطلح Mechanical Sympathy إلى استخدام أداة أو نظام مع فهم لكيفية عمله بأفضل شكل — استخدم نهج التقنية الذي يتوافق بشكل أفضل مع ما تحاول تحقيقه.
6️⃣ Cost Optimization Pillar — ركيزة تحسين التكلفة
تحسين التكلفة هو متطلب مستمر لأي تصميم معماري جيد. العملية تكرارية ويجب تحسينها طوال فترة الإنتاج. افهم كفاءة بنيتك الحالية بالنسبة لأهدافك لإزالة النفقات غير الضرورية، واعتمد نموذج الاستهلاك المناسب لحالة الاستخدام الخاصة بك حيث تدفع فقط مقابل الموارد التي تستخدمها. فكر في استخدام الخدمات المُدارة (managed services) لأنها تعمل على نطاق سحابي ويمكن أن تقدم تكلفة أقل لكل معاملة أو خدمة.
مع AWS يمكنك استئجار السيارة فقط عندما تحتاجها وتدفع مقابل المسافة فقط.
هذا هو الفرق بين النموذج الثابت (fixed expense) والنموذج المتغير (variable expense).
7️⃣ Sustainability Pillar — ركيزة الاستدامة
تعالج القدرة على بناء بنى معمارية تزيد الكفاءة وتقلل الهدر. تركز الاستدامة على تقليل الطاقة وزيادة الكفاءة عبر جميع مكونات حمل العمل من خلال تحقيق أقصى استفادة من الموارد المزودة وتقليل إجمالي الموارد المطلوبة. يشمل ذلك الاختيار الأولي للغة برمجة فعالة، واعتماد خوارزميات حديثة، واستخدام تقنيات تخزين بيانات فعالة، والنشر على بنية حاسوبية صحيحة الحجم وفعالة.
- وضع أهداف استدامة (sustainability goals) قابلة للقياس.
- تعظيم الاستفادة من الموارد (maximize utilization).
- اختيار أجهزة وبرامج فعالة (efficient hardware and software).
- تقليل الأثر النهائي (reduce downstream impact) على البيئة والمجتمع.
8️⃣ Using the AWS WA Tool — استخدام أداة AWS للهندسة المتقنة
هي أداة خدمة ذاتية توفر وصولاً عند الطلب إلى أفضل ممارسات AWS الحالية للمساعدة في بناء بنية تحتية آمنة وعالية الأداء ومرنة وفعالة على AWS. تساعدك الأداة على مراجعة حالة أحمال عملك ومقارنتها بأحدث أفضل الممارسات المعمارية لـ AWS، وهي متاحة في AWS Management Console. تعرّف حمل عملك وتجيب على سلسلة من الأسئلة في مجالات التميز التشغيلي والأمان والموثوقية وكفاءة الأداء وتحسين التكلفة، ثم تقدم الأداة خطة عمل مع إرشادات خطوة بخطوة لتحسين حملك.
يستخدم مهندس السحابة أداة AWS WA Tool لتقييم البنية الحالية.
يكتشف أن التطبيق يفتقر إلى التكرار عبر مناطق التوفر وليس لديه خطة تعافي من الكوارث.
تقدم الأداة خطة عمل محددة لتحسين الموثوقية وتقليل مخاطر التوقف.
- يوفر إطار AWS Well-Architected نهجاً ثابتاً لتقييم البنى المعمارية السحابية.
- يتكون من ست ركائز: التميز التشغيلي، الأمان، الموثوقية، كفاءة الأداء، تحسين التكلفة، والاستدامة.
- ركيزة التميز التشغيلي: تشغيل الأنظمة ومراقبتها وتحسين العمليات باستمرار مع اعتبار البنية التحتية كوداً.
- ركيزة الأمان: حماية المعلومات والأنظمة من خلال أساس هوية قوي وتطبيق الأمان على جميع الطبقات.
- ركيزة الموثوقية: التعافي من الانقطاعات وتلبية الطلب ديناميكياً وتخفيف الاضطرابات.
- ركيزة كفاءة الأداء: استخدام الموارد بكفاءة وإضفاء الطابع الديمقراطي على التقنيات المتقدمة.
- ركيزة تحسين التكلفة: اعتماد نموذج الدفع حسب الاستخدام واستخدام الخدمات المُدارة.
- ركيزة الاستدامة: بناء بنى فعالة تقلل الهدر والطاقة عبر جميع مكونات حمل العمل.
- أداة AWS WA Tool تساعدك على مراجعة أحمال العمل وتقدم خطة عمل للتحسين.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| AWS Well-Architected Framework | إطار AWS للهندسة المتقنة | دليل لتقييم البنى المعمارية السحابية وتقديم إرشادات لأفضل الممارسات. |
| Operational Excellence | التميز التشغيلي | ركيزة تركز على تشغيل الأنظمة وتحسين العمليات باستمرار. |
| Security Pillar | ركيزة الأمان | ركيزة تركز على حماية المعلومات والأنظمة عبر أساس هوية قوي وتشفير. |
| Reliability | الموثوقية | ركيزة تركز على التعافي من الانقطاعات وتلبية الطلب ديناميكياً. |
| Performance Efficiency | كفاءة الأداء | ركيزة تركز على تعظيم الأداء باستخدام الموارد بكفاءة. |
| Cost Optimization | تحسين التكلفة | ركيزة تركز على إزالة النفقات غير الضرورية واعتماد نموذج الدفع حسب الاستخدام. |
| Sustainability | الاستدامة | ركيزة تركز على بناء بنى فعالة تقلل الهدر والأثر البيئي. |
| AWS WA Tool | أداة الهندسة المتقنة | أداة خدمة ذاتية لتقييم البنى ومقارنتها بأفضل ممارسات AWS. |
1️⃣ Design Trade-offs — المفاضلات في التصميم
عند تصميم حل، فكر بعناية في المفاضلات لاختيار النهج الأمثل. قد تضحي بالاتساق والمتانة والمساحة مقابل الوقت وزمن الوصول (latency) لتحقيق أداء أعلى، أو قد تفضل سرعة الوصول إلى السوق على التكلفة للميزات الجديدة. يجب أن تستند قرارات التصميم إلى بيانات تجريبية (empirical data)، مثل إجراء اختبارات الحمل لضمان الحصول على فائدة قابلة للقياس في الأداء، أو إجراء اختبارات قياس الأداء (benchmarking) لتحقيق أفضل تكلفة عبر الزمن.
تواجه خياراً بين بناء بنية عالية التحمل بتكلفة مضاعفة أو إطلاق سريع بتكلفة أقل.
تقرر إطلاق منتج أولي (MVP) بتكلفة منخفضة وسرعة عالية ثم تحسين البنية لاحقاً بناءً على بيانات المستخدمين الفعلية.
2️⃣ Implementing Scalability — تنفيذ قابلية التوسع
عند تشغيل أحمال العمل على سحابة AWS، يمكنك توسيع بنيتك التحتية بسرعة واستباقية. تأكد من تطبيق قابلية التوسع في كل طبقة من بنيتك التحتية. على سبيل المثال، يمكنك استخدام Amazon CloudWatch لمراقبة الحمل على خوادمك وعندما يتجاوز حداً معيناً (مثل 60% من استخدام المعالج لأكثر من 5 دقائق)، يقوم Amazon EC2 Auto Scaling فوراً بتشغيل خادم جديد قبل الوصول إلى الطاقة الاستيعابية القصوى. من الناحية المثالية، يجب أن يصمم نظامك ليكون مرناً (elastic) بحيث ينخفض عدد الخوادم تلقائياً (والتكلفة) عند انخفاض الطلب.
3️⃣ Automating Your Environment — أتمتة بيئتك
تقدم AWS أدوات مدمجة للمراقبة والأتمتة في كل طبقة من بنيتك التحتية تقريباً. استفد من هذه الأدوات لضمان استجابة بنيتك التحتية بسرعة للتغييرات. بدون هذه الأدوات، يجب عليك اكتشاف الأعطال يدوياً وإخطار المسؤول الذي يقوم بدوره بتشغيل خادم جديد وتكوينه يدوياً — وهي عملية بطيئة وعرضة للأخطاء.
Amazon CloudWatch يكتشف العطل تلقائياً ويطلق خادماً بديلاً عبر Auto Scaling.
يُعلم المسؤول عبر إشعار ويُسجل التغيير في نظام إدارة التغيير.
كل هذا يحدث في دقائق دون أي تدخل يدوي ويظل التطبيق متاحاً للمستخدمين.
4️⃣ Using IaC — استخدام البنية التحتية ككود
هي أتمتة البنية التحتية لإنشاء البيئات باستخدام كود برمجي بدلاً من العمليات اليدوية. تُمكّنك من نشر بيئات متطابقة بسرعة باستخدام قالب واحد، وتقلل أخطاء التكوين الناتجة عن التدخل البشري، وتنشر التغييرات بشكل متسق على جميع البيئات. إذا حدث خطأ بسبب تحديث الكود، يمكنك العودة بسرعة إلى آخر تكوين مستقر معروف.
- نشر بيئات متطابقة بسرعة (rapidly deploy duplicate environments).
- تقليل أخطاء التكوين الناتجة عن التهيئة اليدوية.
- نشر التغييرات بشكل متسق على جميع البيئات (stacks).
- إمكانية التراجع إلى الإصدارات السابقة بسهولة.
5️⃣ Treating Resources as Disposable — التعامل مع الموارد كشيء قابل للاستبدال
يعني التفكير في بنيتك التحتية كبرنامج وليس كأجهزة مادية. مع الأجهزة المادية، قد تشتري مكونات أكثر من حاجتك استعداداً لذروة الاستخدام، لكن هذا مكلف وغير مرن ويصعب ترقيته بسبب التكاليف الغارقة (sunk cost). بدلاً من ذلك، عندما تتعامل مع الموارد كشيء قابل للاستبدال، يصبح الانتقال بين الخوادم أو الموارد الأخرى أمراً بسيطاً، ويمكنك الاستجابة بسرعة للتغيرات في احتياجات السعة وترقية التطبيقات وإدارة البرامج الأساسية.
باستخدام مبدأ الموارد القابلة للاستبدال يقوم الفريق بإنهاء الخادم المعطل وإطلاق خادم جديد من قالب مُعد مسبقاً.
تستغرق العملية دقائق بدلاً من ساعات وتضمن بيئة نظيفة وخالية من المشاكل المتراكمة.
6️⃣ Using Loosely Coupled Components — استخدام المكونات منخفضة الاقتران
البنى التقليدية تحتوي على سلاسل من الخوادم المترابطة بشدة (tightly coupled)، كل خادم له غرض محدد. المشكلة أن تعطل أي مكون يمكن أن يكون قاتلاً للنظام بأكمله، كما أنه يعيق التوسع. مع الاقتران المنخفض، تستخدم حلولاً مُدارة كوسيط بين طبقات النظام، وهذا الوسيط يعالج تلقائياً الأعطال وتوسع المكونات. حلان رئيسيان لفصل المكونات هما موازنات الأحمال (load balancers) وقوائم الرسائل (message queues).
| وجه المقارنة | الاقتران المنخفض (Loosely Coupled) | الاقتران المحكم (Tightly Coupled) |
|---|---|---|
| تعطل المكونات | يعزل العطل في مكون واحد دون تأثير على الباقي | تعطل أي مكون قد يوقف النظام بأكمله |
| التوسع | يمكن إضافة أو إزالة خوادم بسهولة | يتطلب ربط كل خادم بجميع الخوادم المتصلة |
| الإدارة | حلول وسيطة مدارة تعالج الأعطال تلقائياً | إدارة يدوية معقدة وعرضة للأخطاء |
عند تعطل أحد خوادم التطبيق، يوجه موازن الأحمال كل الحركة إلى الخادمين الصحيحين تلقائياً.
في المقابل، البنية المترابطة تسبب أخطاء عندما تتعطل خوادم التطبيق وتحاول خوادم الويب الاتصال بها دون جدوى.
7️⃣ Designing Services, Not Servers — تصميم خدمات وليس خوادم
على الرغم من أن Amazon EC2 يوفر مرونة هائلة، إلا أنه لا ينبغي أن يكون الحل الأول أو الوحيد لكل احتياج. أحياناً تكون الحاويات (containers) أو الحلول بدون خوادم (serverless) أكثر ملاءمة. مع الحلول المدارة وبدون خوادم من AWS، لا تحتاج إلى توفير وتكوين وإدارة خادم EC2 بالكامل. أمثلة على ذلك: AWS Lambda وAmazon SQS وAmazon DynamoDB وAmazon Cognito.
8️⃣ Choosing the Right Database Solution — اختيار حل قاعدة البيانات المناسب
في مراكز البيانات التقليدية، تفرض حدود الأجهزة والتراخيص قيوداً على اختيارك لحل تخزين البيانات. توصي AWS باختيار مخزن البيانات بناءً على احتياجات بيئة تطبيقك، وليس العكس. يجب أن تطابق التقنية مع حمل العمل وليس العكس — افهم احتياجاتك من القراءة والكتابة ومتطلبات التخزين وحجم الكائنات النموذجية ومتطلبات زمن الوصول والمستخدمين المتزامنين وطبيعة الاستعلامات.
- احتياجات القراءة والكتابة (read and write needs).
- متطلبات التخزين الإجمالية (total storage requirements).
- حجم الكائنات النموذجية وطبيعة الوصول إليها.
- متطلبات المتانة (durability) وزمن الوصول (latency).
- أقصى عدد من المستخدمين المتزامنين (maximum concurrent users).
- طبيعة الاستعلامات (nature of queries) وقوة ضوابط التكامل المطلوبة.
9️⃣ Avoiding Single Points of Failure — تجنب نقاط الفشل الفردية
افترض أن كل شيء سيفشل — ثم صمم بالعكس. هذا لا يعني بالضرورة تكرار كل مكون، فاعتماداً على اتفاقيات مستوى الخدمة (SLAs) يمكنك استخدام حلول آلية تطلق المكونات فقط عند الحاجة أو استخدام خدمة مُدارة تستبدل AWS تلقائياً الأجهزة المعطلة. إذا كان خادما تطبيق متصلين بخادم قاعدة بيانات واحد، فإن هذا الخادم يمثل نقطة فشل فردية — عندما يتعطل، تتعطل خوادم التطبيق أيضاً. الحل الشائع هو إنشاء خادم قاعدة بيانات ثانٍ (احتياطي) وتكرار البيانات بينهما.
بدون تكرار تتعطل التطبيقات بالكامل عندما تتعطل قاعدة البيانات.
الحل: إضافة قاعدة بيانات ثانوية احتياطية مع تكرار البيانات.
عند تعطل قاعدة البيانات الرئيسية تتجه خوادم التطبيق تلقائياً إلى قاعدة البيانات الاحتياطية دون توقف.
🔟 Optimizing for Cost — تحسين التكلفة
مع الحوسبة السحابية، يمكنك تحويل النفقات الثابتة (fixed expenses) إلى نفقات متغيرة (variable expenses). النفقات الثابتة هي الأموال التي تنفقها لشراء الأصول المادية وصيانتها سواء كانت نشطة أم لا. أما خدمات AWS فتستخدم نموذج تكلفة متغير — تدفع فقط مقابل الخدمات التي تحتاجها طوال مدة استخدامها. أفضل طريقة لبناء بنية تحتية فعالة من حيث التكلفة هي توفير الموارد التي تحتاجها فقط وإيقاف الخدمات عندما لا تكون قيد الاستخدام. تذكر أن تكرار إعداد مركز البيانات التقليدي بخوادم تعمل 24/7 في السحابة قد يكون مكلفاً جداً.
- هل مواردي بالحجم والنوع المناسبين للمهمة؟
- ما المقاييس التي يجب مراقبتها؟
- كيف أوقف تشغيل الموارد غير المستخدمة؟
- كم مرة سأحتاج استخدام هذا المورد؟
- هل يمكنني استبدال أي من خوادمي بخدمات مُدارة؟
1️⃣1️⃣ Using Caching — استخدام التخزين المؤقت
هي تقنية تخزين البيانات مؤقتاً في موقع وسيط بين الطالب والتخزين الدائم لجعل الطلبات المستقبلية أسرع وتقليل استخدام الشبكة (network throughput). الغرض الأساسي من التخزين المؤقت هو زيادة أداء استرجاع البيانات بتقليل الحاجة للوصول إلى طبقة التخزين البطيئة. تُخدم الطلبات المستقبلية للبيانات المخزنة مؤقتاً بشكل أسرع من الطلبات التي تصل إلى موقع التخزين الأساسي.
يتم تخزين الملفات في نقاط الحافة (edge locations) القريبة من المستخدمين.
الطلبات الأولى تجلب الملف من S3 وتخزنه في CloudFront بينما تخدم الطلبات التالية من الحافة بزمن وصول وتكلفة أقل بكثير.
بعد الطلب الأول، لم تعد تدفع لنقل الملف من S3.
1️⃣2️⃣ Securing Your Entire Infrastructure — تأمين بنيتك التحتية بالكامل
الأمان لا يقتصر على حماية الحدود الخارجية لبنيتك التحتية — بل يشمل ضمان أن تكون بيئاتك الفردية ومكوناتها مؤمنة من بعضها البعض. في Amazon EC2، يمكنك إنشاء Security Groups لتحديد المنافذ التي يمكنها إرسال واستقبال الحركة ومن أين يمكن أن تأتي هذه الحركة. هذا يقلل احتمالية انتشار تهديد أمني من خادم إلى آخر. يجب اتخاذ احتياطات مماثلة مع الخدمات الأخرى باستخدام الخدمات المُدارة، وتسجيل الوصول إلى الموارد، وعزل أجزاء بنيتك التحتية، وتشفير البيانات أثناء النقل والتخزين، وفرض التحكم في الوصول بمبدأ الامتياز الأقل.
- استخدام الخدمات المُدارة (managed services).
- تسجيل الوصول إلى الموارد (log access of resources).
- عزل أجزاء البنية التحتية (isolate parts of infrastructure).
- تشفير البيانات أثناء النقل والتخزين (encrypt data in transit and at rest).
- فرض التحكم في الوصول بشكل دقيق بمبدأ الامتياز الأقل.
- استخدام المصادقة متعددة العوامل (MFA).
- أتمتة النشر للحفاظ على اتساق الأمان.
- قيّم المفاضلات في التصميم وابنِ قراراتك على بيانات تجريبية.
- طبّق قابلية التوسع في كل طبقة من البنية التحتية.
- أتمت بيئتك باستخدام أدوات المراقبة المدمجة مثل CloudWatch وAuto Scaling.
- استخدم البنية التحتية ككود (IaC) لنشر بيئات متطابقة وتقليل الأخطاء.
- تعامل مع الموارد كشيء قابل للاستبدال واستجب بسرعة للتغيرات.
- صمم مكونات منخفضة الاقتران باستخدام موازنات الأحمال وقوائم الرسائل.
- صمم خدمات وليس خوادم — استخدم الحاويات والحلول بدون خوادم عند الإمكان.
- اختر حل قاعدة البيانات المناسب بناءً على احتياجات التطبيق وليس العكس.
- تجنب نقاط الفشل الفردية بتكرار المكونات الحيوية واستخدام الخدمات المُدارة.
- حسّن التكلفة بتوفير الموارد المناسبة فقط وإيقاف الخدمات غير المستخدمة.
- استخدم التخزين المؤقت (CloudFront) لتحسين الأداء وخفض التكلفة.
- أمّن بنيتك التحتية بالكامل من كل طبقة باستخدام Security Groups والتشفير والامتياز الأقل.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| Scalability | قابلية التوسع | قدرة النظام على التعامل مع زيادة الطلب بإضافة الموارد بشكل تلقائي. |
| Infrastructure as Code (IaC) | البنية التحتية ككود | أتمتة البنية التحتية باستخدام كود برمجي بدلاً من العمليات اليدوية. |
| Loosely Coupled | اقتران منخفض | تصميم مكونات مستقلة تتواصل عبر وسيط مما يمنع تأثير الأعطال. |
| Single Point of Failure | نقطة فشل فردية | مكون واحد يؤدي تعطله إلى توقف النظام بأكمله. |
| Caching | التخزين المؤقت | تقنية تخزين البيانات في موقع وسيط لتسريع الطلبات المستقبلية. |
| Elasticity | المرونة | قدرة النظام على التوسع والانكماش تلقائياً حسب الطلب. |
| CloudFront | شبكة توصيل المحتوى | خدمة CDN توفر محتوى قريباً من المستخدمين عبر نقاط حافة عالمية. |
| Security Group | مجموعة الأمان | جدار ناري افتراضي يتحكم بحركة المرور إلى ومن الموارد في AWS. |
1️⃣ AWS Infrastructure Topics — مواضيع البنية التحتية لـ AWS
هي منصة سحابية آمنة وواسعة وموثوقة تقدم أكثر من 200 خدمة كاملة من مراكز بيانات حول العالم. تمتد البنية التحتية لـ AWS عبر 102 منطقة توفر (Availability Zone) في 32 منطقة جغرافية (Region) حول العالم. عند تصميم البنى، تحتاج إلى تحديد المنطقة المناسبة لنشرها. يجب أن تستند قراراتك إلى متطلبات العمل واحتياجات حمل العمل. على سبيل المثال، إذا كان زمن الوصول المنخفض مطلوباً، ففكر في استخدام نقاط الوجود (Points of Presence - PoPs) أو الخوادم الوسيطة الإقليمية (regional edge caches).
- AWS Regions — المناطق الجغرافية
- Availability Zones — مناطق التوفر
- AWS Local Zones — المناطق المحلية
- AWS Data Centers — مراكز البيانات
- AWS Points of Presence (PoPs) — نقاط الوجود
2️⃣ Selecting Regions — اختيار المناطق
المنطقة (Region) هي موقع جغرافي مادي يحتوي على منطقتَي توفر أو أكثر. تتصل المناطق بمزودي خدمة إنترنت متعددين وبشبكة أساسية عالمية خاصة (private global network backbone) توفر زمن وصول أقل وتكلفة أقل عبر المناطق. المناطق التي أُطلقت قبل 20 مارس 2019 مفعلة افتراضياً، بينما المناطق الأحدث (مثل Asia Pacific (Hong Kong) وMiddle East (Bahrain)) معطلة افتراضياً ويجب تفعيلها يدوياً. لتحقيق تحمل الأعطال، المناطق معزولة عن بعضها — الموارد في منطقة لا تُنسخ تلقائياً إلى مناطق أخرى. أنت المسؤول عن نسخ البيانات عبر المناطق إذا كانت احتياجات عملك تتطلب ذلك.
- الامتثال (compliance): متطلبات تخزين البيانات والخصوصية حسب البلد أو الجهة التنظيمية.
- زمن الوصول (latency): اختيار منطقة قريبة من المستخدمين لتقليل زمن الاستجابة.
- توفر الخدمات: بعض الخدمات غير متاحة في جميع المناطق.
- التكلفة: تختلف تكاليف الخدمات بين المناطق.
3️⃣ Selecting Availability Zones — اختيار مناطق التوفر
كل منطقة تحتوي على منطقتَي توفر معزولتين أو أكثر. كل منطقة توفر تتكون من مركز بيانات واحد أو أكثر (بعضها يصل إلى 6 مراكز بيانات). لا يمكن أن يكون مركز البيانات جزءاً من منطقتي توفر في نفس الوقت. صُممت كل منطقة توفر كمنطقة فشل مستقلة — منفصلة فيزيائياً في السهل الفيضي المنخفض المخاطر، مع مصدر طاقة غير منقطع ومولدات احتياطية في الموقع، ومغذاة من شبكات كهرباء مختلفة من مرافق مستقلة.
4️⃣ Using Local Zones — استخدام المناطق المحلية
هي نوع من نشر البنية التحتية لـ AWS يضع خدمات الحوسبة والتخزين وقواعد البيانات وخدمات أخرى مختارة أقرب إلى المراكز السكانية والصناعية وتقنية المعلومات الكبيرة حيث لا توجد مناطق (Regions) اليوم. تتيح لك المناطق المحلية تشغيل أجزاء التطبيقات الحساسة لزمن الوصول (latency-sensitive) بالقرب من المستخدمين النهائيين، مما يوفر زمن وصول بأحادي الرقم المللي ثانية (single-digit millisecond latency) لحالات استخدام مثل إنشاء محتوى الوسائط والترفيه والألعاب في الوقت الفعلي ومحاكاة الخزانات.
5️⃣ Role of AWS Data Centers — دور مراكز بيانات AWS
مراكز البيانات هي أساس البنية التحتية لـ AWS. لا يمكنك تحديد مركز بيانات محدد لنشر الموارد — لكنه الموقع الفعلي حيث توجد البيانات وتحدث معالجتها. تدير Amazon مراكز بيانات حديثة وعالية التوفر، كل منها يحتوي عادةً على عشرات الآلاف من الخوادم. جميع مراكز البيانات متصلة بالإنترنت وتخدم العملاء. في حالة الفشل، تنقل العمليات الآلية حركة بيانات العملاء بعيداً عن المنطقة المتأثرة. تُنشر التطبيقات الأساسية بتكوين N+1 مما يعني وجود سعة كافية لموازنة الحركة إلى المواقع المتبقية. تستخدم AWS معدات شبكات مخصصة من مصادر متعددة من مصنعي الأجهزة الأصليين (ODMs) مع حزمة بروتوكولات شبكات مخصصة.
6️⃣ AWS PoPs — نقاط الوجود
لتوصيل المحتوى للمستخدمين النهائيين بزمن وصول أقل، تستخدم CloudFront شبكة عالمية تضم أكثر من 410 نقطة وجود، تتكون من 400 موقع حافة (edge location) و13 خادماً وسيطاً إقليمياً (regional mid-tier cache). مواقع الحافة تضمن أن المحتوى الشائع يُخدم بسرعة للعملاء. الخوادم الوسيطة الإقليمية تجلب المزيد من محتواك أقرب للعملاء حتى لو لم يكن شائعاً بما يكفي للبقاء في موقع الحافة. هذا يقلل زمن الوصول ويزيد الكفاءة ويكون شفافاً للمستخدم النهائي.
- مواقع الحافة (Edge Locations): خوادم قريبة من العملاء تصمم لتقديم الخدمات بأقل زمن وصول ممكن، تدعم خدمات مثل Amazon Route 53 وAWS Global Accelerator وCloudFront.
- الخوادم الوسيطة الإقليمية (Regional Edge Caches): خوادم بين الخادم الأصلي وموقع الحافة، تخزن المحتوى غير المتكرر لتجنب جلبه من الخادم الأصلي في كل مرة.
إذا كانت الصورة مخزنة في موقع حافة في الشرق الأوسط، تصل إليه في أجزاء من الثانية.
بدون CloudFront، قد ينتقل الطلب إلى منطقة بعيدة مثل US East (N. Virginia) مما يزيد زمن الوصول.
هذا الفرق في الأداء يحسن تجربة المستخدم بشكل كبير ويزيد رضاه.
| وجه المقارنة | موقع الحافة (Edge Location) | خادم وسيط إقليمي (Regional Edge Cache) |
|---|---|---|
| الموقع | قريب جداً من المستخدمين النهائيين | بين الخادم الأصلي وموقع الحافة |
| المحتوى | المحتوى الشائع والمتكرر | المحتوى غير المتكرر الذي لا يبقى في الحافة |
| الوظيفة | تسريع توصيل المحتوى الأكثر طلباً | تقليل الحاجة لجلب المحتوى من الخادم الأصلي |
| العدد | 400 موقع حول العالم | 13 موقعاً إقليمياً |
- تمتد البنية التحتية لـ AWS عبر 32 منطقة و102 منطقة توفر حول العالم.
- اختيار المنطقة (Region) يعتمد على الامتثال التنظيمي، زمن الوصول، توفر الخدمات، والتكلفة.
- مناطق التوفر (Availability Zones) معزولة فيزيائياً مع طاقة احتياطية وشبكات مستقلة لتحمل الأعطال.
- المناطق المحلية (Local Zones) تضع خدمات AWS بالقرب من المراكز السكانية الكبيرة لتحقيق زمن وصول بأحادي الرقم المللي ثانية.
- مراكز بيانات AWS جميعها متصلة بالإنترنت وتعمل بتكوين N+1 لضمان التوفر عند الفشل.
- نقاط الوجود (PoPs) المكونة من 400 موقع حافة و13 خادماً وسيطاً إقليمياً تُحسّن توصيل المحتوى للمستخدمين.
- أنت المسؤول عن اختيار مناطق التوفر ونسخ البيانات عبر المناطق حسب احتياجات عملك.
📖 جدول المصطلحات
| المصطلح (English) | الترجمة | المفهوم |
|---|---|---|
| AWS Region | منطقة AWS | موقع جغرافي يحتوي على منطقتَي توفر أو أكثر مع شبكة خاصة عالمية. |
| Availability Zone (AZ) | منطقة توفر | مركز بيانات مستقل أو أكثر ضمن منطقة، معزول فيزيائياً لتحمل الأعطال. |
| Local Zone | منطقة محلية | امتداد للمنطقة يضع خدمات AWS قرب المراكز السكانية لزمن وصول منخفض. |
| Data Center | مركز بيانات | منشأة فعلية تحتوي على خوادم AWS حيث تخزن البيانات وتعالج. |
| Point of Presence (PoP) | نقطة وجود | موقع حافة أو خادم وسيط إقليمي لتوصيل المحتوى بزمن وصول منخفض. |
| Edge Location | موقع حافة | موقع قريب من المستخدمين يخزن المحتوى الشائع لخدمته بسرعة. |
| Regional Edge Cache | خادم وسيط إقليمي | خادم بين الخادم الأصلي والحافة يخزن المحتوى غير المتكرر. |
| CloudFront | شبكة توصيل المحتوى | خدمة CDN عالمية توفر المحتوى من نقاط حافة قريبة من المستخدمين. |
🚀 الخاتمة
في هذه الوحدة تعرفنا على أساسيات هندسة الحوسبة السحابية — بدءاً من قصة نشأة AWS عام 2006 كحل لمشاكل التوسع الداخلية في أمازون، وصولاً إلى تعريف معمارية السحابة ودور مهندس السحابة في تصميم الحلول المتوافقة مع أهداف العمل. استعرضنا بالتفصيل إطار AWS Well-Architected Framework وركائزه الست: التميز التشغيلي، الأمان، الموثوقية، كفاءة الأداء، تحسين التكلفة، والاستدامة — مع أفضل الممارسات لكل ركيزة. تعلمنا 12 ممارسة أساسية لبناء الحلول على AWS مثل قابلية التوسع والأتمتة والبنية التحتية ككود والمكونات منخفضة الاقتران وتجنب نقاط الفشل الفردية والتخزين المؤقت. وأخيراً استعرضنا البنية التحتية العالمية لـ AWS من المناطق ومناطق التوفر والمناطق المحلية ومراكز البيانات ونقاط الوجود، وكيفية اتخاذ قرارات مدروسة حول مكان نشر الموارد السحابية.
