راهنما: تحویل مداوم چیست

اوایل ما گفت درباره ادغام پیوسته (CI). بیایید با تحویل مداوم ادامه دهیم. این مجموعه ای از روش های توسعه نرم افزار است. این کمک می کند مطمئن شوید که کد شما برای استقرار آماده است.

راهنما: تحویل مداوم چیست
/Pixabay/ بلوباجی / PL

داستان

عبارت تحویل مداوم را می‌توان در آن مشاهده کرد مانیفست چابک از سال 2001 در ابتدای لیست اصول اولیه: "اولویت حل مشکلات مشتری از طریق تحویل مداوم نرم افزارهای به روز است."

در سال 2010، Jez Humble و David Farley منتشر شدند یک کتاب با تحویل مداوم به گفته نویسندگان، CD مکمل این رویکرد است ادغام مداوم و به شما اجازه می دهد تا تهیه کد برای استقرار را ساده کنید.

پس از انتشار کتاب، این رویکرد شروع به محبوبیت کرد و تنها در عرض چند سال تقریباً مورد پذیرش جهانی قرار گرفت. مطابق با نظر سنجی، که در سال 600 بین بیش از 2014 توسعه دهنده و مدیر فناوری اطلاعات انجام شد، 97 درصد از مدیران فنی و 84 درصد برنامه نویسان با تحویل مداوم آشنا بودند.

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

تحویل مداوم چگونه کار می کند؟

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

نمونه ای از فرآیند تحویل مداوم به این صورت است:

راهنما: تحویل مداوم چیست

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

الزامات زیر بر فرآیند تحمیل می شود:

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

در سی دی ها معمولا استفاده می شود بررسی کدو برای جمع آوری نظرات مشتریان - اصل پرتاب تاریک. یک ویژگی جدید ابتدا برای بخش کوچکی از کاربران منتشر شد - تجربه آنها از تعامل با محصول به یافتن کاستی ها و اشکالاتی که در آزمایش داخلی متوجه نشده بودند کمک می کند.

چه فایده ای دارد

تحویل مستمر به ساده‌سازی استقرار کد کمک می‌کند، که تأثیر مثبتی بر بهره‌وری دارد و احتمال فرسودگی کارمندان را کاهش می‌دهد. در نهایت، این امر هزینه های کلی توسعه را کاهش می دهد. به عنوان مثال، CD به یکی از تیم های HP کمک کرد کاستن چنین هزینه هایی با 40٪.

علاوه بر این، طبق یک مطالعه در سال 2016 (صفحه 28 سند) - شرکت هایی که CD را پیاده سازی کرده اند مشکلات امنیت اطلاعات را 50% سریعتر از کسانی که از این رویکرد استفاده نمی کنند، حل می کنند. تا حدودی می توان این تفاوت را با عملکرد ابزارهای اتوماسیون فرآیند توضیح داد.

مزیت دیگر سرعت انتشار است. تحویل مداوم در استودیوی توسعه فنلاند کمک کرد سرعت مونتاژ کد را 25 درصد افزایش دهید.

مشکلات بالقوه

اولین و اصلی ترین مشکل نیاز به بازسازی فرآیندهای آشناست. برای نشان دادن مزایای رویکرد جدید، ارزش آن را دارد که به تدریج به CD تغییر دهید، نه با کار فشرده ترین برنامه ها.

دومین مشکل احتمالی تعداد زیاد شاخه های کد است. پیامد "شاخه شدن" درگیری های مکرر و از دست دادن بیشتر زمان زیادی است. راه حل ممکن - رویکرد بدون شاخه.

به طور خاص، در برخی از شرکت ها مشکلات اصلی با آزمایش ایجاد می شود - زمان زیادی طول می کشد. نتایج آزمون اغلب باید به صورت دستی تجزیه و تحلیل شود، اما یک راه حل ممکن ممکن است موازی کردن تست ها در مراحل اولیه اجرای CD باشد.

شما همچنین باید کارکنان را برای کار با ابزارهای جدید آموزش دهید - یک برنامه آموزشی مقدماتی باعث صرفه جویی در تلاش و زمان توسعه دهندگان می شود.

راهنما: تحویل مداوم چیست
/flickr/ h.ger1969 / CC BY-SA

ابزارهای

در اینجا چند ابزار باز برای تحویل مداوم وجود دارد:

  • GoCD - سرور برای تحویل مداوم در جاوا و JRuby on Rails. به شما امکان می دهد کل فرآیند تحویل برنامه را کنترل کنید: build-test-release. این ابزار تحت مجوز Apache 2.0 توزیع شده است. می توانید آن را در وب سایت رسمی پیدا کنید راهنمای راه اندازی.
  • کاپیسترانو - چارچوبی برای ایجاد اسکریپت هایی که استقرار برنامه ها را در روبی، جاوا یا PHP خودکار می کند. Capistrano قادر است دستورات را روی یک ماشین راه دور با اتصال به آن از طریق SSH اجرا کند. با سایر ابزارهای یکپارچه سازی و تحویل مداوم، مانند سرور Integrity CI کار می کند.
  • لغزش یک ابزار چند پلتفرمی است که کل چرخه توسعه برنامه را خودکار می کند. Gradle با جاوا، پایتون، C/C++، Scala و غیره کار می‌کند. ادغام با Eclipse، IntelliJ و Jenkins وجود دارد.
  • وزوز - پلت فرم سی دی به زبان Go. پهپاد را می توان در محل یا در فضای ابری مستقر کرد. این ابزار در بالای کانتینرها ساخته شده است و از فایل های YAML برای مدیریت آنها استفاده می کند.
  • اسپیناکر - پلتفرمی برای تحویل مداوم کد در سیستم های چند ابری. مهندسان گوگل که توسط نتفلیکس توسعه داده شد، نقش زیادی در توسعه این ابزار ایفا کردند. دستورالعمل نصب و راه اندازی آن را در وب سایت رسمی پیدا کنید.

آنچه در وبلاگ شرکتی ما بخوانید:

منبع: www.habr.com

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