3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

استقرار مستمر یک رویکرد ویژه در توسعه نرم افزار است که برای اجرای سریع، ایمن و کارآمد عملکردهای مختلف در نرم افزار استفاده می شود.

ایده اصلی ایجاد یک فرآیند خودکار قابل اعتماد است که به توسعه دهنده اجازه می دهد تا محصول نهایی را به سرعت به کاربر تحویل دهد. در همان زمان، تغییرات ثابتی در تولید ایجاد می شود - به این خط لوله تحویل مداوم (CD Pipeline) می گویند.

Skillbox توصیه می کند: دوره عملی "موبایل توسعه دهنده PRO".

یادآوری می کنیم: برای همه خوانندگان "Habr" - تخفیف 10 روبل هنگام ثبت نام در هر دوره Skillbox با استفاده از کد تبلیغاتی "Habr".

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

برای کنترل جریان، می توانید از طیف گسترده ای از ابزارها، از جمله پولی و کاملا رایگان استفاده کنید. این مقاله سه مورد از محبوب ترین راه حل ها را در بین توسعه دهندگان شرح می دهد که می تواند برای هر برنامه نویسی مفید باشد.

جنکینز

سرور اتوماسیون متن باز کاملا مستقل. برای خودکار کردن انواع وظایف مربوط به ساخت، آزمایش، حمل و نقل یا استقرار نرم افزار ارزش کار کردن با آن را دارد.

حداقل مورد نیاز کامپیوتر:

  • 256 مگابایت رم، 1 گیگابایت فضای فایل.

بهینه:

  • 1 گیگابایت رم، 50 گیگابایت هارد.

برای کار، به نرم افزار اضافی نیز نیاز دارید - Java Runtime Environment (JRE) نسخه 8.

معماری (محاسبات توزیع شده) به این صورت است:
3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

سرور جنکینز نصبی است که مسئولیت میزبانی رابط کاربری گرافیکی و همچنین سازماندهی و اجرای کل ساخت را بر عهده دارد.

Jenkins Node/Slave/Build Server - دستگاه هایی که می توانند برای انجام کار ساخت از طرف Master (نود اصلی) پیکربندی شوند.

نصب برای لینوکس

ابتدا باید مخزن جنکینز را به سیستم اضافه کنید:

cd /tmp && 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 update

جنکینز را نصب کنید:

sudo apt نصب جنکینز

پس از این، جنکینز از طریق درگاه پیش فرض 8080 در سیستم در دسترس خواهد بود.

برای بررسی عملکرد، باید آدرس را در مرورگر باز کنید localhost را:8080. سپس سیستم از شما می خواهد که رمز عبور اولیه را برای کاربر root وارد کنید. این رمز عبور در فایل /var/lib/jenkins/secrets/initialAdminPassword قرار دارد.

اکنون همه چیز آماده است، می توانید شروع به ایجاد جریان های CI/CD کنید. رابط گرافیکی میز کار به شکل زیر است:

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

نقاط قوت جنکینز:

  • مقیاس پذیری ارائه شده توسط معماری Master/Slave.
  • در دسترس بودن 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 خارجی، معمولا Perforce و Subversion. میانگین زمان تغییر 120 ثانیه است.
  • بیش از 150 تغییر در روز؛
  • کار با پایگاه داده روی یک سرور؛
  • تنظیمات فرآیند سرور JVM: -Xmx1100m -XX:MaxPermSize=120m.

الزامات عامل بر اساس اجرای مجموعه ها است. وظیفه اصلی سرور نظارت بر همه عوامل متصل و توزیع مجموعه های صف به این عوامل بر اساس الزامات سازگاری و گزارش نتایج است. Agent ها در انواع سیستم عامل ها و سیستم عامل ها، به علاوه یک محیط از پیش پیکربندی شده وجود دارند.

تمام اطلاعات مربوط به نتایج ساخت در پایگاه داده ذخیره می شود. در درجه اول این تاریخچه و سایر داده های مشابه، تغییرات VCS، عوامل، صف های ساخت، حساب های کاربری و مجوزها است. پایگاه داده فقط شامل لاگ های ساخت و مصنوعات نمی شود.

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

نصب برای لینوکس

برای نصب دستی TeamCity با ظرف سرولت Tomcat، باید از آرشیو TeamCity استفاده کنید: TeamCity .tar.gz. دانلود میتوانید این را از اینجا دریافت کنید.

