المصطلحات التقنية التي لا نستطيع إستيعابها من الوهلة الأولى أصبحت تغزو العالم التقني، و بدون تجديد للمعارف اللازمة قد تجد نفسك لاحقا جاهل للكثير من المفاهيم، الـ DevOps ليس بالمفهوم الجديد، لكن هذه أول مرة سنقوم نحن في منصة أكوا ويب بالكتابة عليه و شرحه للقراء و ذلك بعد طلب لبعض الإخوة في منشور سابق، فقررنا ان نوفر لك كل المعلومات التي تحتاج معرفتها عن مفهوم الـ DevOps و خصائصه و لما يجب عليك البدئ في إمتهانه او العمل به إن صح التعبير.
- ما هو الـ DevOps ؟
إن كنت من الأشخاص المتابعين لمجال التقنية بشكل عميق قليلا، قد تجد ان المهن و الاعمال قد تفرعت و تقسمت بشكل كبير، فلتطوير موقع ويب مثلا ستحتاج الى 3 فئات من الأشخاص : الويب ديزاينر لتصميم الـ UI/UX و الواجهات الخاصة بتطبيق الويب، ثم مطوري Front End لتطوير واجهات موقع الويب إعتمادا على تنسيقات الويب ديزاينر، ثم المطوري Back End لتتمكن من ربط الموقع مع قواعد البيانات، بجعل عدد المطورين هو 2 في كل فئة سنجد ان عدد المطورين الإجمالي الذي اشتغل على موقع الويب هو 6، فكيف يمكن الربط بينهما لجعل العمل تشاركي أولا، ثم جعل التنسيق بين كل مطور و آخر سواء في نفس الفئة او في فئة مختلفة، و كيف يمكن لمطورين في نفس الفئة كتابة كود متشابه غير مختلف عن الآخر حتى لا يبدو الكود كما لو تم تطويره بعدد كبير من المطورين و ليس واحد ؟
من هنا إنبثق مفهوم الـ DevOps بحيث يسمح لنا هذا الأخير بصناعة برمجيات تعتمد على معايير محددة على المستوى الشخصي للمطور، و تعتمد على معايير محددة على المستوى الجماعي لفريق العمل، بحيث يمكن للجميع العمل على مشروع برمجي واحد دون إختلاف و بتنظيم كامل، و بطريقة واحدة في كتابة الكود البرمجي مثلاً او طريقة واحدة في التطوير، مما يتيح لنا في النهاية إبتكار برمجية فعالة و بسيطة و يستطيع اي مطور او مبرمج التعديل عليها، كما يمكن إنشاء إصدارات مختلفة و تحديثات مختلفة لتلك البرمجية بسهولة، دون الوقوع في مشكلة تشابك الأعمال او الكود البرمجي، و إبقاء كل شيئ نظيف و واضح.
الـ DevOps عموما هي مجموعة من الحركيات التي تساعدنا على قضاء المهمات، يوجد العديد من التقنيات الأخرى مثل ITIL التي توفر قواعد و أساسيات يجب إحترامها أثناء التعامل في مجال الـ IT في بناء البرمجيات او إدارة الخوادم.
- لما يجب عليك إتباع قواعد الـ DevOps؟
لأنه لم يعد بإمكانك بعد الآن فقط إنجاز الاعمال بما تشتهيه انت، بل بما يشتهيه سوق الشغل، سواء كان البرمجة و التطوير، التصميم، التسويق و أي مجال آخر، فأنت مجبر على إحترام مجموعة من الأساسيات و القواعد حتى لا يكون ذلك العمل " خاصا " بك لوحدك، بل يكون عمل جماعي تشاركي يستطيع الكل فهمه و إستيعابه و يستطيع الكل التعديل عليه، كما يساعدك ذلك لاحقا على كشف أي مشاكل او عيوب و إصلاحها في ظرف وجيز.
يهدف الـ DevOps و تقنياته في الأساس لبناء أي شيئ قابل للتعديل او التصحيح لاحقا بسهولة في حالة وقوع خطأ ما، نجد مثلا ان شركات مثل جوجل او فيسبوك و غيرها الى حل مشكل يظهر في احدى خدماتها بسرعة، كيف فعلت ذلك ؟ لأن برمجياتها تم صناعتها بإتقان و بطريقة يمكن تصحيحها او التعديل عليها بسهولة، و هو ما ترتكز عليه في الأساس تقنيات الـ DevOps.
- أين يمكن إستخدام تقنيات الـ DevOps ؟
يتم الإعتماد على تقنيات الـ DevOps في الـ IT بشكل عام، سواء البرمجة، الشبكات و التعامل مع الخوادم، التعامل مع البيانات و البيانات الضخمة و غيرها، إستخدامها أشد في تقنيات التطوير و البرمجة و تقنيات الشبكات، كما ان إستخدامها شائع حاليا في التقنيات الحديثة مثل الـ Data Science و الـ Big Data و الشبكات و التعامل مع الخوادم و السيرفرات و كل ما يحوم حول هذه المجالات، كذلك في العمل التشاركي بين عدة مطورين، إذ تعتمد الـ DevOps بشكل كبير على التنظيم و التسيير (Organization & Management) لكي يستطيع فريق عمل بناء أي شيئ بطريقة متكاملة، إذ ان الإلتزام بهذه التقنيات في هذه المجالات يساعدنا على بنائها بشكل أفضل و تجنب الأخطاء كذلك كما سلف الذكر.
- بعض تقنيات و أدوات الـ DevOps :
الـ DevOps لا يملك تقنيات محددة الإسم يمكن إتباعها للحصول على نتيجة محددة، فقط تذكر أن اي شيئ تفعله له قواعد مخصصة و ليس عشوائياً، فمثلا تصميم قاعدة بيانات موقع مخصص لها تقنياتها و لها أساليبها و طرق تنظيمها و إدارتها، و لا يمكنك فقط ان تقوم ببناء قواعد بيانات ثم تبدأ في استخدامها دون ربطها او دون إضافة كل عناصر الجداول او إضافة جداول قد لا تحتاجها من أساسه، حتى نقربكم من الفكرة أكثر، تذكر كذلك ان الـ Life Cycle الخاصة بأي مشروع IT يمر عبر مجموعة من الأقسام منها : التخطيط، البناء، الفحص، النشر، التشغيل ثم المراقبة، و كل قسم من هذه الأقسام له برمجياته و أدواته الخاصة، هذه بعض تقنيات الـ DevOps التي يمكن إستخدامها في بعض المجالات :
- حل مشاكل جداول قواعد البيانات : الإهتمام بالجداول في قواعد البيانات أساسي من أجل تهيئتها بشكل كامل، بعض الجداول مثلا قد لا تقبل قيم باللغة العربية لأنها لا تقبل ذلك التشفير، او قد تكون عناصرها لا تقبل قيم محددة او طويلة ( مثل جعل نوع خانة Varchar(20) بينما ستكتب نصا كاملاً في الخانة ) هنا يجب الإهتمام الكلي بها و تهيئة كل جدول بالكامل و دراسة كل الإحتمالات الممكنة.
- جدولة المهام و إدارة المشاريع التشاركية : جدولة المهام بإستخدام خدمات مثل Trello، إدارة المشاريع عبر خدمات مثل Git او Bitbucket، تنسيق المحادثات و تبادل الملفات عبر خدمات مثل Slack، إدارة الحملات التسويقية عبر منصات مثل Facebook Business او التعامل التشاركي عبر منصة Facebook Coworkers.
- تهيئة الخوادم و السيرفرات : يشكل تهيئة الخوادم و السيرفرات الجزء الأكبر من تقنيات الـ DevOps، إذ يجب ان يتم تنصيبها بإحترافية لأن أي مشكلة في الخادوم قد تؤثر على العمل بشكل كلي في أي شركة / منصة .
- إدارة الإتصال بقواعد البيانات : ليس الجميع له الحق في الوصول للمعلومات الموجودة في قواعد البيانات، و البعض له الحق في الوصول فقط لبعض البيانات بينما البعض الآخر عليه ان يصل لكل المعلومات، إدارة الخواص الثلاث يجب ان يكون متقنا لضمان حماية للبيانات في السيرفرات و الخوادم
- إنشاء برمجيات أكثر تخصصا : يمكنك إستخدام برمجيات معروفة، لكن من الأفضل بناء برمجياتك الخاصة التي تعتمد على مجال العمل / شركة العمل، يمكن إستخدام لغات مثل Python, Ruby, Javascript, C لبناء هذه البرمجيات .
- التعامل مع الحماية، يهدف الـ DevOps الى توفير حماية للبرمجيات من خلال تنظيمها، أثناء رفع ملفات للخوادم، او التعامل مع الإرسال و الإستقبال مع الخوادم عليك ان تجيد أساليب الحماية لضمان عدم تسريب و إختراق البيانات
يوجد العديد من مبادئ الـ DevOps التي تخص كل مجال على حدة، يكفي البحث عن التقنيات التي يجب إتقانها في ذلك المجال و البدئ في إكتسابها للبدئ في صناعة منتجات في ذلك المجال بتقنيات الـ DevOps.
شكراً على المقال. إسمح لي أن أضيف معلومة مهمة بالنسبة للمجال DevOps و كيف بدأت الفكرة من تأسيسه. في الحقيقة DevOps جاء حتى لا يتم استخدام الجملة الشهيرة: البرنامج يعمل بشكل جيد على جهازي فبالتأكيد العطل من جهازك.<br /><br />ال Devops في الحقييقة هو القسم الذي يعني بربط القسمين أو الفريقين إن أردت هذه التسمية. و هما قسم Developers و قسم Operations. و من هنا جائت التسمية DevOps. لهذا فإن هذا المجال هو ثقافة العمل بطرق و قواعد معينة من أجل تسهيل وصول المنتج (في هذه الحالة المنتج هو البرنامج أو موقع الويب أو غيره) من فريق المبرمجين إلي فريق العمليات الذي غالباً يكون مسؤولاً عن تشغيل المنتج على السيرفرات الخاصة و لا يفقه شيء بالبرمجة و لا بكيفية صناعة المنتج.<br /><br />للأسف هذا المجال قد لا يكون موجوداً في أروقة العمل البرمجي و التكنولوجي في عالمنا العربي مع العلم أن بداياته كانت من أكثر من 10 سنوات تقريباً.<br /><br />بالتوفيق