Skip to main content
Yazılım Geliştirme

CI/CD Pipeline Kurulumu: GitHub Actions ve Azure DevOps

Mart 06, 2026 6 dk okuma 30 views Raw
Ayrıca mevcut: en
CI/CD pipeline kurulumu ve DevOps otomasyon süreçleri
İçindekiler

CI/CD Pipeline Nedir ve Neden Önemlidir?

Sürekli Entegrasyon (CI) ve Sürekli Dağıtım (CD), modern yazılım geliştirme süreçlerinin temel taşlarıdır. CI/CD pipeline'ları, kod değişikliklerinin otomatik olarak derlenmesini, test edilmesini ve üretim ortamına dağıtılmasını sağlar. Manuel süreçlerin yerini alan bu otomasyon yaklaşımı, hataları erken aşamada yakalamayı, dağıtım süresini kısaltmayı ve yazılım kalitesini artırmayı mümkün kılar.

2026 yılında CI/CD artık bir lüks değil, yazılım ekiplerinin rekabet gücünü koruması için bir zorunluluktur. Küçük bir startup'tan büyük kurumsal projelere kadar her ölçekte ekip, CI/CD pipeline'larından faydalanabilir. Bu rehberde GitHub Actions ve Azure DevOps ile sıfırdan pipeline kurulumunu adım adım inceleyeceğiz.

CI/CD Temel Kavramları

Sürekli Entegrasyon (CI)

Sürekli entegrasyon, geliştiricilerin kod değişikliklerini sık sık ana dalda birleştirmesi ve her birleştirmede otomatik build ve test süreçlerinin çalıştırılması pratiğidir. Bu yaklaşımın temel faydaları şunlardır:

  • Entegrasyon sorunlarının erken tespiti
  • Kod kalitesinin sürekli izlenmesi
  • Hızlı geri bildirim döngüsü
  • Ekip üyeleri arasında daha iyi işbirliği

Sürekli Dağıtım (CD)

Sürekli dağıtım, CI sürecinden başarıyla geçen kodun otomatik olarak staging veya üretim ortamına dağıtılmasıdır. Sürekli dağıtım iki farklı seviyede uygulanabilir:

  • Continuous Delivery: Kod otomatik olarak staging ortamına dağıtılır, üretim dağıtımı manuel onay gerektirir.
  • Continuous Deployment: Tüm testlerden geçen kod otomatik olarak üretim ortamına dağıtılır.

GitHub Actions ile CI/CD Pipeline Kurulumu

GitHub Actions Nedir?

GitHub Actions, GitHub deposuna entegre edilmiş güçlü bir otomasyon platformudur. YAML tabanlı workflow dosyaları ile CI/CD pipeline'larını tanımlamanıza olanak tanır. GitHub Actions'ın öne çıkan avantajları arasında GitHub ile doğal entegrasyon, geniş marketplace ekosistemi ve ücretsiz kullanım kotaları yer alır.

İlk Workflow Dosyasını Oluşturma

GitHub Actions workflow'ları, depo kök dizinindeki .github/workflows klasöründe YAML dosyaları olarak tanımlanır. Temel bir CI workflow'u şu bileşenlerden oluşur:

  • Trigger (Tetikleyici): Workflow'un ne zaman çalışacağını belirler. Push, pull request veya zamanlama tabanlı olabilir.
  • Jobs (İşler): Paralel veya sıralı çalışabilen görev gruplarıdır.
  • Steps (Adımlar): Her iş içindeki bireysel komut veya action çağrılarıdır.
  • Runners (Çalıştırıcılar): Workflow'ların çalıştırıldığı sanal makinelerdir.

Build ve Test Aşamaları

Tipik bir CI pipeline'ında öncelikle kaynak kod derlenir, ardından birim testleri çalıştırılır. .NET projelerinde dotnet build ve dotnet test komutları kullanılırken, Node.js projelerinde npm install ve npm test komutları tercih edilir. Build aşamasında ortam değişkenleri ve secret'lar güvenli bir şekilde yönetilmelidir.

GitHub Actions'ta secret'lar depo ayarlarından tanımlanır ve workflow dosyasında secrets bağlamı üzerinden erişilir. Bu sayede API anahtarları, bağlantı dizeleri ve diğer hassas bilgiler güvenli bir şekilde saklanır.

Deployment Aşaması

Build ve testler başarıyla tamamlandıktan sonra deployment aşamasına geçilir. GitHub Actions ile yaygın deployment hedefleri şunlardır:

  • Azure App Service'e dağıtım
  • AWS ECS veya Lambda'ya dağıtım
  • Docker container registry'ye push
  • Kubernetes cluster'a deployment
  • Statik site hosting platformlarına dağıtım

Environment ve Approval Mekanizmaları

GitHub Actions, environment protection rules ile üretim dağıtımları için onay mekanizması sunar. Belirli environment'lara deployment yapmadan önce belirlenen kişilerden onay alınması zorunlu kılınabilir. Bu özellik özellikle kurumsal projelerde kritik öneme sahiptir.

Azure DevOps ile CI/CD Pipeline Kurulumu

Azure DevOps Pipelines Genel Bakış

Azure DevOps, Microsoft'un kapsamlı DevOps platformudur. Azure Pipelines bileşeni, güçlü CI/CD yetenekleri sunar. Azure DevOps'un öne çıkan özellikleri şunlardır:

  • YAML ve klasik editör tabanlı pipeline tanımlama
  • Kapsamlı agent havuzu yönetimi
  • Azure hizmetleriyle derin entegrasyon
  • Gelişmiş güvenlik ve uyumluluk özellikleri
  • Paralel iş çalıştırma desteği

YAML Pipeline Oluşturma

Azure DevOps'ta modern yaklaşım YAML tabanlı pipeline tanımlamadır. Pipeline dosyası genellikle azure-pipelines.yml adıyla depo kök dizininde oluşturulur. YAML pipeline'ları versiyon kontrolü altında tutulabilir ve kod inceleme sürecinden geçirilebilir.

Azure DevOps pipeline'larında stage, job ve step kavramları hiyerarşik bir yapı oluşturur. Stage'ler büyük aşamaları (build, test, deploy) temsil ederken, job'lar her aşamadaki paralel görevleri, step'ler ise bireysel komutları ifade eder.

Build Pipeline Yapılandırma

Azure DevOps'ta build pipeline yapılandırırken dikkat edilmesi gereken temel noktalar vardır. Öncelikle doğru agent pool seçimi yapılmalıdır. Microsoft-hosted agent'lar hızlı başlangıç için idealdir, ancak özel gereksinimlerde self-hosted agent'lar tercih edilebilir. Build sürecinde NuGet paketlerinin geri yüklenmesi, projenin derlenmesi ve test sonuçlarının raporlanması standart adımlardır.

Release Pipeline ve Multi-Stage Deployment

Azure DevOps'un güçlü yönlerinden biri çok aşamalı dağıtım desteğidir. Tipik bir release pipeline şu aşamalardan oluşur:

  1. Development ortamına otomatik dağıtım
  2. Staging ortamına dağıtım ve entegrasyon testleri
  3. UAT ortamına dağıtım ve kullanıcı kabul testleri
  4. Üretim ortamına kontrollü dağıtım

Her aşama arasında onay kapıları, kalite kontrol metrikleri ve geri alma stratejileri tanımlanabilir. Bu yapı özellikle kurumsal düzeyde güvenli ve kontrollü dağıtım süreçleri için vazgeçilmezdir.

GitHub Actions ve Azure DevOps Karşılaştırması

Her iki platform da güçlü CI/CD yetenekleri sunar, ancak farklı senaryolarda öne çıkarlar. Seçim yaparken şu kriterleri değerlendirmek faydalıdır:

  • Entegrasyon: GitHub deposu kullanıyorsanız GitHub Actions doğal bir seçimdir. Azure ekosistemiyle çalışıyorsanız Azure DevOps daha uyumludur.
  • Karmaşıklık: Basit CI/CD senaryolarında GitHub Actions daha hızlı kurulur. Karmaşık kurumsal senaryolarda Azure DevOps daha fazla esneklik sunar.
  • Maliyet: GitHub Actions açık kaynak projeler için ücretsizdir. Azure DevOps küçük ekipler için ücretsiz katman sunar.
  • Ekosistem: GitHub Actions marketplace binlerce hazır action sunar. Azure DevOps extension marketplace'i kurumsal araçlara odaklanır.

Pipeline Güvenliği İçin En İyi Uygulamalar

CI/CD pipeline'ları hassas bilgilere erişim sağladığından güvenlik kritik öneme sahiptir. Aşağıdaki uygulamalar her iki platform için de geçerlidir:

  • Secret'ları asla kod içinde sabit olarak yazmayın; her zaman güvenli depolama mekanizmalarını kullanın.
  • Pipeline izinlerini minimum yetki prensibiyle yapılandırın.
  • Üçüncü taraf action ve extension'ları kullanmadan önce güvenlik incelemesinden geçirin.
  • Pipeline loglarında hassas bilgilerin maskelenmesini sağlayın.
  • Düzenli olarak kullanılan bağımlılıkları ve araçları güncelleyin.

İleri Düzey Pipeline Stratejileri

Matrix Build ve Paralel Test

Hem GitHub Actions hem de Azure DevOps, matrix stratejisi ile birden fazla ortamda paralel build ve test çalıştırmayı destekler. Farklı işletim sistemleri, runtime sürümleri ve veritabanı kombinasyonlarında test yaparak uyumluluk sorunlarını erken tespit edebilirsiniz.

Cache Optimizasyonu

Pipeline performansını artırmanın en etkili yollarından biri önbellekleme stratejisidir. NuGet paketleri, npm modülleri ve Docker katmanları önbelleğe alınarak build süreleri önemli ölçüde kısaltılabilir. Her iki platform da yerleşik cache mekanizmaları sunar.

Infrastructure as Code Entegrasyonu

CI/CD pipeline'larını Terraform, Bicep veya Pulumi gibi IaC araçlarıyla entegre ederek altyapı değişikliklerini de otomatik hale getirebilirsiniz. Bu yaklaşım, uygulama kodu ve altyapı yapılandırmasının aynı pipeline içinde yönetilmesini sağlar.

Monitoring ve Geri Bildirim Döngüsü

Pipeline kurulumu tamamlandıktan sonra sürekli izleme ve iyileştirme önemlidir. Build sürelerini, başarı oranlarını ve deployment frekansını takip edin. DORA metrikleri (Deployment Frequency, Lead Time for Changes, Change Failure Rate, Time to Restore Service) ekibinizin DevOps olgunluğunu ölçmek için değerli göstergelerdir.

CI/CD pipeline'ları bir kez kurulup unutulacak sistemler değildir. Sürekli iyileştirme kültürü ile pipeline'larınızı düzenli olarak gözden geçirin, darboğazları tespit edin ve optimizasyon fırsatlarını değerlendirin.

Sonuç

CI/CD pipeline kurulumu, yazılım geliştirme süreçlerini dönüştüren kritik bir adımdır. GitHub Actions ve Azure DevOps, farklı ihtiyaçlara yönelik güçlü çözümler sunar. Hangi platformu seçerseniz seçin, temel prensipler aynıdır: otomatik build, kapsamlı test, güvenli deployment ve sürekli iyileştirme. Bu rehberdeki adımları takip ederek ekibiniz için sağlam bir CI/CD altyapısı oluşturabilir ve yazılım dağıtım süreçlerinizi modernleştirebilirsiniz.

Bu yazıyı paylaş