تقنيةغير مصنف

ايه هو Docker وايه الفكره اللى بيقدمها؟

ايه هو Docker وايه الفكره اللى بيقدمها؟

حابب اتكلم معاكم عن Docker وايه هو Docker
وايه الفكره اللى بيقدمها؟
خلينا متفقين فى الاول ان اللى محتاج يعرف اجابة السؤال ده هما
✅ System Admin || DEVOPS
✅ Devlopers
قبل مانبدا الاول خلينا نعرف ايه هيا المشاكل اللى بتواجه معظم المبرمجين او مديرين السيرفرات
– مشكله الـ Dependecy & Deployment & Server Configs
– وهنا هنتكلم عن ان اغلب مشاريع السوفت وير اكبر جزء فيها بيكون عباره بيكون عباره عن مكتبات بيتم استخدامها فى عملية بناء السوفت وير وباصدرات مختلفه فى اغلب الاوقات
على سبيل المثال لو انت باك اند ديفولبر سواء بايثون او روبى او نود جي اس او بى اتش بى او لغة مختلفة حتى هتلاقى ان كل واحد حاول يحل المشكله دى عن طريق الـ dependecy   Package managersومثال على كده
✅ pip for python
✅ gem for ruby
✅ npm for node js

✅ composer for php

slider 2 1
وممكن الموضوع يتطور لابعد من كده زى ماعملت البايثون بانشاء بيئه وهميه تعزل فيها كل المكتبات فيما يعرف بالـ  virtual env
– وهنا السؤال طالما كل اللغات دى وفرت كل الادوات دى يبقى فين المشكله؟ فى الحقيقه ان رغم توافر كل الادوات دى
مازال هناك مشكله فى عملية الـ deployment
وعلى سبيل المثال
– كثرة المكتبات او التراخيص واللى بيستهلك معانا وقت طويل وهيا بتنزل او بتحمل واللى اصلا ممكن ماتبقاش موجوده على نفس السيرفر زى CDN مثلا واللينك حصل فيه تغير وهنا بتحتاج انك تحمل كل ده مانيوال وده بيكون مجهد فى اغلب الاوقات وبيستهلك وقت اكثر
– بعض المكتبات ممكن تحتاج لسوفت وير مخصص ليها يكون معمول له تسطيب على السيرفر زى JAVA او غيرها وكمان ممكن مكتبات تتعارض مع بعض او وجود بعضها بيتطلب وجود الاخرى او استحالة عملها معا فى نفس الوقت وكمان اصدرات المكتبات ودى من اشهر المشاكل اللى بنشوفها واللى ممكن نلاقى اصدار فيه اختلافات كبيره عن اللى قبله وده بيسبب مشاكل كبيره فى عملية الdeployment
– كل المشاكل دى بتخلى عملية نقل مشروع من سيرفر لسيرفر تانى مجهده جدا وبتستهلك وقت كبير
وكمان مشاكل من نوعية نقل مشروع من سيرفر لسيرفر اخر ، واحتمالية وجود مشاكل خصوصا لو نظام تشغيل مختلف من سيرفر لسيرفر واعداد نظام الcahce واعدادات ال nginx او غيره و Update Os واعدادات امنية اخرى قد تتعلق بالسيرفرات
طيب بعد الكلام ده كله . ايه هو الـ Docker
Docker عباره عن اداة صممت خصيصا للمبرمجين ومديرين السيرفرات علشان تخلى عملية تشغيل وتطوير ونقل برامجهم تكون اسهل وده عن طريق مايسمى بالحاوية ( container ) وده لان الحاويات بتسمح بتخزين التطبيقات بكل مايحتاجها من مكتبات وخلافه ومن ثم بيتم تشغيلها كدفعه او شحنه واحده
او بتعريف اخر
هيا مثل الجهاز الافتراضى ولكنه ليس جهاز افتراضي لانه لاينشئ نظام وهمى كاملا فوق جهازك لذلك مش بتستهلك الا قليل جدا من موارد الجهاز وتسمح باستخدام نفس الـ kernal بتاع ال linux للجهاز الللى بيشتغل عليه وده بيخلى البرنامج اخف باداء عالى والاهم ان Docker عباره عن Open Source وده بيمكن اى حد من انه يطور عليه ويضيف احتياجاته واضافاته حتى لو مش موجوده ع الموقع الاصلى
وهنلاحظ فى الصوره ان الاجهزة الافتراضيه بتقوم بعملية بناء نظام تشغيل جديد لكل تطبيق مع استدعاء المكتبات وخلافه فى كل مره وده بيستهلك موارد اكتر من الجهاز بعكس Docker بيعزل التطبيقات دون الحاجه لتعدد انظمة التشغيل او تحميل مكتبات مره تانيه .

ولو حابب تعرف عن Docker سايب لك رابط كورس ان شاء الله يساعدك ويفيدك

اضغط هنا

بقلم م. محمد الشربيني
المدير التنفيذي لشركة العالمية الحرة لتكنولوجيا المعلومات

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى