شرح الحوسبة السحابية: 11 مفهومًا معماريًا يجب أن تعرفها (فئة رئيسية بدقة 4K).
يحاول معظم مهندسي البرمجيات تعلم بنية السحابة عن طريق حفظ مئات الاختصارات لمنتجات البائعين عبر AWS و GCP و Azure.
يحاول معظم مهندسي البرمجيات تعلم بنية السحابة عن طريق حفظ مئات الاختصارات لمنتجات البائعين عبر AWS و GCP و Azure. لكن هندسة السحابة في العالم الحقيقي مبنية على أحد عشر مبدأً معماريًا أساسيًا. في هذه الفئة الرئيسية المعاد تصميمها بدقة 4K، يشرح Niko المخطط الكامل للمؤسسة: من التحجيم العمودي مقابل الأفقي وموازنة التحميل للطبقة 7 إلى التحجيم التلقائي الديناميكي، وتنفيذ microVM بدون خادم، وفك الاقتران غير المتزامن المدفوع بالأحداث، وتنسيق الحاويات، وهرمية التخزين ذات الأركان الأربعة، والفرق الحاسم بين التوفر العالي و11 تسعة من المتانة، والبنية التحتية التصريحية كرمز، وشبكات السحابة الخاصة الافتراضية. أتقن هذه المفاهيم الأحد عشر، ويمكنك تصميم أي بنية خلفية في الإنتاج. الحكم: SHIP IT.
اقرأ النسخة المكتوبة (الإنجليزية) ↗
ما يغطيه هذا الفيديو
- - جدار البنية والمخطط الرئيسي
- - 01. التحجيم العمودي مقابل الأفقي
- - 02. بنية موازنة التحميل (L4 مقابل L7 وفحوصات السلامة)
- - 03. التحجيم التلقائي والمرونة
- - 04. بلا خادم (FaaS و Firecracker MicroVMs)
النص المترجم
مترجم من السرد الإنجليزي الأصلي. يتم التحكم في الصوت والتعليقات التوضيحية المتاحة بواسطة YouTube.
- جدار البنية والمخطط الرئيسي
0:00 يواجه كل مهندس برمجيات في النهاية جدار بنية السحابة. تبني تطبيقًا على جهاز الكمبيوتر المحمول الخاص بك، وتدفعه للإنتاج، وفي اللحظة التي يصل فيها المستخدمون الحقيقيون، تتعطل الخوادم، وتنفد اتصالات قاعدة البيانات، وتبدو فاتورة AWS الخاصة بك مثل رقم هاتف. يحاول معظم المطورين حل مشكلة هندسة السحابة عن طريق حفظ ثلاثمائة اختصار مختلف لمنتجات AWS. لكن الحوسبة السحابية الحقيقية لا تتعلق بحفظ كتالوجات البائعين: إنها مبنية على أحد عشر مبدأً معماريًا أساسيًا.
0:34 في هذه الفئة الرئيسية، سنتناول مخطط المؤسسة بالكامل: من التحجيم وموازنة التحميل إلى الحلول بدون خادم، وفك الاقتران المدفوع بالأحداث، وتسلسلات التخزين، وشبكات السحابة. أتقن هذه المفاهيم الأحد عشر، ويمكنك تصميم أي بنية خلفية على AWS، أو GCP، أو Azure. هذا هو The Daily Diff، تحت الغطاء.
- 01. التحجيم العمودي مقابل الأفقي
0:57 المفهوم رقم واحد: التحجيم. عندما يواجه تطبيقك نموًا في حركة المرور، لديك طريقتان مختلفتان أساسيتان للتعامل مع الحمل: التحجيم العمودي، أو التحجيم الأفقي. التحجيم العمودي، أو التوسع، يعني أخذ جهازك الحالي وإضافة المزيد من الموارد: الترقية من أربعة أنوية معالج إلى اثنين وثلاثين، أو استبدال اثنين وثلاثين جيجابايت من ذاكرة الوصول العشوائي بمئة وثمانية وعشرين. التحجيم العمودي لا يتطلب أي تغييرات معمارية: يبقى رمزك
1:28 وقاعدة بياناتك كما هي تمامًا. لكنه يصل إلى سقف قاسٍ للأجهزة. لا يوجد جهاز واحد في العالم يحتوي على عشرة آلاف نواة معالج، وتأتي الحالات العليا بزيادة سعرية أسية. التحجيم الأفقي، أو التوسع، يعني إبقاء خوادمك صغيرة وبأسعار السلع، ولكن تشغيل عدة حالات بالتوازي خلف موجه. إذا تعطلت حالة واحدة، تستوعب العقد المتبقية حركة المرور مع صفر وقت تعطل. القاعدة الذهبية للتحجيم الأفقي هي
2:01 عدم الحالة: لا يمكن لخوادم التطبيق الخاصة بك تخزين جلسات المستخدم، أو الملفات المحملة، أو الحالة على أقراصها المحلية. يجب أن تكون الحالة موجودة في قاعدة بيانات خارجية أو ذاكرة تخزين مؤقت، مما يسمح لأي عقدة بمعالجة أي طلب مستخدم.
- 02. بنية موازنة التحميل (L4 مقابل L7 وفحوصات السلامة)
2:17 المفهوم رقم اثنان: موازنة التحميل. يبدو التحجيم الأفقي رائعًا على الورق، لكنه يقدم مشكلة فورية: عندما يصل عشرة آلاف مستخدم إلى اسم النطاق الخاص بك، أي خادم محدد يتلقى حركة مرورهم؟ يعمل موازن التحميل كوكيل عكسي يجلس بين الإنترنت العام وكتلتك الخلفية الخاصة. يقبل اتصالات TCP أو HTTP الواردة و يوزع الطلبات عبر حالاتك الصحية.
2:47 تعمل موازنات التحميل في طبقتين رئيسيتين للشبكة. تعمل موازنات التحميل الشبكية من الطبقة 4 في طبقة النقل، توجيه حزم TCP و UDP الأولية بناءً على عنوان IP والمنفذ مع زمن انتقال بالميكروثانية وملايين الطلبات في الثانية. تفحص موازنات التحميل التطبيقية من الطبقة 7 بروتوكول HTTP نفسه: قراءة مسارات URL ورؤوس الطلبات وملفات تعريف الارتباط و أساليب HTTP. هذا يتيح التوجيه القائم على المسار: إرسال طلبات slash-api إلى كتلتك الخلفية وطلبات slash-static إلى
3:25 مخزن كائنات. الأهم من ذلك، أن موازنات التحميل تجري فحوصات صحية نشطة. كل بضع ثوانٍ، يرسل الموازن إشارة إلى نقطة نهاية صحية على كل حالة. إذا ألقت حالة ثلاث أخطاء متتالية من فئة خمسمائة أو فشلت في الاستجابة، يتم إزالتها تلقائيًا من المجموعة مع صفر طلبات مفقودة.
- 03. التحجيم التلقائي والمرونة
3:45 المفهوم رقم ثلاثة: التحجيم التلقائي. إذا كان تطبيق الويب الخاص بك يحتاج إلى خادمين في الساعة الثالثة صباحًا، ولكن عشرين خادمًا خلال إطلاق منتصف النهار، فإن النقر يدويًا على الأزرار في وحدة التحكم السحابية هو طريق مضمون لوقت التعطل والإفلاس. يجلب التحجيم التلقائي مرونة ديناميكية لمجموعات الخوادم الأفقية. تراقب مجموعة التحجيم التلقائي مقاييس الأداء مثل متوسط استخدام وحدة المعالجة المركزية، ومدخلات/مخرجات الشبكة، أو تراكم قائمة الانتظار العمق. عندما يتجاوز متوسط استخدام وحدة المعالجة المركزية عتبة محددة - على سبيل المثال،
4:19 سبعين بالمائة لمدة ثلاث دقائق متتالية - يقوم التحجيم التلقائي تلقائيًا بتشغيل آلات افتراضية جديدة، وتسجيلها مع موازن التحميل الخاص بك، وبدء توجيه حركة المرور. بنفس الأهمية هو التحجيم للداخل: عندما تنحسر موجة حركة المرور، يقوم التحجيم التلقائي بإنهاء الحالات الزائدة بحيث تتوقف عن الدفع مقابل الحوسبة الخاملة. لمنع الاهتزاز - حيث يتم إنشاء الخوادم وتدميرها بسرعة في حلقة طحن لا نهاية لها - يقوم مهندسو السحابة بتكوين فترات تهدئة. المفهوم رقم أربعة: بلا خادم.
- 04. بلا خادم (FaaS و Firecracker MicroVMs)
4:53 لسنوات، روجت فرق التسويق للحوسبة بلا خادم ككود سحري يعمل في السماء. في الواقع، لا تزال الحوسبة بلا خادم تستخدم خوادم - لكنك لا تمتلكها، أو تحدثها، أو تدفع ثمنها عندما لا يعمل أي رمز. مع الوظيفة كخدمة مثل AWS Lambda أو Google Cloud Functions، تكتب دالة معالج مستقلة. عند حدوث طلب HTTP، أو تحميل ملف S3، أو تغيير قاعدة بيانات، يقوم وقت تشغيل السحابة بتشغيل آلة افتراضية دقيقة
5:23 مؤقتة مثل Firecracker في أقل من خمسة مللي ثانية. ينفذ رمزك، ويعيد استجابة، ويغلق. إذا لم يزر أحد موقعك لمدة ثلاثة أشهر، فإن فاتورة الحوسبة الخاصة بك هي بالضبط صفر دولار وصفر سنت. إذا زارها مليون مستخدم في وقت واحد، يقوم المزود بتشغيل مليون microVM متزامن. المقايضات الهندسية حقيقية: زمن انتقال البدء البارد عند تشغيل أوقات تشغيل جديدة، وحد أقصى صارم لتنفيذ Lambda يبلغ خمسة عشر دقيقة، وعدم حالة صارم.
5:55 تعد الحوسبة بلا خادم لا تقبل المنافسة لخطوط أنابيب الأحداث وواجهات برمجة التطبيقات المتفرقة، ولكنها ضعيفة لـ WebSockets المستمرة أو تشغيل التدريب لعدة ساعات.
- 05. بنية مدفوعة بالأحداث (EDA وفك الاقتران)
6:05 المفهوم رقم خمسة: بنية مدفوعة بالأحداث، أو EDA. في البنى التقليدية، تتواصل الخدمات بشكل متزامن. تتصل خدمة الدفع بخدمة الدفع، وتتصل خدمة الدفع بالمخزون، ويتصل المخزون بخدمة الاحتيال، وتتصل خدمة الاحتيال بالبريد الإلكتروني. هذا يخلق تسلسل الكارثة المتزامن. إذا واجه موفر البريد الإلكتروني الخارجي مشكلة شبكة واستغرق عشر ثوانٍ للاستجابة، فإن طلب الدفع الكامل للعميل يفشل مع خطأ. في بنية مدفوعة بالأحداث، تكون الخدمات مفككة تمامًا.
6:37 عندما ينقر العميل على شراء، لا تتصل خدمة الدفع بالخدمات الفرعية. إنها ببساطة تنشر حدثًا يسمى OrderPlaced إلى ناقل أحداث مركزي مثل Amazon EventBridge أو موضوع SNS. يكتمل الدفع في خمسين مللي ثانية. تسحب العمال الفرعيون للدفع، وخصم المخزون، وإيصالات البريد الإلكتروني الرسائل بشكل مستقل من قوائم انتظار SQS المخصصة الخاصة بهم. إذا تعطلت خدمة البريد الإلكتروني لمدة ساعة، تنتظر الرسائل بأمان مخزنة مؤقتًا في قائمة الانتظار بدون فقدان أي طلب.
- 06. تنسيق الحاويات (Docker و Kubernetes)
7:13 المفهوم رقم ستة: تنسيق الحاويات. لقد حل Docker مشكلة التعبئة: فهو يغلف رمز التطبيق الخاص بك، ومكتبات النظام، والتكوين، ووقت التشغيل في صورة غير قابلة للتغيير تعمل بشكل متطابق على جهاز MacBook الخاص بك وفي السحابة. لكن تعبئة حاوية سهلة. تشغيل خمسمائة حاوية عبر خمسين آلة افتراضية فعلية هو المكان الذي تنهار فيه الهندسة. لهذا السبب توجد أدوات تنسيق الحاويات مثل Kubernetes و AWS ECS.
7:41 يوفر المنسق مستوى تحكم: خادم API، متجر حالة etcd، ومجدول ذكي. تعلن عن حالتك المطلوبة: أريد عشر نسخ من خدمة المصادقة الخاصة بي بسعة 2 جيجابايت من ذاكرة الوصول العشوائي لكل منها. يفحص المجدول الكتلة، ويضع الحاويات (pods) على العقد ذات الذاكرة الحرة، ويقوم بتكوين الشبكة الداخلية، ويقوم بمطابقة الواقع باستمرار. إذا تعرضت عقدة لفشل في الأجهزة، يكتشف Kubernetes الخسارة ويقوم على الفور بإعادة جدولة جميع الحاويات (pods) المزاحة على
- 07. أركان تخزين السحابة الأربعة (S3, EBS, DBs و Redis)
8:16 العقد الصحية. المفهوم رقم سبعة: تسلسل التخزين السحابي. غالبًا ما يتعامل المبتدئون مع التخزين السحابي كحاوية واحدة حيث تلقي الملفات. في بنية الإنتاج، يتم تقسيم التخزين إلى أربعة أركان مميزة بناءً على أنماط الوصول وزمن الانتقال. أولاً هو تخزين الكائنات، مثل Amazon S3 أو Google Cloud Storage. يمكنك الوصول إلى الملفات عبر واجهات برمجة تطبيقات REST عبر HTTP باستخدام مكالمات PUT و GET بسيطة. يوفر سعة أفقية لا نهائية بسعر سنتين لكل جيجابايت شهريًا،
8:49 مما يجعله مثاليًا للفيديو، وتحميلات المستخدم، والسجلات، والنسخ الاحتياطية. ثانيًا هو تخزين الكتل، مثل Amazon EBS. هذه هي محركات أقراص صلبة افتراضية يتم تثبيتها مباشرة على آلة افتراضية محددة عبر وصلات داخلية عالية السرعة. تتنسق إلى أنظمة ملفات قياسية مثل ext4، تدعم وصول قراءة وكتابة عشوائي سريع مطلوب بواسطة محركات قواعد البيانات. ثالثًا هي قواعد البيانات المدارة: محركات علائقية مثل PostgreSQL على RDS توفر معاملات ACID و joins معقدة،
9:21 ومحركات NoSQL مثل DynamoDB توفر زمن انتقال أحادي الرقم بالمللي ثانية على نطاق واسع. ورابعًا هي ذاكرة التخزين المؤقت في الذاكرة مثل Redis. يستغرق قراءة البيانات من ذاكرة الوصول العشوائي ميكروثوانٍ بدلاً من مللي ثوانٍ. تجلس ذاكرة التخزين المؤقت أمام قاعدة البيانات الخاصة بك، وتحميها من حركة القراءة المتكررة وتدير رموز جلسات المستخدم المتقلبة.
- 08. التوفر العالي و"الآحاد" (تبديل الفشل متعدد المناطق)
9:44 المفهوم رقم ثمانية: التوفر العالي، أو HA. يجيب التوفر على سؤال واحد: ما هي النسبة المئوية للوقت الذي يكون فيه تطبيقك قيد التشغيل ويمكن للمستخدمين الوصول إليه؟ في عقود الشركات، يُقاس التوفر بالآحاد. اثنين من الآحاد، أو 99% توفر، يسمح بأكثر من ثلاثة ونصف أيام من وقت التعطل كل عام. أربعة آحاد يقلل وقت التعطل المسموح به إلى اثنين وخمسين دقيقة، وخمسة آحاد يسمح بخمس دقائق بالكاد من إجمالي وقت التعطل لكل
10:15 عام. لتحقيق توفر عالٍ، يجب عليك التخلص من نقاط الفشل الفردية عبر نطاقات الأخطاء. في السحابة، يعني ذلك النشر عبر مناطق توفر متعددة. منطقة التوفر ليست رفًا واحدًا: إنها مركز بيانات فعلي واحد أو أكثر متباعدة بأميال مع طاقة وتبريد مستقلين. من خلال تشغيل حالات نشطة في المنطقة A والمنطقة B مع تكرار متزامن لقاعدة البيانات، فإن ضربة صاعقة أو قطع ألياف يؤدي إلى تعطيل منشأة فعلية بأكملها يؤدي إلى تبديل تلقائي للفشل
10:50 في ثلاثين ثانية بدون أي تدخل بشري.
- 09. المتانة مقابل التوفر (لماذا 11 تسعة ليست وقت تشغيل)
10:53 المفهوم التاسع: المتانة مقابل التوفر. هذا هو الفخ المفاهيمي الأكثر شيوعاً في مقابلات هندسة السحابة. غالباً ما يستخدم المهندسون الكلمات بالتبادل، لكنها تقيس خصائص مختلفة تماماً. يقيس التوفر وقت التشغيل: هل يمكنني إجراء استدعاء API لقراءة أو كتابة بياناتي في هذه اللحظة بالذات؟ تقيس المتانة الحفاظ: هل ستبقى بياناتي على قيد الحياة دون تلف دائم، أو فساد، أو تدمير على مدى عشر سنوات؟
11:24 انظر إلى Amazon S3 Standard. اتفاقية مستوى الخدمة الخاصة به تقدم 99.9% من التوفر، مما يسمح بحوالي 43 دقيقة من التوقف كل شهر حيث قد يعيد طلب API خطأ 500. لكن S3 يعد بـ 11 تسعة من المتانة: 99 فاصلة تسعة تسعة تسعة تسعة تسعة تسعة تسعة تسعة تسعة بالمائة. إذا قمت بتخزين عشرة ملايين ملف في S3، يمكنك إحصائياً أن تتوقع فقدان
11:56 متوسط ملف واحد كل عشرة آلاف سنة. يحقق S3 ذلك عن طريق تشفير مسح الكائنات ونسخ الأجزاء عبر ما لا يقل عن ثلاث منشآت بيانات متباعدة جغرافياً. أثناء انقطاع كبير في شبكة إقليمية، قد يصبح S3 غير متوفر مؤقتاً، لكن بياناتك لا تُدمّر أبداً.
- 10. البنية التحتية كرمز (Terraform مقابل Console Drift)
12:14 المفهوم العاشر: البنية التحتية كتعليمات برمجية، أو IaC. في الأيام الأولى للحوسبة السحابية، قام المهندسون بتسجيل الدخول إلى وحدة تحكم إدارة الويب AWS ونقروا يدوياً لإنشاء أجهزة افتراضية، وتكوين الشبكات الفرعية، وإرفاق مجموعات الأمان. تطلق الصناعة على هذا ClickOps، وفي الإنتاج، إنه كارثة مطلقة. التغييرات اليدوية على وحدة التحكم ليس لها سجل تدقيق، ولا آلية للتراجع، وتتسبب حتماً في انحراف التكوين بين بيئات التطوير والإنتاج. مع أدوات البنية التحتية كتعليمات برمجية مثل Terraform،
12:48 Terraform, OpenTofu، Pulumi، أو AWS CDK، يمكنك تحديد بنية السحابة الخاصة بك بالكامل في ملفات تكوين تصريحية مخزنة في Git. يمر كل تغيير في منفذ مفتوح أو نسخة طبق الأصل من قاعدة البيانات بطلب سحب ومراجعة من الأقران. يعرض تشغيل `terraform plan` الفرق الدقيق في واجهة برمجة التطبيقات قبل لمس أي شيء، ويستغرق تشغيل نسخة طبق الأصل متطابقة من مكدس الإنتاج الخاص بك أربع دقائق بدلاً من أربعة أسابيع.
- 11. شبكات السحابة (VPC, Subnets, NAT ومجموعات الأمان)
13:20 المفهوم الحادي عشر: شبكات السحابة والشبكات الافتراضية الخاصة (VPC). عندما تنشر خوادم على السحابة، فإنها لا تكون مكشوفة على الإنترنت العام الخام. إنها تعيش داخل حدود معزولة معرفة بالبرمجيات تسمى VPC. داخل VPC الخاص بك، تقوم بتخصيص مساحة عنوان IP خاصة مثل عشرة-نقطة-صفر-نقطة-صفر-نقطة-صفر / ستة عشر، وتقسمها إلى شبكات فرعية عامة وخاصة. تحتوي الشبكة الفرعية العامة على مسار مباشر إلى بوابة الإنترنت.
13:51 إنها تحتوي على أصول مواجهة للجمهور مثل موازنات تحميل التطبيق وبوابات NAT. إنه الجزء الوحيد من شبكتك الذي يمتلك عناوين IP عامة. تعيش خوادم التطبيقات وقواعد بيانات الإنتاج الخاصة بك حصرياً في شبكات فرعية خاصة بدون عناوين IP عامة ولا مسارات واردة من الإنترنت. عندما تحتاج خوادم الواجهة الخلفية الخاصة بك إلى تنزيل تحديثات الأمان، يمر تدفق حركة المرور الصادرة عبر بوابة NAT في الشبكة الفرعية العامة. تحيط بكل مثيل مجموعات الأمان: جدران حماية افتراضية ذات حالة تفرض مبدأ الحد الأدنى من الامتيازات.
- 12. المخطط الكامل للمؤسسة والحكم
14:28 تقبل مجموعة أمان قاعدة البيانات الخاصة بك الاتصالات على المنفذ 5432 بشكل صارم من مجموعة أمان خوادم التطبيقات الخاصة بك، مما يجعل الاختراق الخارجي مستحيلاً رياضياً. عندما تنظر من منظور أوسع، تتصل هذه البدائيات الأحد عشر في نظام متماسك واحد. توجيه DNS الخاص بك إلى موازن تحميل في شبكة فرعية عامة، وتتعامل مجموعات التحجيم التلقائي مع تدفقات حركة المرور عبر مناطق توفر متعددة، وتفصل حافلات الأحداث بين عمال الواجهة الخلفية، ويتم نشر مكدسك بالكامل من Git باستخدام البنية التحتية كتعليمات برمجية.
15:02 حكم فئة اليوم الاحترافية: SHIP IT. توقف عن حفظ المئات من اختصارات التسويق السحابي. أتقن هذه الأنماط المعمارية الأحد عشر، وافصل حالتك، وابنِ أنظمة لا يمكن أن تفشل. أخبرني ما هو المفهوم السحابي الذي سبب لك أكبر صداع عندما بدأت لأول مرة في البناء في التعليقات. وللحصول على ورقة الغش المعمارية الكاملة، اشترك في النشرة الإخبارية على the daily diff dot dev،
15:28 الرابط أدناه. وهذا هو الفرق لهذا اليوم. أنا نيكو من Axrisi. ادمج بمسؤولية.
المصادر
- AWS Well-Architected Framework (Reliability & Performance Pillars)aws.amazon.com
- Kubernetes Architecture & Control Plane Conceptskubernetes.io
- Martin Fowler: What is Event-Driven Architecture?martinfowler.com
- Amazon S3 Data Durability & Availability Technical Whitepaperaws.amazon.com
- HashiCorp: Declarative Infrastructure as Code with Terraformwww.terraform.io



