CI/CD چیست؟


۱۴ اسفند ۱۴۰۰
سی آی / سی دی (CI/CD) چیست؟

CD/CD را می‌توان روشی خودکار برای ارائه مستمر نرم‌افزار در حال توسعه به کاربران نهایی دانست. درک این تعریف در ابتدای کار سخت است اما پس از آشنا شدن با مفاهیمی مانند continuous integration، continuous delivery و continuous deployment بسیار راحت‌تر از قبل می‌توانید بُعدهای مختلف این روش را درک کنید.

CI (Continuous integration) چیست؟

CI فرایندی است که در آن نرم‌افزار ما build شده و تست‌های نرم‌افزاری اعم از unit و integration testها به‌صورت خودکار اجرا می‌شوند.

حتما در توسعه‌ی مدرن نرم‌افزار مشاهده کرده‌اید که برنامه‌نویسان و توسعه‌دهندگان مختلفی در حال اضافه کردن قابلیت‌های جدید و بهبود ساختارهای فعلی یک پروژه هستند. مدیریت چنین پروژه‌هایی با استفاده از یک DVCS مانند Git ساده‌تر می‌شود اما باز هم Merge کردن دستی Branchهای مختلف و بررسی کدها یا رفع Conflict بین تغییرات توسعه‌دهنده‌های مختلف می‌تواند زمان‌بر و بسیار خسته کننده باشد.

حال به‌کمک CI تغییرات توسعه‌دهندگان با سرعت و اطمینان خاطر بیشتری Merge می‌شود و همچنین اگر Conflict در کدها وجود داشته باشد، رفع آن ساده‌تر خواهد بود.

CD (Continuous delivery) چیست؟

پس از CI، نوبت به Continuous delivery می‌رسد. طی این فرایند، release نرم‌افزار نهایی به‌صورت خودکار انجام می‌شود. هدف از continuous delivery این است که همیشه کدهایی داشته باشیم که قابلیت استقرار در حالت Production را داشته باشند.

CD (Continuous deployment) چیست؟

آخرین مرحله‌ی CI/CD pipeline را می‌توانیم Continuous deployment بدانیم که طی این فرایند، برنامه‌ی ما به‌صورت خودکار در محیط Production مستقر می‌شود.

در عمل درصورتی که تست‌ها در فرایند CI به‌طور کامل pass شده باشند و در فرایند Continuous delivery یک نسخه از نرم‌افزار release شده باشد، با اضافه شدن Continuous deployment به این فرایند، تغییرات توسعه‌دهنده در عرض چند دقیقه به‌دست کاربران نهایی می‌رسد.

تفاوت‌های CI و CD

شرح مراحل و نتایج نهایی هر مرحله در CI CD

CI همیشه به Continuous integration اشاره دارد که طی این فرایند، تغییرات جدید اعمال شده در کدها build و تست می‌شود و درصورتی که مشکلی وجود نداشته باشد، کدها Merge خواهند شد.

CD مخفف Continuous delivery و Continuous deployment است که گاها به‌دلیل شباهت این دو مفهوم، به‌جای یکدیگر استفاده می‌شوند. البته هر دو این مفاهیم مراحل بعدی pipeline هستند اما با جدا کردن این دو می‌توانیم محدوده‌ی مشخص‌تری از کارها را برای هرکدام در نظر بگیریم.

در Continuous delivery نسخه‌ای از نرم‌افزار را خواهیم داشت که آماده‌ی استقرار در محیط Production است و در Continuous deployment، نسخه‌ی نهایی نرم‌افزار از ریپازیتوری اصلی در محیط Production مستقر می‌شود. به این شکل پس از مرحله‌ی Continuous deployment، کاربران نهایی می‌توانند به آخرین تغییرات اعمال شده در نرم‌افزار دسترسی داشته باشند.

ابزارهای متداول در CI/CD

ابزارهای CI/CD می‌توانند در ساده‌تر کردن مراحل توسعه، تست و استقرار نرم‌افزار بسیار مفید باشند. Jenkins یکی از شناخته شده ترین ابزارهای متن‌باز برای CI/CD است. این ابزار به‌گونه‌ای طراحی شده که شما می‌توانید از آن برای مدیریت هرچیزی از یک سرور CI ساده تا یک CD hub کامل استفاده کنید.

Tekton Pipelines ابزار دیگری است که می‌توانیم آن را فریم‌ورک CI/CDبرای پلتفرم Kubernetes بدانیم. این ابزار به ما امکان پیاده‌سازی یک cloud-native CI/CD استاندارد بر روی کانتینرها را می‌دهد.

ابزارهای متن‌باز دیگری که می‌توانیم به آن‌ها اشاره داشته باشیم، عبارتند از:

  • Spinnaker: یک پلتفرم CD که به‌کمک آن می توانیم multicloud environments ایجاد کنیم.
  • GoCD: یک سرور CI/CD که بر modeling و visualization متمرکز است.
  • Concourse: ابزاری متن‌بار که کارهای continuous را انجام می‌دهد.
  • Screwdriver: یک build platform که برای CD طراحی شده.

همچنین ممکن است شما نام ابزارهای GitLab، CircleCI، Travis CI، Atlassian Bamboo را نیز شنیده باشید. البته ابزارهای دیگری مانند Ansible، Chef و Puppet یا Docker، rkt و cri-o نیز در DevOps وجود دارند که احتمالا می‌توانند بخشی از یک فرایند CI/CD باشند.

منبع: https://www.redhat.com/en/topics/devops/what-is-ci-cd

برچسب‌ها:

خدمات رایگان لیارا

free liarafree liara

ارسال ۱۰۰ ایمیل تراکنشی رایگان در هر ماه

در سرویس ایمیل لیارا شما می‌توانید تا ۱۰۰ ایمیل رایگان در هر ماه ارسال کنید و فقط برای بیش از آن هزینه پرداخت کنید. (به‌همراه دسترسی SMTP)

هاست رایگان برای انواع وبسایت

تفاوتی ندارد برای وبسایت خود از زبان Node استفاده می‌کنید یا Laravel و Django، در لیارا می‌توانید به صورت کاملا رایگان آن را میزبانی کنید.

هاست رایگان برای دیتابیس‌

دیتابیس‌های MariaDB، PostgreSQL و Redis را فقط با یک کلیک و به‌صورت رایگان تهیه کنید.

سرویس DNS رایگان

به سادگی دامنه‌تان را اضافه کنید و به صورت رایگان رکورد‌های آن را مدیریت کنید.

۱۰۰ هزار تومان اعتبار اولیه

بعد از ثبت نام در لیارا مبلغ ۱۰۰ هزار تومان اعتبار هدیه دریافت می‌کنید که با توجه به ساعتی بودن هزینه سرویس‌ها، می‌توانید تمامی خدمات پولی را برای چندین هفته به‌صورت رایگان استفاده کنید.

۲.۵ گیگابایت فضای ذخیره‌سازی ابری رایگان

۲.۵ گیگابایت Object Storage سازگار با پروتکل S3 با دیسک‌های SSD به‌صورت رایگان دریافت کنید.

توسعه‌دهندگان درباره‌ی ما چه می‌گویند

همراه شما هستیم

در خصوص سفارش یا استفاده از سرویس‌ها سوالی دارید؟

در تمامی روز‌های هفته کنارتان هستیم.

شماره تماس:
۰۲۵-۳۷۸۳۸۹۴۶