Kubernetes والحوسبة السحابية الأصيلة: المعيار الجديد للبنية التحتية

Kubernetes والحوسبة السحابية الأصيلة: المعيار الجديد للبنية التحتية

13

July 2026 Monday

مقدمة

بدأ Kubernetes كمشروع داخلي في جوجل، مستوحى من أكثر من عقد من الخبرة في تشغيل أحمال عمل محوسبة على نطاق كوكبي عبر نظام داخلي يُدعى Borg، وأُطلق كمصدر مفتوح عام 2014. ما بدأ كخيار واحد بين عدة منصات لتنسيق الحاويات - منافسًا آنذاك Docker Swarm وApache Mesos - أصبح منذ ذلك الحين المعيار شبه العالمي، تتبناه كل مزودي السحابة الكبار ويشكّل العمود الفقري التشغيلي لأغلبية المؤسسات البرمجية واسعة النطاق.

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

من الحاويات إلى التنسيق

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

المفهوم التأسيسي لـKubernetes هو حلقة التوفيق، التي تُسمى أحيانًا نمط المتحكم. بدلاً من إصدار أوامر حتمية - "شغّل هذه الحاوية على ذلك الجهاز" - يُعلن المُشغّل حالة مرغوبة، مثل "شغّل ثلاث نسخ من هذا التطبيق"، ويراقب Kubernetes باستمرار الحالة الفعلية للمجموعة ويتخذ أي إجراءات ضرورية لتقريب الحالة الفعلية من المرغوبة. إذا تعطل بود، تلاحظ حلقة التوفيق التباين بين عدد النسخ المرغوب والفعلي وتجدول بديلاً تلقائيًا دون أي تدخل بشري. هذا النموذج التصريحي، أكثر من أي ميزة منفردة، هو السبب الأعمق وراء إثبات Kubernetes لمتانته وقابليته للتوسيع. يتيح هذا النمط أيضًا لمهندسين آخرين بناء متحكمات مخصصة خاصة بهم تتبع نفس مبدأ التوفيق لإدارة موارد مخصصة تمامًا لاحتياجات مؤسستهم، وهو ما أدى إلى ازدهار نظام بيئي هائل من المشغلين (Operators) الذين يُطبّقون منطق تشغيل تطبيقات معقدة - مثل قواعد البيانات الموزعة - كامتداد طبيعي لواجهة برمجة تطبيقات Kubernetes نفسها.

المفاهيم الأساسية في Kubernetes

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

يوفر Service نقطة نهاية شبكية ثابتة وموازنة تحميل عبر مجموعة ديناميكية ومتغيرة باستمرار من عناوين IP للبودات، حالاً مشكلة أن البودات الفردية عابرة ولا يمكن الاعتماد على عناوين IP الخاصة بها من قبل أجزاء أخرى من النظام. تُوسّع موارد Ingress هذا أكثر، مُديرة الوصول الخارجي عبر HTTP(S) إلى المجموعة، بما في ذلك قواعد التوجيه وإنهاء TLS.

تفصل ConfigMaps وSecrets التهيئة وبيانات الاعتماد الحساسة عن صور التطبيق، مما يتيح نشر نفس صورة الحاوية عبر بيئات التطوير والاختبار والإنتاج مع تهيئة مختلفة تُحقن وقت التشغيل بدلاً من تضمينها في الصورة. توفر Namespaces تقسيمًا منطقيًا داخل المجموعة، تُستخدم عادة لفصل البيئات أو الفرق ولتطبيق حصص الموارد وضوابط الوصول على مستوى دقيق.

الأصالة السحابية: ما وراء Kubernetes نفسه

تصف "الأصالة السحابية"، كما عرّفتها مؤسسة الحوسبة السحابية الأصيلة (CNCF)، مجموعة أوسع من المبادئ المعمارية التي يتيحها Kubernetes لكنه لا يضمنها بذاته: تطبيقات مبنية كخدمات مصغرة قابلة للنشر بشكل مستقل وضعيفة الترابط؛ بنية تحتية مُدارة تصريحيًا ككود؛ أنظمة مصممة مع قابلية للملاحظة - سجلات منظمة، ومقاييس، وتتبع موزع - مدمجة منذ البداية بدلاً من إضافتها لاحقًا؛ وأنماط مرونة مثل قواطع الدائرة والتدهور اللطيف التي تفترض أن الفشل حدث روتيني لا استثناء.