tar -xfz TeamCity.tar.gz

/bin/runAll. sh [شروع|توقف]

هنگامی که برای اولین بار شروع به کار می کنید، باید نوع پایگاه داده ای را انتخاب کنید که داده های اسمبلی در آن ذخیره می شوند.

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

پیکربندی پیش فرض اجرا می شود localhost را:8111/ با یک build agent ثبت شده که روی همان رایانه اجرا می شود.

نقاط قوت TeamCity:

  • راه اندازی آسان؛
  • رابط کاربر پسند؛
  • تعداد زیادی توابع داخلی؛
  • خدمات پشتیبانی؛
  • یک API RESTful وجود دارد.
  • اسناد خوب؛
  • امنیت خوب

منفی:

  • ادغام محدود؛
  • این یک ابزار پولی است.
  • یک جامعه کوچک (که اما در حال رشد است).

GoCD

یک پروژه منبع باز که برای نصب و بهره برداری به Java Runtime Environment (JRE) نسخه 8 نیاز دارد.

سیستم مورد نیاز:

  • رم - حداقل 1 گیگابایت، بیشتر بهتر است.
  • پردازنده - دو هسته ای، با فرکانس هسته 2 گیگاهرتز؛
  • هارد دیسک - حداقل 1 گیگابایت فضای آزاد.

عامل:

  • رم - حداقل 128 مگابایت، بیشتر بهتر است.
  • پردازنده - حداقل 2 گیگاهرتز.

سرور عملکرد عوامل را تضمین می کند و یک رابط کاربری مناسب برای کاربر فراهم می کند:

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

مراحل / مشاغل / وظایف:

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

نصب برای لینوکس

echo "deb download.gocd.org /” | sudo tee /etc/apt/sources.list.d/gocd.list

حلقه download.gocd.org/GOCD-GPG-KEY.asc | sudo apt-key add -
add-apt-repository ppa:openjdk-r/ppa

با apt-get برای بروز رسانی

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 روشن اجرا می شود localhost را: 8153.

نقاط قوت GoCd:

  • متن باز؛
  • نصب و پیکربندی ساده؛
  • مستندات خوب؛

  • رابط کاربری عالی:

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

  • توانایی نمایش گام به گام مسیر استقرار GoCD در یک نما:

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

  • نمایش عالی ساختار خط لوله:

3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)

  • GoCD گردش کار CD را در محبوب ترین محیط های ابری از جمله Docker، AWS بهینه می کند.
  • این ابزار اصلاح مشکلات در خط لوله را امکان پذیر می کند، که برای آن هر تغییری از تعهد به استقرار در زمان واقعی ردیابی می شود.

منفی:

  • حداقل یک نماینده مورد نیاز است.
  • هیچ کنسولی برای نمایش تمام کارهای انجام شده وجود ندارد.
  • برای اجرای هر دستور، باید یک وظیفه برای پیکربندی خط لوله ایجاد کنید.
  • برای نصب افزونه، باید فایل jar را به /plugins/external منتقل کنید و سرور را مجددا راه اندازی کنید.
  • جامعه نسبتا کوچک

به عنوان نتیجه گیری

اینها فقط سه ابزار هستند، در واقع ابزارهای بسیار بیشتری وجود دارند. انتخاب دشوار است، بنابراین قطعاً باید به جنبه های اضافی توجه کنید.

کد منبع باز این ابزار درک چیستی آن را ممکن می کند، به علاوه ویژگی های جدید را سریعتر اضافه می کند. اما اگر چیزی جواب نداد، باید فقط به خودتان و کمک جامعه تکیه کنید. ابزارهای پولی پشتیبانی می کنند که گاهی اوقات می تواند حیاتی باشد.

اگر امنیت اولویت اصلی شماست، ارزش کار با یک ابزار محلی را دارد. اگر نه، پس انتخاب راه حل SaaS گزینه خوبی است.

و در نهایت، برای اطمینان از یک فرآیند استقرار مستمر واقعاً مؤثر، باید معیارهایی را ایجاد کنید که ویژگی‌های آن به شما امکان می‌دهد دامنه ابزارهای موجود را محدود کنید.

Skillbox توصیه می کند:

منبع: www.habr.com

اضافه کردن نظر