ما المقصود بالتسليم المستمر؟

مكتمل

هنا، سوف تتبع فريق Tailspin وهم يناقشون كيف يمكن أن يساعدهم خط أنابيب التسليم المستمر (CD) في إصدارهم القادم.

بدأ فريق Tailspin يشعر بتحسن بشأن عملية البناء الخاصة بهم. لديهم عملية تلقائية تعمل على Azure Pipelines، ما يعني أن بيئة البناء مستقرة. أميتا تعرف على الفور عندما تحتاج إلى اختبار البيانات الاصطناعية. تجد عددا أقل من الأخطاء لأن أندي ومارا قد بدأا في إضافة اختبارات الوحدة واختبارات جودة التعليمات البرمجية. الحياة تبدو جيدة دعونا نتحقق مع الفريق.

اجتماع صباحي

الفريق في غرفة الاجتماعات في انتظار إروين، مدير الإنتاج، الذي يريد التحدث إليهم. وهم يتطلعون إلى إخباره عن تقدمهم. لكن عندما يدخل (إروين) لا يبدو سعيدا إنه يبدأ بالتحدث على الفور

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

أندي: هذا مفاجئ قليلا، لكننا متقدمون عليك قليلا. لقد قمنا بأتمتة كيفية إنشاء مواقعنا على الويب. ربما حان الوقت الآن لتوسيع التنفيذ التلقائي لدينا إلى عملية الإصدار لدينا.

إروين: كيف ستفعل ذلك؟

مارا: أنشأنا مسار بناء تلقائيا باستخدام Azure Pipelines. إنه يبني أداة يمكن أن تختبرها أميتا. يمكننا أيضا إنشاء مسار تسليم مستمر (CD).

إروين: ما هو مسار CD؟

تبدأ مارا في الشرح، ولكن تتم مقاطعتها عندما ينير هاتف إروين الخلوي. يقرأ إروين رسالة نصية ويتمتم تحت أنفاسه.

إروين: أنا آسف، ولكن هذا أمر عاجل. عليّ أن أذهب. لماذا لا تكتشفون أعمال الأقراص المضغوطة هذه وتعودون إلي قريبا؟

(أندي) ينظر إلى فريقه

أندي: قهوة؟

أندي وبقية الفريق يتوجهون إلى المقهى لوضع خطة.

ما المقصود بالتسليم المستمر؟

يجتمع الفريق عبر القهوة لمعرفة كيفية إعداد سير عمل التسليم المستمر.

أندي: مارا، هل يمكنك إخبارنا بما تعرفه عن التسليم المستمر؟

مارا: بالنسبة لي، لا يمكن فصل CD وDevOps. تذكر أننا عرّفنا DevOps على أنه اتحاد الأشخاص والعمليات والمنتجات لتمكين التسليم المستمر ذي القيمة لمستخدمينا النهائيين.

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

  • لدينا عملية موثوقة وقابلة للتكرار لإصدار البرامج ونشرها.
  • نقوم بالأتمتة قدر الإمكان.
  • نحن لا نتوقف عن القيام بشيء صعب أو مؤلم؛ بل نتوقف عن القيام بشيء صعب أو مؤلم. بدلا من ذلك، نقوم بذلك في كثير من الأحيان حتى نكتشف كيفية جعله روتينيا.
  • نحن نحتفظ بكل شيء في التحكم بالمصادر.
  • نحن نتفق جميعا على أن ذلك يعني أنه تم إصداره.
  • نحن نبني الجودة في العملية. الجودة ليست أبدا سعى لاحقة.
  • نحن جميعا مسؤولون عن عملية الإصدار. لم نعد نعمل في الصوامع.
  • نحاول دائما التحسين.

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

لماذا أحتاج إلى التسليم المستمر؟

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

دعونا نواصل الاستماع إلى الفريق وهم يتحدثون عن هذا.

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

تيم: متفق عليه! لا أستطيع الانتظار للبدء.

أندي: شكرا للجميع. سأقترح أن نضع أنا ومارا دليلا بسيطا على المفهوم (POC). وأعتقد أن كل شيء سيكون أسهل بكثير لفهم إذا كنت تستطيع أن ترى مسار CD في العمل.