تشغيل تطبيق داخل Kubernetes لا يجعله تلقائيًا أصيل السحابة بهذا المعنى الأوسع. يمكن لتطبيق أحادي الكتلة نُقل مباشرة إلى حاوية دون أي تغيير في عمارته أن يعمل تقنيًا على Kubernetes بينما لا يزال يُظهر كل الهشاشة التشغيلية لتصميمه الأصلي - نقطة فشل واحدة، مكونات مترابطة بإحكام، لا قابلية ملاحظة ذات معنى. يتطلب التحول الأصيل السحابي الحقيقي إعادة التفكير في عمارة التطبيق نفسها، وليس فقط آلية نشره.

يمتد النظام البيئي الأصيل السحابي الأوسع، المُنسَّق تحت مظلة CNCF، إلى ما هو أبعد من Kubernetes نفسه. تضيف شبكات الخدمة مثل Istio وLinkerd طبقة شفافة لإدارة حركة المرور بين الخدمات وتشفير TLS المتبادل والقابلية للملاحظة الدقيقة دون تغييرات في كود التطبيق. أصبح Prometheus المعيار الفعلي لجمع المقاييس الأصيلة سحابيًا، ويُوحّد OpenTelemetry بسرعة المشهد المُجزَّأ سابقًا لأدوات التتبع الموزع.

التوسع الآلي وكفاءة الموارد

من أكثر فوائد Kubernetes التشغيلية ملموسية التوسع الآلي، المُنفَّذ على عدة طبقات متكاملة. يُعدّل مُوسِّع البودات الأفقي الآلي عدد نسخ البود العاملة لحمل عمل معين بناءً على مقاييس مُلاحظة مثل استخدام المعالج أو الذاكرة أو مقاييس مخصصة على مستوى التطبيق مثل عمق طابور الانتظار، مما يتيح لخدمة امتصاص ذروة حركة المرور تلقائيًا عبر التوسع الخارجي والتقلص تلقائيًا خلال فترات الهدوء لتجنب دفع تكلفة سعة خاملة.

على مستوى المجموعة، يذهب مُوسِّع المجموعة الآلي خطوة أبعد، فيضيف أو يزيل عقد عمل كاملة من البنية التحتية السحابية الأساسية بناءً على ما إذا كانت البودات المُجدولة حاليًا تتلاءم ضمن السعة الموجودة، مما يعني أن بصمة البنية التحتية للمؤسسة - وفاتورتها السحابية - يمكن أن تتوسع وتنكمش تلقائيًا استجابة مباشرة للطلب الفعلي بدلاً من أن تُحجَّم لذروة متوقعة وتبقى خاملة بقية الوقت. مجتمعة، تشكّل آليات التوسع الآلي الثلاث هذه جزءًا كبيرًا من سبب إفادة المؤسسات التي تشغّل أحمال عمل كبيرة على Kubernetes بتكاليف بنية تحتية أقل بشكل ملموس من البدائل ذات التخصيص الثابت، شريطة ضبط تهيئة التوسع الآلي بعناية - إذ تُعد عتبات التوسع الآلي سيئة التهيئة مأزقًا تشغيليًا شائعًا ومكلفًا.

الأمان في المجموعات متعددة المستأجرين

مع دمج المؤسسات المزيد من أحمال العمل في مجموعات Kubernetes مشتركة لتحسين استخدام الموارد، يصبح تأمين الحدود بين الفرق والتطبيقات المختلفة المشتركة في تلك البنية التحتية اهتمامًا من الدرجة الأولى بدلاً من فكرة لاحقة. يحكم التحكم في الوصول القائم على الأدوار (RBAC) من يستطيع من المستخدمين وحسابات الخدمة تنفيذ أي إجراءات ضد واجهة برمجة تطبيقات Kubernetes نفسها، بينما توفر سياسات الشبكة قواعد شبيهة بجدار الحماية تتحكم في أي البودات يُسمح لها بالتواصل مع أي بودات أخرى.

تُحدد معايير أمان البود، التي خلفت سياسات أمان البود المتوقفة، ملفات أساسية ومقيدة ومميزة تحد مما يُسمح للبود بفعله على مستوى النواة - سواء كان يمكنه العمل كجذر أو تركيب نظام ملفات المضيف أو الوصول لشبكة المضيف مباشرة - مغلقة نواقل هروب حاويات شائعة كان يمكن أن تتيح لحاوية تطبيق مخترقة الوصول إلى العقدة الأساسية أو أحمال عمل مستأجرين آخرين. مقترنة بمتحكمات القبول مثل OPA Gatekeeper أو Kyverno، التي يمكنها فرض سياسة تنظيمية - مثل اشتراط أن يأتي كل حمل عمل منشور من سجل معتمد ويجتاز فحص الثغرات - قبل قبول حمل العمل في المجموعة أصلاً، تشكّل هذه الآليات العمود الفقري لتشغيل Kubernetes متعدد المستأجرين بأمان على نطاق واسع.

