JET School

CI/CD nədir?

CI/CD, müasir proqram təminatı inkişafında istifadə olunan avtomatlaşdırılmış və çevik bir yanaşmadır. Bu termin iki əsas konsepsiyanı əhatə edir:

  • CI — Continuous Integration (Davamlı İntegrasiya)
  • CD — Continuous Delivery və ya Continuous Deployment (Davamlı Çatdırılma və ya Davamlı Yerləşdirmə)

Bu yanaşmanın əsas məqsədi proqram təminatının hazırlanmasını, test olunmasını və yerləşdirilməsini avtomatlaşdırmaq, sürətləndirmək və daha etibarlı hala gətirməkdir.

1. Continuous Integration (CI) — Davamlı İntegrasiya nədir?

CI — proqramçılar yazdıqları kodu tez-tez (gündə bir neçə dəfə belə) mərkəzi repozitoriyaya göndərirlər (məsələn, Git). Hər bir "commit" və ya "merge" hadisəsindən sonra avtomatik olaraq:

  • kod yığılır (build edilir),
  • testlər işə düşür (unit, integration testlər),
  • kodun səhv olub-olmadığı müəyyən edilir.

Məqsəd:

Kod dəyişiklərinin tez-tez yoxlanması və birləşdirilməsi, beləliklə gələcəkdə böyük problemlərin qarşısını almaq.

CI olmadan: Proqramçılar kodlarını aylarla lokal saxlayar, birləşdirəndə böyük problemlər yaranar.

CI ilə: Dəyişikliklər real vaxtda test edilir və daha tez aşkarlanır.

2. Continuous Delivery (CD) — Davamlı Çatdırılma nədir?

Continuous Delivery — CI-dən sonra gələn mərhələdir. Bu mərhələdə test edilmiş və doğrulanmış kod avtomatik olaraq yerləşdirməyə hazır hala gətirilir, lakin yerləşdirmə (deployment) hələ əl ilə təsdiqlənə bilər.

  • Kod testdən keçdikdən sonra staging və ya test mühitlərinə yerləşdirilir.
  • Oradan isə bir kliklə production mühitinə göndərilə bilər.

3. Continuous Deployment (CD) — Davamlı Yerləşdirmə nədir?

Bu, Continuous Delivery-nin bir addım da irəli səviyyəsidir.

Continuous Deployment prosesində testləri uğurla keçən kod avtomatik şəkildə production mühitinə yerləşdirilir — insan müdaxiləsi olmadan.

Yəni:

Kod yazılır → test edilir → yerləşdirilir → istifadəçi sistemdəki yeniliyi dərhal görür.

CI/CD sisteminin üstünlükləri:

  • Tez-tez yeniləmə imkanı — Kod dəyişikləri dərhal istifadəçiyə çatır.
  • Avtomatlaşdırma və sürət — Manual proseslər aradan qaldırılır.
  • Azaldılmış risklər — Hər dəyişiklik test olunur, səhvlər erkən aşkar edilir.
  • Müştəri məmnuniyyəti — Yeni funksiyalar və düzəlişlər daha tez istifadəyə verilir.
  • Davamlı inkişaf mədəniyyəti — Komandada əməkdaşlıq və məsuliyyət artır.

CI/CD alətləri:

  • GitHub Actions
  • GitLab CI/CD
  • Jenkins
  • CircleCI
  • Bitbucket Pipelines
  • Azure DevOps
  • Argo CD (GitOps əsaslı yerləşdirmə üçün)

Nümunə ssenari:

Təsəvvür edin, siz e-ticarət saytında yeni "kampaniya" funksiyası əlavə etdiniz.

CI/CD sisteminiz belə işləyəcək:

  1. Kodu yazıb git push etdiniz.
  2. CI mərhələsi: Kod avtomatik test olundu — uğurlu!
  3. CD mərhələsi: Kod avtomatik test mühitinə yerləşdirildi.
  4. Continuous Deployment varsa — production mühitinə avtomatik yerləşdirildi.
  5. Müştəriləriniz funksiyanı dərhal görür!

Nəticə

CI/CD, proqram təminatını daha sürətli, təhlükəsiz və etibarlı şəkildə inkişaf etdirmək və yerləşdirmək üçün DevOps-un əsas sütunlarından biridir. O, komandalar arasında əməkdaşlığı yaxşılaşdırır, keyfiyyəti artırır və bazara çıxma vaxtını (time-to-market) azaldır. Müasir proqram inkişafında CI/CD artıq bir üstünlük deyil, zərurətdir.

IT sahəsini dərindən öyrənmək üçün kurslarımıza qoşulun. Ətraflı məlumat almaq üçün sorğu göndərin!