كيفية البدء في استخدام خطوط أنابيب CI / CD من AWS

جدول المحتويات:

كيفية البدء في استخدام خطوط أنابيب CI / CD من AWS
كيفية البدء في استخدام خطوط أنابيب CI / CD من AWS
Anonim

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

ما هو CI / CD؟

التكامل المستمر والنشر المستمر (CI / CD) هو كل شيء عن إجراء تحديثات متكررة (يوميًا غالبًا) للكود ، وإنشاء إصدارات جديدة واختبارها ، وإدخال التغييرات على خوادم الإنتاج بسرعة وكفاءة.

إنه مصطلح واسع جدًا يلخص جوهر ثقافة DevOps - مما يبسط تدفق الشفرة الجديدة من عقول مطور البرامج لديك إلى خوادمك.عادة ، يتم تنفيذ CI / CD باستخدام مجموعة أدوات تسمى خط الأنابيب ، وهي مجموعة من الأدوات التي تعمل على أتمتة العملية بأكملها من المصدر إلى النشر.

هذا ما توفره AWS مع أدوات CodeSuite الخاصة بهم ، وهم في مكان جيد بشكل خاص لتنفيذ مثل هذا الخط ، حيث ستعمل عادةً على تشغيل خوادم الإنتاج الخاصة بك على EC2 ، مما يجعل مرحلة النشر أسهل بكثير وجيدة متكامل.

أدوات CodeSuite من AWS

يتكون CodeSuite من عدة أدوات مختلفة. يبدأ بـ CodeCommit ، خدمة التحكم بالمصادر المدارة من AWS. إنها أكثر فاعلية وأقل ثراءً من المنافسة ، ولكن من السهل إعداد Git بأجهزة تحكم عن بُعد متعددة يمكنك استخدامها أيضًا إذا كنت تخطط لاستخدام بقية خط الأنابيب. يحتوي CodeCommit على فئة مجانية سخية جدًا ، لذا لن تتحمل على الأرجح رسومًا كثيرة مقابل ذلك.

يأتي بعد ذلك CodeBuild ، الذي يأخذ التحكم في المصدر من CodeCommit (أو GitHub / BitBucket) ويبني من المصدر ، ويقوم بتشغيل أي اختبارات تقدمها في هذه العملية.يستخدم هذا خادم EC2 للبناء ، والذي يجب أن تدفع مقابله أثناء تشغيل الإصدار. يمكن أن تتطلب المشاريع المعقدة آلة قوية لبناءات سريعة.

بمجرد اكتمال البناء ، يكون تطبيقك جاهزًا للنشر. يتم التعامل مع هذه المرحلة مع CodeDeploy ؛ تقوم بإنشاء "مجموعة نشر" ، والتي يمكن أن تحتوي على أي عدد من مثيلات EC2 أو مجموعات القياس التلقائي الكاملة. هذا هو المكان الذي يتألق فيه مسار AWS حقًا.

باستخدام CodeDeploy ، يمكنك ضبط كيفية معالجة النشر - هناك إعدادات مسبقة للجميع مرة واحدة ونصف المجموعة و 10٪ كل بضع دقائق وغير ذلك الكثير ، وكلها مصممة لتقليل وقت تعطل التطبيق بسبب غير متوقع البق في الإنتاج. يعد تحديث جميع الخوادم تلقائيًا أمرًا رائعًا بدرجة كافية ، ولكن يمكن لـ CodeDeploy الاتصال بميزان التحميل الخاص بك وخفض حركة المرور إلى الطبعات قيد التحديث. إلى جانب إستراتيجية طرح متداخلة لضمان الحد الأدنى من المضيفين الأصحاء ، فإن هذا يجعل تحديثات الإنتاج خالية من الإجهاد.

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

كيفية إعداد خط أنابيب

