3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

النشر المستمر هو أسلوب خاص في تطوير البرمجيات يُستخدم لتنفيذ الوظائف المختلفة في البرامج بسرعة وأمان وكفاءة.

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

يوصي Skillbox بما يلي: دورة عملية "Mobile Developer PRO".

نذكر: لجميع قراء "Habr" - خصم 10 روبل عند التسجيل في أي دورة Skillbox باستخدام رمز "Habr" الترويجي.

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

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

جنكينز

خادم أتمتة مفتوح المصدر مستقل تمامًا. من المفيد العمل على أتمتة جميع أنواع المهام المتعلقة ببناء البرامج أو اختبارها أو شحنها أو نشرها.

الحد الأدنى لمتطلبات الكمبيوتر:

  • ذاكرة الوصول العشوائي 256 ميجا بايت، مساحة الملف 1 جيجا بايت.

птимально:

  • ذاكرة الوصول العشوائي (RAM) سعة 1 جيجابايت، والقرص الصلب سعة 50 جيجابايت.

للعمل، ستحتاج أيضًا إلى برنامج إضافي - Java Runtime Environment (JRE) الإصدار 8.

تبدو البنية (الحوسبة الموزعة) كما يلي:
3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

Jenkins Server هو تثبيت مسؤول عن استضافة واجهة المستخدم الرسومية، بالإضافة إلى تنظيم البنية وتنفيذها بالكامل.

Jenkins Node/Slave/Build Server - الأجهزة التي يمكن تهيئتها لأداء أعمال البناء نيابة عن السيد (العقدة الرئيسية).

التثبيت لنظام التشغيل Linux

تحتاج أولاً إلى إضافة مستودع Jenkins إلى النظام:

مؤتمر نزع السلاح /تم && wget -q -O — pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - echo 'deb pkg.jenkins.io/debian-stable ثنائي/' | Sudo Tee -a /etc/apt/sources.list.d/je

تحديث مستودع الحزمة:

تحديث sudo apt

تثبيت جينكينز:

sudo apt تثبيت jenkins

بعد ذلك، سيكون Jenkins متاحًا في النظام عبر المنفذ الافتراضي 8080.

للتحقق من الوظيفة، تحتاج إلى فتح العنوان في المتصفح مؤسسة الكوثر:8080. سيطالبك النظام بعد ذلك بإدخال كلمة المرور الأولية للمستخدم الجذر. توجد كلمة المرور هذه في الملف /var/lib/jenkins/secrets/initialAdminPassword.

الآن أصبح كل شيء جاهزًا للبدء، ويمكنك البدء في إنشاء تدفقات CI/CD. تبدو الواجهة الرسومية لمنضدة العمل كما يلي:

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

نقاط قوة جنكينز:

  • قابلية التوسع التي توفرها البنية الرئيسية/التابعة؛
  • توفر REST XML/JSON API؛
  • القدرة على توصيل عدد كبير من الملحقات بفضل المكونات الإضافية؛
  • مجتمع نشط ومتطور باستمرار.

سلبيات:

  • لا توجد كتلة تحليلية.
  • ليست واجهة سهلة الاستخدام للغاية.

TeamCity

التطوير التجاري من JetBrains. الخادم جيد مع إعداد بسيط وواجهة ممتازة. يحتوي التكوين الافتراضي على عدد كبير من الوظائف، ويتزايد عدد المكونات الإضافية المتاحة باستمرار.

يتطلب Java Runtime Environment (JRE) الإصدار 8.

متطلبات أجهزة الخادم غير حرجة:

  • ذاكرة الوصول العشوائي - 3,2 جيجابايت؛
  • المعالج - ثنائي النواة، 3,2 جيجا هرتز؛
  • قناة اتصال بسعة 1 جيجابايت/ثانية.

يتيح لك الخادم تحقيق أداء عالي:

  • 60 مشروعًا مع 300 تكوين بناء؛
  • تخصيص 2 ميجابايت لسجل البناء؛
  • 50 وكيل بناء؛
  • القدرة على العمل مع 50 مستخدمًا في إصدار الويب و30 مستخدمًا في IDE؛
  • 100 اتصال لـ VCS خارجي، عادةً ما يكون بالقوة والتخريب. متوسط ​​وقت التغيير هو 120 ثانية؛
  • أكثر من 150 تعديلًا يوميًا؛
  • العمل مع قاعدة البيانات على خادم واحد؛
  • إعدادات عملية خادم JVM: -Xmx1100m -XX:MaxPermSize=120m.

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

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

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

