عندما سمعت ولأول مرة عن مصطلح "DevOps" ظننته الجزء الثاني من لعبة الفيديو الشهيرة (Psi Ops) وفي الواقع أنني لم اجانب الحقيقة بالكامل، ففي حين تحمل الشخصية الرئيسية في اللعبة مهارة مزدوجة (قتالية ونفسية)، يحمل العاملين في مجال الDevOps مهارة مزدوجة أيضا ولكن من نوع أخر، فما هي؟
كيف بدء DevOps
يعتبر مصطلح DevOps بمثابة زواج بين إدارتين متنافستين منذ الأزل هما: إدارة التطوير "Development" وإدارة العمليات "Operations".
إدارتين متنافستين؟ نعم! فمنذ عرفت الإدارة بشكلها الحديث، عانت فرق التطوير وفرق التنفيذ من ضعف التواصل والتعاون، ولكن لما؟ لأن لدى كل منها هدف يتعارض مع هدف الأخرى: ففي حين ترغب فرق إدارة العمليات برؤية المنتج مكتملاً بأعلى جودة وبأقل قدر ممكن من الموارد، تُصر فرق التطوير على التأكد من إنجاز العمل بالكامل وبجودة عالية، بغض النظر عن الموارد اللازمة لتحقيق النجاح.
تكمن المفارقة في كون هذا التعارض لا يؤدي لتخصيص الموارد بشكل مناسب ولا لإنجاز العمل بالجودة المطلوبة! وهنا يأتي دور DevOps.
هدف DevOps
تهدف DevOps لخلق بيئة تطوير تدعم التكامل المتواصل والتسليم المستمر. وذلك من خلال أربعة مبادئ رئيسية تقوم عليها، نذكرها كالتالي :
- التكامل المتواصل (CI: Continuous integration): حيث يتقاسم فريق DevOps في هذه الخطوة الكود المصدري، ليعمد كل منهم لتطوير جزء منه واختباره، وفي حال نجحت عملية تشغيله دون مشاكل، يُعيد المطور الجزء الخاص به إلى المصدر.
- التسليم المتواصل (CD: Continuous delivery): وهي امتداد للعملية السابقة، ويعمل فيها الفريق على اختبار البرنامج بشكل مستمر مع كل ميزة جديدة تُضاف إليه.
- الاختبار المتواصل (Continuous Testing): وفيها تحديد هل يتطابق المنتج/البرنامج بصورته النهائية مع المتطلبات؟ هذا ما سيحرص عليه القائمين على الاختبار المستمر.
- المراقبة المتواصلة (Continuous Monitoring): وهي العملية المسؤولة عن مراقبة البرنامج أو الميزة الجديدة بحثًا عن الأخطاء والأمان والتوافق.
شاركوني بالمزيد حول الDevOps، وما هي أهميتها في بناء أنظمة قوية؟