GitOps: نموذج النشر الطبيعي لـKubernetes

ولأن الحالة المرغوبة بالكامل لـKubernetes قابلة للتعبير عنها كبيانات YAML تصريحية، فإنه يقترن بشكل طبيعي مع GitOps، وهو نمط تشغيلي يُستخدم فيه مستودع Git كمصدر وحيد للحقيقة بشأن الحالة المرغوبة للمجموعة، ويوفّق متحكم مثل Argo CD أو Flux باستمرار المجموعة الحية لتطابق أي شيء مُودَع في ذلك المستودع. يصبح نشر تغيير بسيطًا كدمج طلب سحب؛ ويصبح التراجع بسيطًا كالتراجع عن إيداع، مع سجل التدقيق الكامل ومراجعة الكود التي يوفرها Git بالفعل مُطبَّقة تلقائيًا على تغييرات البنية التحتية، ساد فجوة عانت منها أجيال سابقة من أدوات النشر الحتمية القائمة على النصوص البرمجية. يخلق GitOps أيضًا فصلاً قيّمًا للمسؤوليات: يتفاعل المطورون مع سير عمل Git المألوف بدلاً من الحاجة لوصول مباشر عبر kubectl إلى مجموعات الإنتاج، مما يُقلّل بشكل ملموس من نطاق الأثر التشغيلي لكل من التهيئة الخاطئة العرضية وبيانات الاعتماد المخترقة.

التكلفة التشغيلية للتعقيد

تأتي قوة Kubernetes مع تعقيد تشغيلي حقيقي، ومن الجدير أن نكون صادقين حول هذه المفاضلة بدلاً من معاملة تبني Kubernetes كخير مطلق لا لبس فيه. يتطلب تشغيل مجموعة Kubernetes إنتاجية بشكل جيد خبرة في الشبكات والأمان والتخزين وواجهة برمجة تطبيقات Kubernetes نفسها - خبرة نادرة ومكلفة، وغالبًا لا تحتاجها المؤسسات الأصغر لنطاق عملياتها الفعلي. دفع هذا اعتمادًا قويًا لعروض Kubernetes المُدارة - Amazon EKS وGoogle GKE وAzure AKS - التي تستوعب الكثير من العبء التشغيلي لمستوى التحكم.

يجب على الفرق التي تُقيّم تبني Kubernetes أن تُقيّم بصدق ما إذا كان نطاقها الفعلي ومتطلبات موثوقيتها تُبرر عبئه التشغيلي، أو ما إذا كانت منصة أبسط - خدمة حاويات مُدارة مثل AWS Fargate أو Google Cloud Run، أو حتى منصة كخدمة تقليدية - ستقدم قيمة عمل مماثلة بعبء تشغيلي أقل بكثير. Kubernetes هو الأداة الصحيحة للمؤسسات التي تشغّل عشرات أو مئات الخدمات على نطاق ذي معنى؛ وهو غالبًا الأداة الخاطئة، المُختارة بدافع تطوير السيرة الذاتية أو مجاراة اتجاهات الصناعة، لفريق صغير يشغّل حفنة من الخدمات لا يبرر حجمها هذا المستوى من التعقيد التشغيلي.

دراسة حالة: هجرة Spotify إلى Kubernetes

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

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

الخاتمة

اكتسب Kubernetes مكانته كركيزة معيارية للحوسبة الأصيلة سحابيًا عبر حل مشكلة تنسيق صعبة حقًا من خلال نموذج تصريحي أنيق وقابل للتوسيع. لكن Kubernetes بنية تحتية، وليس عمارة - العمل داخل مجموعة Kubernetes لا يمنح بذاته المرونة والقابلية للملاحظة وقابلية التوسع التي تعد بها "الأصالة السحابية". المؤسسات التي تقرن تبني Kubernetes باستثمار معماري حقيقي في حدود الخدمات المصغرة والقابلية للملاحظة وأنماط المرونة تحقق قيمته الكاملة؛ أما تلك التي تعامله كبديل جاهز لعملية نشرها القائمة دون إعادة النظر في عمارتها فتجد نفسها عادة مع كل التعقيد التشغيلي وقليل من الفائدة. الانضباط الهندسي المطلوب ليس مجرد تعلم سطح واجهة برمجة تطبيقات Kubernetes، بل فهم مبادئ الأنظمة الموزعة التي يُنفذها بعمق كافٍ لتصميم تطبيقات ومؤسسات تستفيد فعليًا مما يقدمه.