استخدام AWS CodePipeline
في هذا البرنامج التعليمي، ستتعلم كيفية إنشاء قناة إصدار برنامج آلي تنشر نموذجًا حيًا من التطبيق. ستنشئ قناة باستخدام AWS CodePipeline وهي خدمة تنشئ التعليمة البرمجية وتختبرها وتنشرها في كل مرة يحدث فيها تغيير في تعليمة برمجية. ستستخدم حسابك على GitHub، أو حاوية Amazon Simple Storage Service (S3) أو مستودع AWS CodeCommit كموقع المصدر للتعليمة البرمجية لنموذج التطبيق. وستستخدم أيضًا AWS Elastic Beanstalk كموقع التوزيع المستهدف لنموذج التطبيق. ستتمكن القناة المكتملة من اكتشاف التغييرات التي تم إجراؤها على مستودع المصدر الذي يحتوي على نموذج التطبيق ثم تحديث النموذج الحي من التطبيق تلقائيًا.
يتيح لك التوزيع المستمر نشر المراجعات على بيئة الإنتاج تلقائيًا دون الحصول على موافقة صريحة من المطور، مما يجعل عملية إصدار البرامج بأكملها تلقائية.
كل شيء تم في هذا البرنامج التعليمي مؤهل للطبقة المجانية.
إدارة مواردك على AWS
تسجيل الدخول إلى وحدة التحكمستحتاج قناة التوزيع المستمر إلى بيئة مستهدفة تحتوي على خوادم افتراضية، أو مثيلات Amazon EC2، حيث سيقوم بنشر عينة التعليمة البرمجية. وستقوم بتجهيز هذه البيئة قبل إنشاء القناة.
أ. لتبسيط عملية إعداد مثيلات EC2 وتكوينها لهذا البرنامج التعليمي، ستقوم بتدوير بيئة نموذج باستخدام AWS Elastic Beanstalk. يتيح لك Elastic Beanstalk استضافة تطبيقات الويب بسهولة دون الحاجة إلى تشغيل الخوادم الظاهرية أو تكوينها أو تشغيلها بنفسك؛ فهو يوفر تلقائيًا البنية التحتية (مثل الخوادم الافتراضية وأجهزة موازن الأحمال، وما إلى ذلك) ويشغل لك هذه البنية (مثل نظام التشغيل واللغة وإطار العمل وخادم الويب والتطبيقات، وما إلى ذلك).
ب. اختر PHP من القائمة المنسدلة، ثم انقر فوق تشغيل الآن.
ملاحظة: إذا كنت قد أنشأت تطبيق Elastic Beanstalk من قبل، فانقر فوق: إنشاء تطبيق جديد في الزاوية العلوية اليمنى. ينبغي تسمية التطبيق وإنشاء بيئة خادم ويب جديدة. حدد PHP كمنصة لك ومثيل واحد كنوع البيئة الخاصة بك. إذا كنت تخطط لتسجيل الدخول عن بُعد إلى المثيلات، فحدد زوج مفتاح. وبخلاف ذلك، اترك القيم الافتراضية للخيارات المتبقية وأنشئ بيئة لقناة توزيع مستمر.
ج. سيبدأ Elastic Beanstalk في إنشاء نموذج بيئة لنشر التطبيق عليها، كما سيقوم بإنشاء مثيل Amazon EC2 ومجموعة أمان وAuto Scaling group وحاوية Amazon S3 وتنبيهات Amazon CloudWatch واسم مجال لتطبيقك.
ملاحظة: سيستغرق إكمال هذه الخطوة بضع دقائق.
في هذه الخطوة، ستسترد نسخة من التعليمة البرمجية لنموذج التطبيق وستختار مصدرًا لاستضافة التعليمة البرمجية. تأخذ القناة التعليمة البرمجية من المصدر ثم تنفذ الإجراءات عليه.
يمكنك استخدام أحد الخيارات الثلاثة كمصدر: مستودع GitHub أو حاوية Amazon S3 أو مستودع AWS CodeCommit. حدد تفضيلاتك واتبع الخطوات أدناه:
في هذه الخطوة، ستنشئ قناة بسيطة وتكونها من خلال إجراءين: المصدر والنشر. ستزود CodePipeline بمواقع مستودع المصدر وبيئة التوزيع.
أ. انقر هنا لفتح وحدة تحكم AWS CodePipeline.
- على صفحة الترحيب، انقر فوق إنشاء قناة.
- إذا كانت هذه هي المرة الأولى التي تستخدم فيها AWS CodePipeline، فستظهر صفحة تمهيدية بدلاً من صفة الترحيب. انقر فوق بدء الاستخدام.
ب. في صفحة الخطوة 1: الاسم:
- اسم القناة: أدخل اسمًا لقناتك، DemoPipeline.
- انقر فوق الخطوة التالية.
ملاحظة: بعد إنشاء القناة، لا يمكنك تغيير اسمها.
ج. في صفحة الخطوة 2: المصدر حدد موقع المصدر الذي حددته واتبع الخطوات أدناه:
د. تتطلب قناة توزيع مستمر فعلية تنفيذ مرحلة إنشاء، حيث يتم تجميع التعليمة البرمجية واختبار الوحدة. يتيح لك CodePipeline توصيل موفر البنية المفضل في القناة. ومع ذلك، ستتخطى مرحلة الإنشاء في هذا البرنامج التعليمي.
- في صفحة الخطوة 3: الإصدار، اختر لا يوجد إصدار.
- انقر فوق الخطوة التالية.
هـ. في صفحة الخطوة 4: بيتا:
- موفر التوزيع: انقر فوق AWS Elastic Beanstalk.
- اسم التطبيق: انقر فوق أول تطبيق Elastic Beanstalk خاص بي.
- اسم البيئة: انقر فوق البيئة الافتراضية.
- انقر فوق الخطوة التالية.
ملاحظة: "بيتا" هو ببساطة الاسم الذي يتم استخدامه بشكل افتراضي لهذه المرحلة من القناة، تمامًا كما كان "المصدر" هو الاسم الذي تم إعطاؤه للمرحلة الأولى من القناة.
و. في صفحة الخطوة 5: دور الخدمة:
- دور الخدمة: انقر فوق إنشاء دور.
- سيُعاد توجيهك إلى صفحة وحدة تحكم IAM التي تصف دور خدمة AWS-CodePipeline-Service التي ستُنشأ لك. انقر فوق السماح
- بعد إنشاء الدور، يتم إرجاعك إلى صفحة الخطوة 5: دور الخدمة حيث تظهر AWS-CodePipeline-Service في اسم دور. انقر فوق الخطوة التالية.
ملاحظة: لا يلزم إنشاء دور الخدمة إلا في المرة الأولى التي تقوم فيها بإنشاء قناة في AWS CodePipeline. إذا كان دور الخدمة مُنشأ بالفعل، فستتمكن من اختياره من قائمة الأدوار المنسدلة. نظرًا لأن القائمة المنسدلة ستعرض كل أدوار خدمة IAM المرتبطة بحسابك، فتأكد من التعرف على الاسم كدور خدمة لـ AWS CodePipeline إذا اخترت اسمًا مختلفًا عن الاسم الافتراضي.
في هذه الخطوة، ستشغل قناتك. وبمجرد إنشاء قناتك، سيبدأ تشغيلها تلقائيًا. أولاً، تكتشف التعليمة البرمجية لنموذج التطبيق في موقع المصدر وتحزم الملفات ثم تنقلها إلى المرحلة الثانية التي حددتها. خلال هذه المرحلة، تمر التعليمة البرمجية على Elastic Beanstalk، الذي يحتوي على مثيل EC2 الذي سيستضيف التعليمة البرمجية. يعالج Elastic Beanstalk نشر التعليمة البرمجية على مثيل EC2.
أ. في صفحة الخطوة 6: المراجعة، راجع المعلومات وانقر فوق إنشاء قناة.
ب. بعد إنشاء القناة، تظهر صفحة حالة القناة ويبدأ تشغيل القناة تلقائيًا. يمكنك عرض رسائل التقدم بالإضافة إلى رسائل النجاح والفشل أثناء تنفيذ القناة لكل إجراء.
للتحقق من تشغيل قناتك بنجاح، لاحظ تقدم القناة أثناء انتقالك عبر كل مرحلة. ستتغير حالة كل مرحلة من مرحلة لا توجد عمليات تنفيذ حتى الآن إلى قيد التقدم، ثم إلى مرحلة ناجحة أو فاشلة. يجب أن تكمل القناة التشغيل الأول في غضون بضع دقائق.
ج. في منطقة الحالة لمرحلة بيتا، انقر فوق AWS Elastic Beanstalk.
د. تُفتح وحدة تحكم AWS Elastic Beanstalk مع تفاصيل عملية التوزيع.
- انقر فوق البيئة التي قمت بإنشائها سابقًا، والتي تسمى البيئة الافتراضية.
هـ. انقر فوق URL الذي يظهر في الجزء العلوي الأيمن من الصفحة لعرض نموذج موقع ويب نشرته.
في هذه الخطوة، ستراجع عينة تعليمة برمجية وتطبيق التغييرات في المستودع. سيكتشف CodePipeline عينة التعليمة البرمجية المحدّثة ثم يبدأ تلقائيًا في نشرها على مثيل EC2 عبر Elastic Beanstalk.
لاحظ أن نموذج صفحة الويب التي نشرتها يشير إلى AWS CodeDeploy، وهي خدمة تشغل عمليات توزيع التعليمة البرمجية تلقائيًا. في CodePipeline، يُعد CodeDeploy بديلاً لاستخدام Elastic Beanstalk لإجراءات التوزيع. سنحدث عينة التعليمة البرمجية، بحيث تشير بشكل صحيح إلى أنك نشرت العينة باستخدام Elastic Beanstalk.
د. عد إلى قناتك في وحدة تحكم CodePipeline. في بضع دقائق، يجب أن ترى تغيير المصدر إلى اللون الأزرق، مما يشير إلى أن القناة قد كشفت عن التغييرات التي أجريتها على مستودع المصدر. وبمجرد حدوث ذلك، ستنقل التعليمة البرمجية المحدّثة تلقائيًا إلى Elastic Beanstalk.
- بعد أن تظهر حالة القناة ناجحة، في منطقة الحالة لمرحلة بيتا، انقر فوق AWS Elastic Beanstalk.
هـ. تُفتح وحدة تحكم AWS Elastic Beanstalk مع تفاصيل عملية التوزيع. حدد البيئة المُنشأة سابقًا، والتي تسمى البيئة الافتراضية.
و. انقر فوق URL الذي يظهر في الجزء العلوي الأيمن من الصفحة لعرض نموذج موقع الويب مرة أخرى. حُدث النص تلقائيًا عبر قناة التوزيع المستمر!
لتجنب الرسوم المستقبلية، ستحذف كل الموارد التي قمت بتشغيلها خلال هذا البرنامج التعليمي، الذي يتضمن القناة وتطبيق Elastic Beanstalk والمصدر الذي قمت بإعداده لاستضافة التعليمة البرمجية.
أ. أولاً، ستحذف قناتك:
- في طريقة عرض القناة، انقر فوق تحرير.
- انقر فوق حذف.
- اكتب اسم القناة وانقر فوق حذف.
ب. ثانيًا، احذف تطبيق Elastic Beanstalk:
- انتقل إلى وحدة تحكم Elastic Beanstalk.
- انقر فوق إجراءات.
- وبعد ذلك، انقر فوق إنهاء تشغيل البيئة.
لقد قمت بإنشاء قناة إصدار برنامج تلقائي بنجاح باستخدام AWS CodePipeline! باستخدام CodePipeline، قمت بإنشاء قناة تستخدم GitHub أو Amazon S3 أو AWS CodeCommit كموقع مصدر للتعليمات البرمجية للتطبيق ثم نشرت التعليمة البرمجية إلى مثيل Amazon EC2 الذي يديره AWS Elastic Beanstalk. ستنشر قناتك التعليمة البرمجية تلقائيًا في كل مرة يتم فيها تغيير تعليمة برمجية. لقد تقدمت خطوة في ممارسة التوزيع المستمر!
الآن بعد أن تعلمت إنشاء قناة بسيطة باستخدام AWS CodePipeline، يمكنك معرفة المزيد من خلال زيارة المصادر التالية.
- أنشئ قناة أكثر تقدمًا مكونة من أربع مراحل باتباع هذا الدليل. تستخدم القناة هذه مستودع GitHub لمصدرك وخادم إصدار Jenkins لتصميم المشروع واختباره، وتطبيق AWS CodeDeploy لنشر التعليمة البرمجية المضمنة على خادم التشغيل المرحلي.
- استخدم بسرعة قناة من أربع مراحل مع خادم إصدار Jenkins من خلال استخدام مجموعة أدوات بدء تشغيل القناة.
- تعرّف على المزيد حول التسليم المستمر.