درک ادغام مداوم و استقرار مداوم

شنیدن CI / CD اما مطمئن نیستید که در آن چیست?


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

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

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

اگر تا به حال در این شرایط بوده اید ، قبول خواهید کرد که می تواند درد باشد – هیچ کس مایل نیست دوست دارد روز کاری خود را اینگونه بگذراند.

راه حل چیست?

ادغام مداوم

https://www.youtube.com/watch؟v=HnWuIjUw_Q8

برای جلوگیری از سناریوهایی که در بالا بیان کردم؛ تیم های مهندسی می توانند رویه ای بنامند را اتخاذ کنند ادغام مداوم – همانطور که از نام آن پیداست ، این شامل ادغام مداوم تغییرات کدهای ایجاد شده توسط توسعه دهندگان به شعبه / مخزن مشترک است. کدهایی که باید در آن ادغام شود باید از یک آزمایش تأیید شده اطمینان حاصل شود که باعث خراب شدن برنامه نمی شود. این تنها وقتی تست می گذرد که یکپارچه شده است

برای درک این موضوع ، بگذارید یک سناریوی از زندگی واقعی را تصور کنیم که تیمی از 10 توسعه دهنده وجود دارد. این توسعه دهندگان شعبه ای را به صورت محلی ایجاد می کنند که در آن کد هایی را برای اجرای برخی از ویژگی ها می نویسند. آنها به جای ارسال درخواست های کشش هنگامی که تماماً با این ویژگی انجام می شوند ، تصمیم می گیرند که تغییرات کمی را ارسال کنند. نمونه ای از چنین تغییراتی ایجاد یک مودال جدید خواهد بود ، با فرض اینکه توسعه دهنده در حال کار روی یک ویژگی است که به کاربران امکان می دهد تکالیف شخصی را در برنامه مدیریت کنند. به جای اینکه منتظر بمانید تا ویژگی کار تمام شود ، یک الگوی ادغام مداوم را رعایت کنید ، توسعه دهنده این تغییر کوچک را فشار می دهد (وقتی که با آنچه در حال کار است مقایسه می شود) و یک درخواست کشش برای ادغام در کد ایجاد می کند.

قبل از ادغام این تغییر جدید ، باید یک سری آزمایشات انجام شود.

تیم های مهندسی نرم افزار از ابزارهایی مانند استفاده می کنند Travis CI برای ایجاد این فرایندها و آزمونهای ادغام. با ابزارهایی مانند این ، تست ها به صورت خودکار انجام می شوند ، به گونه ای که به محض ارسال درخواست pull به شعبه هدف انتخاب شده در هنگام راه اندازی ، اجرا می شود..

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

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

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

انواع تست ها

در نوشتن تست هایی که بخشی از فرایند ادغام خواهند بود ، در اینجا مواردی وجود دارد که می تواند در این فرآیند اجرا شود:

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

توجه به این نکته ضروری است که نیازی به آزمایش همه این موارد نیست ، زیرا تعداد معدودی از آنها ممکن است قبلاً در کد نوشته شده توسط برنامه نویس پوشانده شوند.

ابزارهای ادغام مداوم

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

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

اگر تازه وارد جنکینز هستید ، پیشنهاد می کنم این کار را انجام دهید البته Udemy برای یادگیری CI با جاوا و دات نت.

استقرار مداوم

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

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

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

برای اینکه یک تیم از تمرین استقرار مداوم بهره مند شود ، باید موارد زیر را در این زمینه داشته باشد.

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

ابزارهای ذکر شده برای ادغام مداوم همچنین امکان تنظیم سیستم استقرار مداوم را در اختیار شما قرار می دهد. تعداد زیادی از آنها وجود دارد که می توانید در ادامه مطالعه کنید.

نتیجه

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

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

اگر یک توسعه دهنده هستید و به یادگیری CI / CD علاقه دارید ، این موضوع را بررسی کنید دوره درخشان.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map