3 ابزار محبوب برای سازماندهی استقرار مداوم (استقرار مستمر)
استقرار مستمر یک رویکرد ویژه در توسعه نرم افزار است که برای اجرای سریع، ایمن و کارآمد عملکردهای مختلف در نرم افزار استفاده می شود.
ایده اصلی ایجاد یک فرآیند خودکار قابل اعتماد است که به توسعه دهنده اجازه می دهد تا محصول نهایی را به سرعت به کاربر تحویل دهد. در همان زمان، تغییرات ثابتی در تولید ایجاد می شود - به این خط لوله تحویل مداوم (CD Pipeline) می گویند.
یادآوری می کنیم:برای همه خوانندگان "Habr" - تخفیف 10 روبل هنگام ثبت نام در هر دوره Skillbox با استفاده از کد تبلیغاتی "Habr".
برای کنترل جریان، می توانید از طیف گسترده ای از ابزارها، از جمله پولی و کاملا رایگان استفاده کنید. این مقاله سه مورد از محبوب ترین راه حل ها را در بین توسعه دهندگان شرح می دهد که می تواند برای هر برنامه نویسی مفید باشد.
جنکینز
سرور اتوماسیون متن باز کاملا مستقل. برای خودکار کردن انواع وظایف مربوط به ساخت، آزمایش، حمل و نقل یا استقرار نرم افزار ارزش کار کردن با آن را دارد.
حداقل مورد نیاز کامپیوتر:
256 مگابایت رم، 1 گیگابایت فضای فایل.
بهینه:
1 گیگابایت رم، 50 گیگابایت هارد.
برای کار، به نرم افزار اضافی نیز نیاز دارید - Java Runtime Environment (JRE) نسخه 8.
معماری (محاسبات توزیع شده) به این صورت است:
سرور جنکینز نصبی است که مسئولیت میزبانی رابط کاربری گرافیکی و همچنین سازماندهی و اجرای کل ساخت را بر عهده دارد.
Jenkins Node/Slave/Build Server - دستگاه هایی که می توانند برای انجام کار ساخت از طرف Master (نود اصلی) پیکربندی شوند.
پس از این، جنکینز از طریق درگاه پیش فرض 8080 در سیستم در دسترس خواهد بود.
برای بررسی عملکرد، باید آدرس را در مرورگر باز کنید localhost را:8080. سپس سیستم از شما می خواهد که رمز عبور اولیه را برای کاربر root وارد کنید. این رمز عبور در فایل /var/lib/jenkins/secrets/initialAdminPassword قرار دارد.
اکنون همه چیز آماده است، می توانید شروع به ایجاد جریان های CI/CD کنید. رابط گرافیکی میز کار به شکل زیر است:
نقاط قوت جنکینز:
مقیاس پذیری ارائه شده توسط معماری 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 ثانیه است.
الزامات عامل بر اساس اجرای مجموعه ها است. وظیفه اصلی سرور نظارت بر همه عوامل متصل و توزیع مجموعه های صف به این عوامل بر اساس الزامات سازگاری و گزارش نتایج است. Agent ها در انواع سیستم عامل ها و سیستم عامل ها، به علاوه یک محیط از پیش پیکربندی شده وجود دارند.
تمام اطلاعات مربوط به نتایج ساخت در پایگاه داده ذخیره می شود. در درجه اول این تاریخچه و سایر داده های مشابه، تغییرات VCS، عوامل، صف های ساخت، حساب های کاربری و مجوزها است. پایگاه داده فقط شامل لاگ های ساخت و مصنوعات نمی شود.
به طور پیش فرض GoCd روشن اجرا می شود localhost را: 8153.
نقاط قوت GoCd:
متن باز؛
نصب و پیکربندی ساده؛
مستندات خوب؛
رابط کاربری عالی:
توانایی نمایش گام به گام مسیر استقرار GoCD در یک نما:
نمایش عالی ساختار خط لوله:
GoCD گردش کار CD را در محبوب ترین محیط های ابری از جمله Docker، AWS بهینه می کند.
این ابزار اصلاح مشکلات در خط لوله را امکان پذیر می کند، که برای آن هر تغییری از تعهد به استقرار در زمان واقعی ردیابی می شود.
منفی:
حداقل یک نماینده مورد نیاز است.
هیچ کنسولی برای نمایش تمام کارهای انجام شده وجود ندارد.
برای اجرای هر دستور، باید یک وظیفه برای پیکربندی خط لوله ایجاد کنید.
برای نصب افزونه، باید فایل jar را به /plugins/external منتقل کنید و سرور را مجددا راه اندازی کنید.
جامعه نسبتا کوچک
به عنوان نتیجه گیری
اینها فقط سه ابزار هستند، در واقع ابزارهای بسیار بیشتری وجود دارند. انتخاب دشوار است، بنابراین قطعاً باید به جنبه های اضافی توجه کنید.
کد منبع باز این ابزار درک چیستی آن را ممکن می کند، به علاوه ویژگی های جدید را سریعتر اضافه می کند. اما اگر چیزی جواب نداد، باید فقط به خودتان و کمک جامعه تکیه کنید. ابزارهای پولی پشتیبانی می کنند که گاهی اوقات می تواند حیاتی باشد.
اگر امنیت اولویت اصلی شماست، ارزش کار با یک ابزار محلی را دارد. اگر نه، پس انتخاب راه حل SaaS گزینه خوبی است.
و در نهایت، برای اطمینان از یک فرآیند استقرار مستمر واقعاً مؤثر، باید معیارهایی را ایجاد کنید که ویژگیهای آن به شما امکان میدهد دامنه ابزارهای موجود را محدود کنید.