التثبيت لنظام التشغيل Linux

لتثبيت TeamCity يدويًا باستخدام حاوية Tomcat servlet، يجب عليك استخدام أرشيف TeamCity: TeamCity .tar.gz. تحميل يمكنك الحصول عليها من هنا.

القطران -xfz TeamCity.tar.gz

/bin/runAll. ش [بدء|إيقاف]

عند البدء لأول مرة، تحتاج إلى تحديد نوع قاعدة البيانات التي سيتم تخزين بيانات التجميع فيها.

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

يتم تشغيل التكوين الافتراضي مؤسسة الكوثر:8111/ مع وكيل بناء مسجل واحد يعمل على نفس جهاز الكمبيوتر.

نقاط قوة تيم سيتي:

  • خطوه سهله؛
  • واجهة سهلة الاستخدام.
  • عدد كبير من الوظائف المضمنة.
  • الدعم؛
  • هناك واجهة برمجة تطبيقات RESTful؛
  • توثيق جيد؛
  • أمن جيد.

سلبيات:

  • التكامل المحدود؛
  • هذه أداة مدفوعة.
  • مجتمع صغير (والذي ينمو).

GoCD

مشروع مفتوح المصدر يتطلب Java Runtime Environment (JRE) الإصدار 8 للتثبيت والتشغيل.

متطلبات النظام:

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

وكيل:

  • ذاكرة الوصول العشوائي - 128 ميجابايت على الأقل، والمزيد هو الأفضل؛
  • المعالج - 2 جيجا هرتز على الأقل.

يضمن الخادم تشغيل الوكلاء ويوفر واجهة مريحة للمستخدم:

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

المراحل/الوظائف/المهام:

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

التثبيت لنظام التشغيل Linux

صدى "ديب download.gocd.org /” | سودو تي /etc/apt/sources.list.d/gocd.list

حليقة download.gocd.org/GOCD-GPG-KEY.asc | سودو الرابطة بين مفتاح إضافة -
add-apt-repository ppa:openjdk-r/ppa

الرابطة بين الحصول على التحديث

apt-get install -y openjdk-8-jre

apt-get install go-server

apt-get install go-agent

/etc/init.d/go-server [بدء|إيقاف|الحالة|إعادة تشغيل]

/etc/init.d/go-agent [بدء|إيقاف|الحالة|إعادة تشغيل]

افتراضيًا، يتم تشغيل GoCd مؤسسة الكوثر: 8153.

نقاط قوة GoCd:

  • مفتوح المصدر؛
  • التثبيت والتكوين البسيط ؛
  • توثيق جيد؛

  • واجهة مستخدم رائعة:

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

  • القدرة على إظهار مسار نشر GoCD خطوة بخطوة في عرض واحد:

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

  • عرض ممتاز لهيكل خط الأنابيب:

3 أدوات شائعة لتنظيم النشر المستمر (Continously Deployment)

  • تعمل GoCD على تحسين سير عمل القرص المضغوط في البيئات السحابية الأكثر شيوعًا بما في ذلك Docker وAWS؛
  • تتيح الأداة إمكانية تصحيح المشكلات في المسار، حيث يتم تتبع كل تغيير بدءًا من الالتزام وحتى النشر في الوقت الفعلي.

سلبيات:

  • هناك حاجة إلى وكيل واحد على الأقل؛
  • لا توجد وحدة تحكم لعرض جميع المهام المكتملة؛
  • لتنفيذ كل أمر، تحتاج إلى إنشاء مهمة واحدة لتكوين خط الأنابيب؛
  • لتثبيت البرنامج المساعد، تحتاج إلى نقل ملف .jar إلى /plugins/external وأعد تشغيل الخادم؛
  • مجتمع صغير نسبيا.

كاستنتاج

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

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

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

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

يوصي Skillbox بما يلي:

المصدر: www.habr.com

إضافة تعليق