أميتا: حظا سعيدا، أنتما الاثنين.

يترك الفريق أندي ومارا للعمل على التفاصيل.

كيف يقارن التسليم المستمر بالنشر بالنقر بزر الماوس الأيمن؟

توفر العديد من أدوات التطوير طرقا لنشر تطبيقك مباشرة إلى بعض البيئة المستهدفة، مثل Microsoft خدمات معلومات الإنترنت (IIS) أو Azure. على سبيل المثال، يمكنك نشر تطبيق ASP.NET Core إلى Azure باستخدام Visual Studio. تسمى هذه العملية أحيانا النشر بالنقر بزر الماوس الأيمن.

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

يوفر التسليم المستمر طريقة متسقة لك ولفريقك لاختبار تطبيقك ونشره ومراقبته باستمرار في كل مرة تقوم فيها بالتحقق من التعليمات البرمجية الخاصة بك. عند النقر بزر الماوس الأيمن فوق نشر التطبيق، فإنه ليس هناك ضمان أن التعليمات البرمجية قد تم اختبارها بشكل صحيح، أو أنها ستتصرف كما هو متوقع في ظل الاستخدام الفعلي.

في هذا الفيديو القصير، يشرح هابيل وانغ، مساعد السحابة لدى Microsoft، المزيد.

كيف يقارن التسليم المستمر بالنشر المستمر؟

في مجتمع DevOps، قد تسمع شروط التسليم المستمر والنشر المستمر. هل تعني هذه المصطلحات نفس الشيء؟ في هذا الفيديو القصير، يشرح هابيل الفرق.

ما هي أدوات التسليم المستمر التي يمكنني استخدامها؟

بعد انتهاء الاجتماع، يخطط أندي ومارا للخطوات التالية. يستخدمون Azure Pipelines لإنشاء برامجهم. يريدون التفكير في الأدوات المتوفرة، بما في ذلك Azure Pipelines، لمساعدتهم في عملية الإصدار الخاصة بهم.

مارا: من أين تريد البدء؟

أندي: أولا، نحن بحاجة إلى الاتفاق على أداة إدارة الإصدار لدينا. لنتأكد من أن الأداة التي نختارها:

  • يدعم نظام التحكم بالإصدار لدينا.
  • يمكن التوزيع في بيئات متعددة حتى نتمكن من اختبار عملنا والتحقق من صحته.
  • يجعل من السهل تحديد مهام التوزيع الخاصة بنا.
  • من السهل تمديده.

مارا: يتكامل Azure DevOps مع العديد من حلول التكامل المستمر الأخرى (CI) وCD. هناك العديد من الحلول، ونحن لا نستثمر في أي منها. لو كنا كذلك، سيكون من المنطقي استخدام ذلك. تتضمن أنظمة التكامل المستمر والتسليم المستمر الشائعة Jenkins وDysyci وGitLab وTravis CI وAzure Pipelines.

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

على سبيل المثال، Jenkins هو مصدر مفتوح. يحتوي على العديد من المكونات الإضافية، وتستخدمه العديد من الشركات. يمكنك تشغيل Circle CI في السحابة أو محليا. أعتقد أننا سنحتاج إلى تخصيصه. GitLab هو تطبيق واحد لدورة حياة تطوير البرامج بأكملها. قد يكون أكبر مما نريد الآن. يمكننا الاستمرار في استخدام Azure Pipelines.

فيما يلي فيديو قصير حيث يتحدث Abel عن استخدام أفضل ممارسات DevOps لنشر التعليمات البرمجية إلى Azure.

مارا: تصويتي هو البقاء مع Azure Pipelines.

أندي: أوافقك الرأي. لقد عملت Azure Pipelines بشكل رائع بالنسبة لنا حتى الآن، وليس علينا تعلم تقنية جديدة أخرى.

مارا: رائع. لنبدأ في تفاصيل البنية الأساسية لبرنامج ربط العمليات التجارية.

ينتقل أندي ومارا إلى قاعة مؤتمرات لتخطيط خط أنابيب القرص المضغوط الخاص بهم.