Deploy your application from Bare Metal to Kubernetes - تيك بودكاست بالعربي
Автор: Ahmed Elemam - أحمد الإمام
Загружено: 2025-11-09
Просмотров: 8921
من الحديدة إلى Kubernetes
ثلاث ساعات من العظمة مع حسين جلال
@TheBinBashTheory
اتكلمنا عن رحلة تطور الـ Application Deployment لتطبيق Microservices، وشفنا سوا إزاي العالم ده اتغير خطوة بخطوة.
بدأنا بالطريقة التقليدية، عملنا Deploy يدوي على السيرفرات ووضحنا التحديات اللي فيها من صعوبة في التحديث، مشاكل في الـ scaling، وعدم المرونة.
بعدها انتقلنا إلى Docker و Docker Compose، وبدأنا نحس بالفرق الحقيقي في سهولة الـ packaging، وتوحيد بيئة التشغيل، وقدرنا نشغل كل الخدمات بشكل أسرع وأنظف.
وفي النهاية وصلنا إلى Kubernetes، وعملنا K3s cluster من الصفر، وفعلياً نشرنا التطبيق عليه. شفنا القوة اللي بتقدمها Kubernetes في الـ orchestration، الـ scaling التلقائي، الـ self-healing، وإدارة الموارد بكفاءة عالية.
كانت رحلة مليئة بالمفاهيم والتطبيق العملي، من أول deploy تقليدي إلى عالم الـ container orchestration الحديث.
#docker #k8s #k3s
00:00 - مقدمة عن الموضوع
02:25 - تقديم الضيف وأهداف الحلقة
04:13 - نظرة عامة على التطبيق التجريبي
استعراض للتطبيق العملي المستخدم في الجلسة: تطبيق "قائمة مهام" بسيط مبني باستخدام Django (Python). يتصل بقاعدة بيانات MySQL ويحتوي على مكون إضافي مكتوب بلغة Go لإرسال إشعارات بالبريد الإلكتروني للمهام المعلقة، لمحاكاة معمارية الخدمات المصغرة (Microservices).
09:09 - الجزء الأول: النشر بالطريقة التقليدية (على الحديد)
يشرح هذا القسم العملية اليدوية لنشر التطبيق على خادم افتراضي خاص (VPS) عادي.
09:54 - إعداد MySQL: تثبيت خادم وعميل MySQL يدويًا، ثم تسجيل الدخول لإنشاء قاعدة البيانات والمستخدم المطلوبين.
13:20 - نشر تطبيق Django: نسخ الكود، إعداد بيئة Python افتراضية، تثبيت الاعتماديات، تشغيل عمليات تهيئة قاعدة البيانات (Migrations)، وبدء خادم التطوير.
23:27 - نشر تطبيق الإشعارات (Go): نسخ الملف التنفيذي المترجم، إعداد متغيرات البيئة الخاصة به، وتشغيله كعملية منفصلة.
28:02 - مشاكل وصعوبات الطريقة التقليدية
32:14 - الجزء الثاني: مقدمة عن Docker
مقدمة عن Docker كحل للمشاكل التي نوقشت سابقًا. يشرح كيف يقوم Docker بتغليف التطبيق وجميع اعتمادياته في "صورة" (Image) محمولة، مما يتيح فلسفة "ابنِ مرة واحدة، وشغّل في أي مكان".
35:34 - تحويل التطبيق إلى Docker Images باستخدام Dockerfiles
يوضح هذا الجزء كيفية إنشاء Docker images لمكونات التطبيق.
35:59 - شرح خطوة بخطوة لملف Dockerfile الخاص بتطبيق Django.
43:18 - استخدام أمر docker build لإنشاء الـ image وشرح المعمارية الطبقية لصور Docker.
1:18:16 - إنشاء Dockerfile لتطبيق الإشعارات المكتوب بلغة Go، مع استعراض بناء متعدد المراحل (multi-stage build) للحفاظ على صغر حجم الـ image النهائية.
51:34 - الجزء الثالث: تشغيل التطبيق باستخدام Docker
يتم نشر التطبيق على خادم جديد باستخدام صور Docker التي تم إنشاؤها مسبقًا.
58:52 - تشغيل قاعدة بيانات MySQL كحاوية (container).
1:04:49 - تشغيل حاوية تطبيق Django، مع شرح كيفية التعامل مع الشبكات بين الحاويات وتمرير متغيرات البيئة.
1:14:43 - إتاحة الوصول للتطبيق من الخارج باستخدام ربط المنافذ (port mapping).
1:22:26 - تشغيل حاوية تطبيق الإشعارات (Go)، وعرض الخدمات الثلاث وهي تعمل معًا في عزلة على نفس الخادم.
1:26:30 - الجزء الرابع: التبسيط باستخدام Docker Compose
1:27:53 - شرح مفصل لملف docker-compose.yml، موضحًا كيفية تعريف الخدمات، والمجلدات (Volumes) للحفاظ على البيانات، والشبكات لاكتشاف الخدمات.
1:35:31 - استخدام أمر docker-compose up لإطلاق مكدس التطبيق بالكامل بأمر واحد.
1:40:41 - حدود Docker والحاجة إلى Kubernetes
مناقشة حول لماذا لا يعد Docker Compose كافيًا لبيئات الإنتاج الكبيرة. يسلط الضوء على الحاجة إلى منسق (Orchestrator) أقوى لإدارة الحاويات عبر مجموعة من الأجهزة (Cluster)، ويقدم Kubernetes كحل.
1:46:24 - الجزء الخامس: شرح مفاهيم Kubernetes
نظرة عامة على المعمارية والمفاهيم الأساسية لـ Kubernetes.
1:46:24 - شرح لوحة التحكم (Control Plane) أو "العقل المدبر"، وعقد العمل (Worker Nodes) التي تعمل عليها التطبيقات.
1:55:41 - النموذج التعريفي (Declarative Model): إخبار Kubernetes بالحالة المرغوبة وتركه يتعامل مع الباقي.
1:56:25 - دورة حياة الـ Pod (أصغر وحدة قابلة للنشر في Kubernetes).
2:05:52 - مفاهيم ذات مستوى أعلى مثل Deployments لإدارة نسخ التطبيق وتحديثاته.
2:11:32 - مقدمة عن K3s: نسخة خفيفة من Kubernetes
يقدم حسين K3s، وهي توزيعة Kubernetes خفيفة ومعتمدة يشارك في صيانتها. يشرح فوائدها للحوسبة الطرفية (Edge Computing) وبيئات الإنتاج، ويوضح مدى سهولة إعداد عنقود (cluster) متعدد العقد باستخدام أوامر بسيطة.
2:20:41 - الجزء السادس: نشر التطبيق على Kubernetes
يوضح هذا القسم العملي الأخير كيفية نشر التطبيق على عنقود K3s.
2:20:41 - شرح ملفات الإعلان (Manifests) الخاصة بـ Kubernetes بصيغة YAML.
2:26:45 - استخدام Secrets لإدارة المعلومات الحساسة مثل كلمات المرور.
2:28:08 - إنشاء ملفات Deployment لتعريف كيفية تشغيل Pods التطبيق.
2:34:21 - إنشاء ملفات Service لتمكين شبكات مستقرة واكتشاف بين مكونات التطبيق.
2:41:42 - تطبيق ملفات YAML باستخدام kubectl apply والتحقق من أن التطبيق يعمل عبر العنقود.
2:44:09 - إتاحة الوصول للتطبيق وتوسيع نطاقه (Scaling)
عرض عملي لميزات Kubernetes الرئيسية.
2:44:09 - استخدام NodePort Service لإتاحة الوصول لتطبيق الويب من الخارج.
2:47:29 - زيادة عدد نسخ التطبيق (replicas) من نسخة واحدة إلى خمس نسخ بأمر kubectl scale واحد للتعامل مع المزيد من الضغط.
2:49:33 - الخاتمة والتلخيص
لو وصلتوا لنهاية الحلقة ده الجزء الثاني
K3s Deep Dive - K8s - K3D - K3K • K3s Deep Dive - K8s - K3D - K3K - تيك بودك...
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: