← Blog'a Dön
TEKNIK

CI/CD Nedir? Surekli Entegrasyon ve Dagitim Rehberi

F. Cagri Bilgehan20 Şubat 20269 dk okuma
CI/CDDevOpsGitHub Actionsotomasyondeployment

CI/CD Nedir? Surekli Entegrasyon ve Dagitim Rehberi

Kod yazdiniz, test ettiniz, sunucuya yuklediniz — ve saat gece 3'te bir sey bozuldu. Manuel deployment, yazilim gelistirmenin en riskli ve zaman alici sureci. CI/CD bu sureci otomatiklestirir ve guvenlestir.

CI/CD Nedir?

CI (Continuous Integration) — Surekli Entegrasyon

Her kod degisikliginin otomatik olarak test edilmesi ve ana dal ile birlestirilmesi.

CD (Continuous Delivery) — Surekli Teslimat

Test edilen kodun otomatik olarak production ortamina deploy edilmeye hazir hale getirilmesi.

CD (Continuous Deployment) — Surekli Dagitim

Test edilen kodun otomatik olarak production'a deploy edilmesi — insan mudahalesi olmadan.

Neden CI/CD?

| Manuel Surec | CI/CD ile | |-------------|----------| | Deployment saatler suruyor | Dakikalar icinde | | Hata riski yuksek | Otomatik testlerle dusuk | | "Benim bilgisayarimda calisiyor" | Standart ortam | | Geri alma zor | Tek tikla rollback | | Deployment korkutucu | Rutin ve guvenli | | Haftada 1 release | Gunde birden fazla |

CI/CD Pipeline Adimlari

1. Source (Kaynak)

  • Gelistirici kodu push eder
  • Pull request acar
  • Pipeline otomatik baslar

2. Build (Derleme)

  • Kod derlenir
  • Bagimliliklar yuklenir
  • Docker image olusturulur

3. Test (Test)

  • Unit testler calistirilir
  • Integration testler
  • E2E testler
  • Linting ve format kontrolleri
  • Guvenlik taramasi

4. Deploy (Dagitim)

  • Staging ortamina deploy
  • Smoke testler
  • Production'a deploy
  • Health check

5. Monitor (Izleme)

  • Log izleme
  • Hata takibi
  • Performans metrikleri
  • Otomatik alert

Populer CI/CD Araclari

| Arac | Tur | Fiyat | One Cikan | |------|-----|-------|-----------| | GitHub Actions | Cloud | Ucretsiz tier | GitHub entegrasyonu | | GitLab CI | Cloud/Self-hosted | Ucretsiz tier | All-in-one | | Jenkins | Self-hosted | Ucretsiz | En esnek | | CircleCI | Cloud | Ucretsiz tier | Hizli | | Vercel | Cloud | Ucretsiz tier | Next.js icin en iyi | | Google Cloud Build | Cloud | Ucretsiz tier | GCP entegrasyonu |

GitHub Actions Ornegi

name: CI/CD Pipeline

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - run: npm run lint
      - run: npm run test
      - run: npm run build

  deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Deploy to production
        run: echo "Deploy steps here"

CI/CD Best Practices

  1. Her commit'te test calistirin — Hatalari erken yakalayin
  2. Pipeline'i hizli tutun — 10 dakikadan kisa
  3. Main branch'i her zaman deploy edilebilir tutun
  4. Feature branch'lerde calisin — Main'e direkt push yapmayin
  5. Rollback plani olsun — Her zaman geri alabilin
  6. Environment degiskenlerini guvenli saklatin — Secrets kullanin
  7. Pipeline'i kod olarak yonetin — Infrastructure as Code

CI/CD Metrikleri

| Metrik | Hedef | |--------|-------| | Deploy frekansi | Gunde/haftada birden fazla | | Lead time | Commit'ten production'a kisa sure | | Hata orani | Dusuk (2 altinda) | | Kurtarma suresi | 1 saatten kisa | | Pipeline suresi | 10 dakikadan kisa |

Sonuc

CI/CD, modern yazilim gelistirmenin olmazsa olmazidir. Otomatik test, derleme ve dagitim ile ekibiniz daha hizli, daha guvenli ve daha sik release yapabilir. GitHub Actions ile baslamak ucretsiz ve kolay.

CI/CD pipeline kurulumu ve DevOps danismanligi icin benimle iletisime gecin: info@cagribilgehan.com. Projelerime goz atin: cagribilgehan.com

İlgili Yazılar

Acik Kaynak Yazilim Rehberi: Nedir, Nasil Katki Yapilir?

Acik kaynak yazilim nedir, lisans turleri nelerdir ve acik kaynak projelere nasil katki yapilir? GitHub, open source ve topluluk rehberi.

No-Code ve Low-Code: Kodsuz Uygulama Gelistirme Rehberi

No-code ve low-code platformlari nedir, avantajlari neleridir ve ne zaman kullanilmali? Bubble, Webflow, Retool ve Airtable karsilastirmasi.