العودة للمدوّنة

شرح Kubernetes من داخل المطبخ 🍳

تعرّف على Kubernetes بطريقة بسيطة من خلال تشبيهه بالمطبخ، وافهم مفاهيم Containers وPods وNodes وScaling وDeployment بأسلوب سهل وعملي.

منشور أيضًا على
Explaining Kubernetes In Kitchen

شرح Kubernetes من داخل المطبخ 🍳

إعلان مشوّق! 🎉

استعدوا لوجبة دسمة من المعرفة! 😁

انضموا إليّ في رحلة شهية داخل عالم Kubernetes، حيث تلتقي هندسة البرمجيات بفنون الطهي! 🍲🚀

قبل يومين، كنت أنا وزملائي نعمل على مشروع مليء بالتحديات خلال مرحلة التطوير (Development)، وتمكّنا من تجاوز الكثير من التفاصيل المعقدة بنجاح. والآن نستعد للانتقال إلى مرحلة النشر (Deploy) باستخدام تقنية قوية تُعرف باسم الحاويات (Containers).

لكن انتظروا، فهناك المزيد!

سنستعين أيضًا بـ Kubernetes، ذلك الساحر الذي يدير عالم الحاويات، وسأحاول شرحه لكم بطريقة مختلفة ولذيذة للغاية... من خلال قصة تدور أحداثها داخل المطبخ! 👨‍💻


بداية القصة

شرح Kubernetes قد يكون معقدًا أحيانًا، تمامًا كتعلم وصفة جديدة لأول مرة.

لذلك قررت أن أشرح الفكرة بطريقة مختلفة.

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

من المقبلات وحتى الحلوى، يتولى Kubernetes تنسيق وإدارة العملية بالكامل، لضمان أن يعمل التطبيق الخاص بك بنفس السلاسة التي يعمل بها مطبخ منظم بشكل احترافي. 👩‍🍳🍴

لكن ما هو Kubernetes أصلًا؟

يمكنك اعتباره كبير الطهاة داخل مطبخ البرمجيات الخاص بك. فهو المسؤول عن تنظيم وإدارة الحاويات (Containers) والتأكد من أن كل شيء يعمل بانسيابية تامة.

وكما تقوم بتوزيع مهام الطبخ بين أفراد عائلتك، يقوم Kubernetes بتوزيع المهام بين الحاويات المختلفة، كما يتولى التوسع (Scaling)، وموازنة الأحمال (Load Balancing)، وأتمتة عمليات النشر (Automated Deployment)، ليصبح بذلك المدير المثالي لمطبخك البرمجي. 👨‍🍳

أما إذا أردنا تعريفه بشكل تقني، فإن Kubernetes يُعرف بأنه أداة لإدارة وتنسيق الحاويات (Container Orchestration Tool).

ولتقريب الصورة أكثر، تخيل أنه أداة تنظيمية للطاهي... أي لك أنت!

كل حاوية (Container) تمثل طبقًا سيتم وضع الطعام فيه، بينما الطعام نفسه يمثل التطبيق (Application) الخاص بك. 🍽️🔧

Start of the story



ماذا عن Pods؟

لننتقل الآن إلى مفهوم Pods.

تخيل أن جميع أطباق المقبلات الموجودة على المائدة موضوعة ضمن مجموعة واحدة. هذه المجموعة تمثل Pod.

كل طبق يؤدي وظيفة مختلفة، لكنه في النهاية يساهم في تقديم المقبلات. وبالمثل، تعمل المكونات الموجودة داخل الـ Pod معًا لخدمة جزء محدد من التطبيق.

جميعها تشترك في هدف واحد، وكل Pod يركز على مهمته الخاصة دون أن يتدخل في عمل الـ Pods الأخرى.

Pods



وظائف Kubernetes

1. التوسع (Scaling)

كما يستطيع الطاهي زيادة أو تقليل سرعة العمل حسب الحاجة، يستطيع Kubernetes تشغيل أو إيقاف Pods بناءً على حجم الضغط أو عدد الطلبات.

فإذا كنت متأخرًا في تجهيز الطعام، يمكنه زيادة عدد الموارد العاملة لتسريع الإنجاز لأن العائلة بأكملها تنتظر الطعام بفارغ الصبر! 😋


2. النشر التلقائي (Automated Deployment)

يقوم Kubernetes بأتمتة عملية النشر (Deployment)، مما يوفر الكثير من الوقت والجهد.

