النشر المستمر هو أسلوب خاص في تطوير البرمجيات يُستخدم لتنفيذ الوظائف المختلفة في البرامج بسرعة وأمان وكفاءة.
الفكرة الرئيسية هي إنشاء عملية آلية موثوقة تسمح للمطور بتسليم المنتج النهائي للمستخدم بسرعة. في الوقت نفسه، يتم إجراء تغييرات مستمرة على الإنتاج - وهذا ما يسمى خط أنابيب التسليم المستمر (خط أنابيب CD).
نذكر:لجميع قراء "Habr" - خصم 10 روبل عند التسجيل في أي دورة Skillbox باستخدام رمز "Habr" الترويجي.
للتحكم في التدفق، يمكنك استخدام مجموعة واسعة من الأدوات، بما في ذلك المدفوعة والمجانية تمامًا. توضح هذه المقالة ثلاثة من الحلول الأكثر شيوعًا بين المطورين والتي يمكن أن تكون مفيدة لكل مبرمج.
جنكينز
خادم أتمتة مفتوح المصدر مستقل تمامًا. من المفيد العمل على أتمتة جميع أنواع المهام المتعلقة ببناء البرامج أو اختبارها أو شحنها أو نشرها.
الحد الأدنى لمتطلبات الكمبيوتر:
ذاكرة الوصول العشوائي 256 ميجا بايت، مساحة الملف 1 جيجا بايت.
بعد ذلك، سيكون Jenkins متاحًا في النظام عبر المنفذ الافتراضي 8080.
للتحقق من الوظيفة، تحتاج إلى فتح العنوان في المتصفح مؤسسة الكوثر:8080. سيطالبك النظام بعد ذلك بإدخال كلمة المرور الأولية للمستخدم الجذر. توجد كلمة المرور هذه في الملف /var/lib/jenkins/secrets/initialAdminPassword.
الآن أصبح كل شيء جاهزًا للبدء، ويمكنك البدء في إنشاء تدفقات CI/CD. تبدو الواجهة الرسومية لمنضدة العمل كما يلي:
نقاط قوة جنكينز:
قابلية التوسع التي توفرها البنية الرئيسية/التابعة؛
توفر 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 والوكلاء وقوائم انتظار البناء وحسابات المستخدمين والأذونات. لا تتضمن قاعدة البيانات سوى سجلات البناء والتحف.
التثبيت لنظام التشغيل Linux
لتثبيت TeamCity يدويًا باستخدام حاوية Tomcat servlet، يجب عليك استخدام أرشيف TeamCity: TeamCity .tar.gz. تحميل يمكنك الحصول عليها من هنا.
القطران -xfz TeamCity.tar.gz
/bin/runAll. ش [بدء|إيقاف]
عند البدء لأول مرة، تحتاج إلى تحديد نوع قاعدة البيانات التي سيتم تخزين بيانات التجميع فيها.
يتم تشغيل التكوين الافتراضي مؤسسة الكوثر:8111/ مع وكيل بناء مسجل واحد يعمل على نفس جهاز الكمبيوتر.
نقاط قوة تيم سيتي:
خطوه سهله؛
واجهة سهلة الاستخدام.
عدد كبير من الوظائف المضمنة.
الدعم؛
هناك واجهة برمجة تطبيقات RESTful؛
توثيق جيد؛
أمن جيد.
سلبيات:
التكامل المحدود؛
هذه أداة مدفوعة.
مجتمع صغير (والذي ينمو).
GoCD
مشروع مفتوح المصدر يتطلب Java Runtime Environment (JRE) الإصدار 8 للتثبيت والتشغيل.
متطلبات النظام:
ذاكرة الوصول العشوائي - 1 جيجابايت كحد أدنى، والمزيد أفضل؛
المعالج - ثنائي النواة، بتردد أساسي يبلغ 2 جيجا هرتز؛
القرص الصلب - مساحة خالية لا تقل عن 1 جيجابايت.
وكيل:
ذاكرة الوصول العشوائي - 128 ميجابايت على الأقل، والمزيد هو الأفضل؛
المعالج - 2 جيجا هرتز على الأقل.
يضمن الخادم تشغيل الوكلاء ويوفر واجهة مريحة للمستخدم:
المراحل/الوظائف/المهام:
التثبيت لنظام التشغيل Linux
صدى "ديب download.gocd.org /” | سودو تي /etc/apt/sources.list.d/gocd.list
القدرة على إظهار مسار نشر GoCD خطوة بخطوة في عرض واحد:
عرض ممتاز لهيكل خط الأنابيب:
تعمل GoCD على تحسين سير عمل القرص المضغوط في البيئات السحابية الأكثر شيوعًا بما في ذلك Docker وAWS؛
تتيح الأداة إمكانية تصحيح المشكلات في المسار، حيث يتم تتبع كل تغيير بدءًا من الالتزام وحتى النشر في الوقت الفعلي.
سلبيات:
هناك حاجة إلى وكيل واحد على الأقل؛
لا توجد وحدة تحكم لعرض جميع المهام المكتملة؛
لتنفيذ كل أمر، تحتاج إلى إنشاء مهمة واحدة لتكوين خط الأنابيب؛
لتثبيت البرنامج المساعد، تحتاج إلى نقل ملف .jar إلى /plugins/external وأعد تشغيل الخادم؛
مجتمع صغير نسبيا.
كاستنتاج
هذه مجرد ثلاث أدوات، في الواقع هناك العديد من الأدوات الأخرى. من الصعب الاختيار، لذلك تحتاج بالتأكيد إلى الاهتمام بالجوانب الإضافية.
يتيح الكود المفتوح المصدر للأداة فهم ماهيتها، بالإضافة إلى إضافة ميزات جديدة بشكل أسرع. ولكن إذا لم ينجح شيء ما، فعليك الاعتماد فقط على نفسك وعلى مساعدة المجتمع. توفر الأدوات المدفوعة الدعم الذي قد يكون بالغ الأهمية في بعض الأحيان.
إذا كان الأمان هو أولويتك القصوى، فمن المفيد العمل باستخدام أداة محلية. إذا لم يكن الأمر كذلك، فإن اختيار حل SaaS يعد خيارًا جيدًا.
وأخيرًا، من أجل ضمان عملية نشر مستمرة فعالة حقًا، تحتاج إلى صياغة معايير تسمح لك تفاصيلها بتضييق نطاق الأدوات المتاحة.