GitLab CI/CD

CI/CD گیت لب چیست و چه ویژگی هایی دارد؟

CI/CD گیت لب چیست و چه ویژگی هایی دارد؟

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

  • Continuous Integration یا (CI)
  • Continuous Delivery یا (CD)
  • Continuous Deployment یا (CD)

CI مخفف عبارت Continuous Integration، به معنی یکپارچه سازی مداوم میباشد. CI ها، با انتقال تکه کدهای کوچک به پایگاه کد برنامه های میزبانی یا هاست شده در یک مخزن Git، کار میکنند و در هر بار انتقال یک Pipeline از اسکریپت ها برای ساخت، تست و معتبرسازی تغییرات کد قبل از merge کردن آنها به branch اصلی، راه اندازی و اجرا میشود.

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

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

مفاهیم و اصطلاحات گیت لب CI/CD

گیت لب CI/CD برای توصیف، اجرا و توسعه محصولات کاربران از اصطلاحات و مفاهیم زیر استفاده میکند:

Pipelines : ساختار دهی پروسه های CI/CD از طریق Pipeline ها.

CI/CD variables : استفاده مجدد از متغیرهای مبتنی بر یک جفت کلید variable/value.

Environments : توسعه برنامه های ساخته شده در محیط های مختلفی مثل staging و production.

Job artifacts : خروجی، کاربرد و استفاده مجدد از job artifact ها.

Cache dependencies : کش کردن dependency ها برای داشتن یک اجرای سریع تر.

GitLab Runner : پیکربندی Runner های شخصی برای اجرای اسکریپت ها.

PipeLine efficiency : پیکربندی PipeLine ها برای اجرای سریع و کارآمد.

Test cases : پیکربندی PipeLine ها برای اجرای سریع و کارآمد.

گزینه های پیکربندی گیت لب CI/CD

گیت لب CI/CD، از آپشن و گزینه های پیکربندی بی شماری پشتیبانی میکند که در ادامه چند مورد از آنها را به طور خلاصه بررسی میکنیم:

Schedule Pipelines : زمان بندی PipeLine ها برای اجرا در زمان های مورد نیاز.

Custom path for .gitlab-ci.yml : تعریف یک مسیر سفارشی برای فایل پیکربندی CI/CD.

Git submodules for CI/CD : پیکربندی Job ها برای استفاده از زیر ماژول های گیت.

SSH keys for CI/CD : استفاده از کلیدهای SSH در pipelineهای CI.

Pipeline triggers : همگام کردن PipeLine ها از طریق API.

Pipelines for Merge Requests : طراحی یک ساختار pipeline برای اجرای یک pipeline در merge request ها.

Integrate with Kubernetes clusters : اتصال پروژه به موتور kubernetes گوگل (GKE) یا یک kubernetes cluster موجود.

Optimize GitLab and GitLab Runner for large repositories : استراتژی های سفارش شده برای کنترل مخازن بزرگ و گسترده.

gitlab-ci.yml full reference. : تمام ویژگی هایی که میتوان با گیت لب CI/CD استفاده کرد.

نکته : توجه داشته باشید که عملیات خاص فقط با توجه به مجوزهای user و job میتوانند انجام شوند.

مجموعه ویژگی های گیت لب CI/CD

جهت پیکربندی راحت تر ویژگی ها برای یک سری اهداف خاص، از گیت لب CI/CD گسترده استفاده میشود که در ادامه این ویژگی ها را بر اساس مراحل DevOps به طور خلاصه بررسی میکنیم:

ویژگی Configure یا پیکربندی

Auto DevOps : تنظیم تمام مراحل برنامه.

ویژگی Verify یا تایید کردن

Browser Performance Testing : تعیین سریع تاثیر عملکرد مرورگر در تغییرات کد در حال انتظار.

CI services: پیوند یا لینک Docker container ها با تصاویر اصلی.

Code Quality : آنالیز کیفیت سورس کد.

ویژگی Release یا انتشار

Auto Deploy : توسعه برنامه به یک محیط تولید درون یک دسته Kubernetes.

Building Docker images : حفظ پروژه های مبتنی بر داکر با استفاده از گیت لب CI/CD

Deploy Boards : بررسی سلامت و وضعیت هر محیط CI/CD در حال اجرا در Kubernetes.

GitLab Pages : گسترش وب سایت های استاتیک.

ویژگی secure یا امنیت

Container Scanning : بررسی Docker container ها برای شناسایی نقاط ضعف.

Dependency Scanning : تحلیل و بررسی dependency ها برای شناسایی نقاط ضعف.

License Compliance : جست و جوی مجوزهای dependency ها.

Security Test reports  : بررسی نقاط ضعف برنامه.

بستن