مرجع: فرآیند ادغام مداوم چگونه کار می کند

امروز ما به تاریخچه این اصطلاح نگاه می کنیم، در مورد مشکلات پیاده سازی CI بحث می کنیم و چندین ابزار محبوب را ارائه می دهیم که به شما کمک می کند تا با آن کار کنید.

مرجع: فرآیند ادغام مداوم چگونه کار می کند
/flickr/ آلتوگ کاراکوچ / CC BY / عکس اصلاح شد

مدت

یکپارچه سازی پیوسته رویکردی برای توسعه برنامه است که شامل ساخت مکرر پروژه و آزمایش کد است.

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

اصطلاح Continuous Integration اولین بار در سال 1991 ظاهر شد. توسط سازنده زبان UML معرفی شد گریدی بوچ (گریدی بوچ). مهندس مفهوم CI را به عنوان بخشی از تمرین توسعه خود معرفی کرد - روش بوچ. این به معنای اصلاح تدریجی معماری هنگام طراحی سیستم های شی گرا بود. Gradi هیچ الزاماتی را برای یکپارچه سازی مداوم توصیف نکرد. اما بعداً در کتاب خود "تجزیه و تحلیل و طراحی شی گرا با برنامه های کاربردیاو گفت که هدف این روش تسریع در انتشار «نسخه‌های داخلی» است.

داستان

در سال 1996، CI توسط خالقان این روش پذیرفته شد برنامه نویسی افراطی (XP) - کنت بک (کنت بک) و ران جفریس (ران جفریس). ادغام مستمر به یکی از دوازده اصل کلیدی رویکرد آنها تبدیل شد. بنیانگذاران XP الزامات متدولوژی CI را روشن کردند و به نیاز به ساخت پروژه چندین بار در روز اشاره کردند.

در اوایل دهه 2000، یکی از بنیانگذاران اتحاد چابک شروع به ترویج روش ادغام پیوسته کرد. مارتین فاولر (مارتین فاولر). آزمایش های او با CI منجر به اولین ابزار نرم افزاری در این زمینه شد - CruiseControl. این ابزار توسط همکار مارتین، متیو فومل ایجاد شده است.

چرخه ساخت در ابزار به عنوان یک شبح پیاده سازی می شود که به طور دوره ای سیستم کنترل نسخه را برای تغییرات در پایه کد بررسی می کند. راه حل را می توان امروز دانلود کرد - آن توزیع شده توسط تحت مجوز BSD مانند

با ظهور نرم افزار برای CI، شرکت های بیشتری شروع به اتخاذ این عمل کردند. طبق تحقیقات Forrester [صفحه 5 گزارش]، در سال 2009، 86 درصد از پنجاه شرکت فناوری مورد بررسی، از روش های CI استفاده یا پیاده سازی کردند.

امروزه، تمرین یکپارچه سازی مستمر توسط سازمان هایی از صنایع مختلف مورد استفاده قرار می گیرد. در سال 2018، یک ارائه‌دهنده ابر بزرگ، نظرسنجی را در میان متخصصان فناوری اطلاعات از شرکت‌هایی در بخش‌های خدمات، آموزش و امور مالی انجام داد. از شش هزار پاسخ دهندگان، 58 درصد گفتند که از ابزارها و اصول CI در کار خود استفاده می کنند.

چطور کار می کند؟

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

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

مرجع: فرآیند ادغام مداوم چگونه کار می کند

متدولوژی CI تعدادی الزامات را برای توسعه دهندگان ایجاد می کند:

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

مشکلات اجرایی

اولین مشکل هزینه های عملیاتی بالا است. حتی اگر یک شرکت از ابزارهای CI باز استفاده کند (که بعداً در مورد آن صحبت خواهیم کرد)، همچنان باید برای پشتیبانی زیرساخت هزینه کند. با این حال، فناوری های ابری ممکن است راه حل باشد.

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

طبق نظرسنجی ها [صفحه 14 مقاله]، ادغام مستمر بار کارکنان شرکت را (حداقل در ابتدا) افزایش می دهد. آنها باید ابزارهای جدیدی یاد بگیرند و همکاران همیشه در آموزش کمک نمی کنند. بنابراین، شما باید با فریمورک‌ها و خدمات جدید سر و کار داشته باشید.

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

مرجع: فرآیند ادغام مداوم چگونه کار می کند
/flickr/ آنها / CC BY-SA

چه کسی استفاده می کند

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

ادغام مداوم همچنین به شرکت های کوچک کمک می کند و ابزارهای CI نیز توسط سازمان های مالی و بهداشتی استفاده می شود. به عنوان مثال، در Morningstar، خدمات یکپارچه سازی مداوم به اصلاح آسیب پذیری ها 70٪ سریعتر کمک کرد. و پلتفرم پزشکی Philips Healthcare توانست سرعت آزمایش به‌روزرسانی‌ها را دو برابر کند.

ابزارهای

در اینجا چند ابزار محبوب برای CI آورده شده است:

  • جنکینز یکی از محبوب ترین سیستم های CI است. از بیش از هزار پلاگین برای ادغام با VCS مختلف، پلتفرم های ابری و سایر خدمات پشتیبانی می کند. ما همچنین از جنکینز در ابزار 1cloud: استفاده می کنیم در سیستم DevOps ما گنجانده شده است. او به طور مرتب شاخه Git را که برای آزمایش در نظر گرفته شده است بررسی می کند.
  • Buildbot - یک چارچوب پایتون برای نوشتن فرآیندهای یکپارچه سازی مداوم خودتان. راه اندازی اولیه ابزار بسیار پیچیده است، اما این با گزینه های سفارشی سازی گسترده جبران می شود. در میان مزایای چارچوب، کاربران شدت منبع کم آن را برجسته می کنند.
  • کنکور CI سروری از Pivotal است که از کانتینرهای Docker استفاده می کند. Concourse CI با هر ابزار و سیستم کنترل نسخه ادغام می شود. توسعه دهندگان خاطرنشان می کنند که این سیستم برای کار در شرکت هایی با هر اندازه ای مناسب است.
  • Gitlab CI ابزاری است که در سیستم کنترل نسخه GitLab تعبیه شده است. این سرویس در فضای ابری اجرا می شود و از فایل های YAML برای پیکربندی استفاده می کند. مانند Concourse، Gitlab CI اعمال میشود کانتینرهای داکر که به جداسازی فرآیندهای مختلف از یکدیگر کمک می کنند.
  • سفارشی یک سرور CI ابری است که با GitHub، GitLab و BitBucket کار می کند. این پلتفرم به راه اندازی اولیه طولانی نیاز ندارد - فرآیندهای استاندارد CI از پیش نصب شده در Codeship در دسترس هستند. برای پروژه های کوچک (حداکثر 100 ساخت در ماه) و پروژه های متن باز، Codeship به صورت رایگان در دسترس است.

مطالب از وبلاگ شرکت ما:

منبع: www.habr.com

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