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