الأمر يشبه امتلاك وصفة جاهزة تتبع خطواتها خطوة بخطوة للحصول على النتيجة المطلوبة. 📖👨‍🍳


3. موازنة الأحمال (Load Balancing)

إذا كان هناك طلب كبير على نوع معين من الأطباق، يستطيع Kubernetes توزيع الحمل بشكل أفضل عن طريق زيادة عدد الـ Pods التي تعمل على هذه المهمة.

ولتقريب الفكرة بطريقة مرحة:

تخيل أن أخاك الصغير مسؤول عن إعداد الحلوى لكنه لا يستطيع مواكبة الطلبات الكثيرة، فتقوم بعمل نسخة أخرى منه وتطلب من "أخيك الإصدار 2.0" أن يساعد "أخيك الإصدار 1.0" حتى يتم الانتهاء من المهمة بسرعة أكبر! 😄


المطبخ الكبير

لنعد إلى مطبخنا.

تخيل أن المطبخ أصبح مطعمًا كبيرًا يحتوي على ثلاثة أقسام:

  • قسم المقبلات.
  • قسم الوجبة الرئيسية.
  • قسم الحلويات.

كل قسم من هذه الأقسام يمثل عقدة عمل (Worker Node).

وكأن لديك ثلاث طاولات كبيرة داخل المطبخ، وكل طاولة مسؤولة عن جزء محدد من عملية إعداد الطعام.

أما رئيس الطهاة الذي يشرف على المطعم بالكامل...

فهذا أنت!

أنت تمثل الـ Master Node. 🧐

وظيفتك هي التأكد من أن جميع الأقسام تعمل بانسجام وتنسيق كامل، تمامًا كما يقوم Kubernetes بالإشراف على الحاويات داخل بيئة العمل.

ولمساعدتك في ذلك، يوجد داخل كل Worker Node عنصر يسمى kubelet.

يمكنك اعتباره المشرف المسؤول عن متابعة العمل داخل كل قسم والتأكد من أن كل شيء يعمل بالشكل المطلوب.

Kubernetes



لماذا نستخدم Kubernetes؟

تمامًا كما يحتاج مدير المطعم إلى معرفة الأدوات التي تساعده على تحسين الكفاءة وتقديم خدمة أفضل، يحتاج المطورون إلى Kubernetes لإدارة التطبيقات بصورة أكثر فعالية.

تخيل أن Kubernetes هو الأخ الأكبر داخل المطبخ.

هو من ينظم العمل ويوجه الجميع ويعرف ما الذي يحدث في كل مكان.

فإذا أرادت "الأم" (التي تمثل المستخدم) معرفة ما يحدث داخل المطبخ أو طلب تعديل معين، فإنها تتحدث مع الأخ الأكبر ليخبرها بكل التفاصيل.

ومن الناحية التقنية، يتيح Kubernetes للمطورين الحصول على معلومات عن جميع الـ Pods والـ Nodes والخدمات (Services)، مما يساعدهم على اتخاذ قرارات أفضل فيما يتعلق بالموارد وإدارة العمليات.


الخاتمة

في النهاية، يمكننا تشبيه Kubernetes بمطبخ منظم بإتقان.

كل شخص يعرف دوره، وكل شيء موضوع في مكانه الصحيح، والنتيجة النهائية هي وجبة رائعة ترضي الجميع! 😋

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

المائدة أصبحت جاهزة، والوجبة قُدمت، وحان الآن وقت الاستمتاع بالمعرفة الجديدة التي اكتسبتها! 🎓🍽️

لكن رحلتنا داخل مطبخ البرمجيات لم تنتهِ بعد!

لا تنسَ متابعتي إذا كنت ترغب في المزيد من المغامرات التقنية، حيث يعد Kubernetes أحد أهم المكونات التي تساعد على بناء أنظمة ناجحة وقابلة للتوسع. 🚀

وأحب أن أسمع رأيك في هذا الأسلوب من الشرح، وهل ساعدتك الرسومات البسيطة والمقارنات الطريفة على فهم Kubernetes بشكل أفضل؟ 😂😁

وسأقوم أيضًا بمشاركة بعض المصادر لمن يرغب في التعمق أكثر في هذا الموضوع.

إلى اللقاء في مقال جديد...

واستمتعوا بالطهي باستخدام Kubernetes! 🍳🚀

شكرًا لقراءتكم ❤️

Kubernetes System



يمكنك متابعتي عبر:
LinkedIn
Facebook
All My Social Media

My Portfolio:
https://www.omarwaleed.tech