أولاً ، تحتاج إلى إدخال الكود الخاص بك إلى CodeCommit. نوصي بإعداد CodeCommit كجهاز تحكم عن بعد منفصل للإصدار جنبًا إلى جنب مع التحكم الأساسي بالمصادر. إذا كنت تستخدم Github أو BitBucket ، فيمكنك الاتصال مباشرة بالمستودع الخاص بك بدلاً من ذلك ، ولكن CodeCommit هو حل AWS بالكامل ويمكّنك من إدارة الوصول التنظيمي إلى تحديثات الخادم من خلال وحدة تحكم IAM.

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

تحتاج كل مرحلة من مراحل خط الأنابيب إلى بعض التكوين. الأولى هي المرحلة المصدر ، والتي تتصل بـ CodeCommit و Github و BitBucket.يتطلب الأخيران ربط حساباتك عبر OAuth ، لكن CodeCommit يتصل مباشرة. اختر المستودع الذي تستخدمه ، وفرع الإصدارات. إذا كنت تستخدم CodeCommit كجهاز تحكم عن بعد ثانوي ، فربما تختار الرئيسي هنا ، ولكن إذا كنت تستخدم موفرًا تابعًا لجهة خارجية ، فقد ترغب في إعداد فرع إصدار منفصل.

مرحلة مصدر CodePipeline
مرحلة مصدر CodePipeline

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

بعد ذلك ، مرحلة البناء. يدعم CodePipeline Jenkins و CodeBuild المدمج في كود البناء. إذا كنت تستخدم Jenkins بالفعل للبناء ، فيجب عليك تثبيت المكون الإضافي CodePipeline لتوصيله بـ AWS. بخلاف ذلك ، يمكنك إعداد CodeBuild بالنقر فوق "إنشاء مشروع" لفتح مربع حوار.

مرحلة بناء خط الترميز
مرحلة بناء خط الترميز

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

المرحلة التالية هي النشر. يدعم CodePipeline عددًا قليلاً من خيارات النشر المختلفة ؛ وعلى وجه الخصوص ، إذا كنت تستخدم AWS CloudFormation أو Elastic Container Service ، فيمكنك نشر التحديثات مباشرة إلى هؤلاء. لعمليات النشر العامة لـ EC2 و Lambda ، تحتاج إلى استخدام CodeDeploy.

ضمن أدوات المطور ، CodePipeline ، خطوط الأنابيب ، اختر CodeDeploy لإضافة مرحلة نشر
ضمن أدوات المطور ، CodePipeline ، خطوط الأنابيب ، اختر CodeDeploy لإضافة مرحلة نشر

يتطلب CodeDeploy أيضًا الكثير من التكوين ، لذا يمكنك قراءة دليلنا الكامل لإعداده. باختصار ، تقوم بإنشاء مجموعة نشر تتكون من خوادم EC2 الخاصة بك ، أو مجموعة Auto-Scaling ، أو وظائف Lambda ، وتختار تكوين نشر - كل ذلك مرة واحدة ، ونصف مرة واحدة ، وما إلى ذلك.تتعامل CodeDeploy مع كل شيء آخر ، وتعديل موازن التحميل بحيث لا يتم توجيه حركة المرور لتحديث الخوادم ، وتحافظ دائمًا على عدد معين من المضيفات السليمة ، لذلك لا تتوقف خدمتك أبدًا عن التحديثات.

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

بمجرد إنشاء خط الأنابيب ، فإنه يقوم بتشغيل أول بناء تلقائيًا. إذا واجهت أي أخطاء في الإصدار ، فإن خط الأنابيب يتوقف ولن يتم تحديث خوادمك.

إصدار خط الشفرة
إصدار خط الشفرة

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

يمكنك العودة وتحرير خط الأنابيب في أي وقت ، أو تعديل تكوينات CodeBuild أو CodeDeploy. إذا كنت تواجه أخطاء في الإصدار ، فأنت بحاجة للتأكد من أن ملف buildspec الخاص بك يتعامل مع كل شيء بشكل صحيح.

موضوع شعبي