0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Ders

Actions ile Kanarya Sürümleri

Yeni özellikleri kullanıcıların bir bölümüne kademeli olarak sunarken performansı ve kararlılığı izleyen Kanarya sürümü kalıplarını uygulayın.

Actions ile Kanarya Sürümleri, CoddyKit'te ücretsiz bir CI/CD with GitHub Actions & DevOps Pipelines dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, CI/CD with GitHub Actions & DevOps Pipelines öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. CI/CD with GitHub Actions & DevOps Pipelines kursu toplamda 4 dersten oluşur.

Canary Sürümlerine Giriş

Yeni bir özellik veya güncelleme yayımladığınızı düşününüz. Tüm kullanıcılarınızı etkileyen bir hata içeriyorsa ne olur? Korkutucu, değil mi?

Canary sürümleri, değişiklikleri önce küçük bir kullanıcı grubuna kademeli olarak sunarak bu riski azaltmaya yardımcı olur. Bu, herkes girmeden önce havayı test etmek için "kömür madenine bir canary göndermeye" benzer.

Canary Sürümlerinin Faydaları

Canary sürümleri birkaç önemli fayda sağlar:

  • Azaltılmış Risk: Sorunların etkisini küçük bir kullanıcı grubuyla sınırlandırır.
  • Gerçek Dünya Geri Bildirimi: Performans ve kararlılık hakkında üretim verileri elde edersiniz.
  • Hızlı Geri Dönüş: Sorunlar ortaya çıkarsa yalnızca küçük canary grubunu veya hizmetin tamamını hızlıca eski durumuna döndürebilirsiniz.
  • Denetimli Kullanıma Sunma: Güven arttıkça kullanıcıların erişimini kademeli olarak artırırsınız.

Canary ve Mavi/Yeşil Karşılaştırması

İki birbirinin aynısı ortam arasında trafiği anında geçirdiğiniz Mavi/Yeşil dağıtımlarını hatırlıyor olabilirsiniz.

Canary sürümleri farklıdır. Anında geçiş yerine kademeli trafik geçişi uygulanır. Yeni sürüm eski sürümle birlikte çalışır ve başlangıçta kullanıcıların yalnızca küçük bir yüzdesi yeni sürümü görür. Bu, dağıtımın tamamına geçmeden önce ayrıntılı izleme yapılmasını sağlar.

Canary Sürümleri Nasıl Çalışır

Canary sürümü için temel akış şöyledir:

  1. Yeni Sürümü Dağıtma: Uygulamanızın yeni sürümü, mevcut kararlı sürümün yanında küçük bir sunucu veya örnek kümesine dağıtılır.
  2. Az Miktarda Trafik Yönlendirme: Bir yük dengeleyici veya hizmet ağı, kullanıcı trafiğinin küçük bir yüzdesini (ör. %5-10) yeni sürüme gönderecek şekilde yapılandırılır.
  3. İzleme: Canary grubunun performansı, hata oranları ve kullanıcı geri bildirimleri yakından izlenir.
  4. Yükseltme veya Geri Dönüş: Her şey iyi görünüyorsa trafik kademeli olarak artırılır veya yeni sürüm %100'e çıkarılır. Sorunlar oluşursa canary sürümü geri alınır ve trafik kararlı sürüme yönlendirilir.

GitHub Actions ile Orkestrasyon

GitHub Actions, canary sürüm yayınlama sürecinin tamamını orkestre edebilir. Trafiği doğrudan yönetmez (bu, altyapınızın görevidir); ancak şu adımları tetikler:

  • Uygulamanızı derleme ve test etme.
  • Yeni sürümü bir canary ortamına dağıtma.
  • Yük dengeleyicinize veya hizmet ağınıza API çağrıları göndererek trafik geçişlerini başlatma.
  • İzleme sonuçlarını veya manuel onayları bekleme.
  • Canary sürümünü yaygınlaştırma ya da geri alma işlemini tetikleme.

Canary İş Akışına Genel Bakış

Canary sürüm yayınlama için tipik bir GitHub Actions iş akışı şöyle görünebilir:

name: Canary Deployment

on: push

jobs:
  build:
    # ... build and test steps ...

  deploy-canary:
    needs: build
    steps:
      - name: Deploy to Canary Group
        # ... call script/tool to deploy and shift 10% traffic ...

  monitor-canary:
    needs: deploy-canary
    # ... wait for monitoring/approval ...

  promote-or-rollback:
    needs: monitor-canary
    # ... conditionally promote to 100% or rollback ...

Her adım, dağıtım araçlarınızla etkileşime girer.

Canary Yayılım Mantığını Simüle Etme

GitHub Actions orkestrasyonu gerçekleştirirken asıl karar verme ve dağıtım komutları genellikle betikler içinde çalışır. Aşağıda, bir canary yayılımının mantığını simüle eden bir Python örneği yer alıyor. Bir Action'ın bu betiği çalıştırdığını düşünün:

def deploy_version(version, traffic_percent):
    print(f"Deploying {version} to {traffic_percent}% traffic.")
    if traffic_percent == 100:
        print("Full rollout complete!")
    elif traffic_percent > 0:
        print("Canary deployed. Monitoring for stability...")
    else:
        print("Version removed (rollback).")

if __name__ == "__main__":
    print("--- Starting Canary Workflow ---")
    new_app_version = "v2.1-canary"
    stable_app_version = "v2.0"

    # Step 1: Deploy new version to 10% traffic
    deploy_version(new_app_version, 10)

    # Step 2: Simulate monitoring (e.g., waiting for metrics)
    print("Monitoring canary performance...")
    import random
    canary_successful = random.choice([True, True, True, False]) # 75% chance of success

    if canary_successful:
        print("Canary looks good! Proceeding to full rollout.")
        # Step 3a: Promote new version to 100%
        deploy_version(new_app_version, 100)
    else:
        print("Canary issues detected! Rolling back.")
        # Step 3b: Rollback to stable version
        deploy_version(stable_app_version, 100)
    print("--- Canary Workflow Finished ---")

Canary Sürümünüzü İzleme

Etkili izleme çok önemlidir. GitHub Actions iş akışınız, izleme sistemleriyle çeşitli şekillerde bütünleşebilir:

  • API Çağrıları: Önemli ölçümleri almak için izleme araçlarını (ör. Datadog, Prometheus) sorgulama.
  • Sağlık Denetimleri: Uygulamanın sağlık uç noktalarını düzenli olarak sorgulama.
  • Manuel Kontrol Noktaları: İş akışını insan incelemesi ve onayı için duraklatma.
  • Zamana Dayalı Beklemeler: Ölçümlerin kararlı hâle gelmesi için belirli bir süre bekleme.

İş akışı daha sonra yaygınlaştırma veya geri alma kararını vermek için bu sinyalleri kullanır.

Koşullu Yaygınlaştırma/Geri Alma

İzleme aşamasından sonra GitHub Actions, sonraki adıma karar vermek için koşullu mantık kullanır. İş veya adım tanımlarınızda if ifadelerini kullanabilirsiniz.

  promote-or-rollback:
    needs: monitor-canary
    if: success() && needs.monitor-canary.outputs.canary_ok == 'true'
    steps:
      - name: Promote Full Rollout
        # ... command to shift 100% traffic to new version ...

  rollback:
    needs: monitor-canary
    if: failure() || needs.monitor-canary.outputs.canary_ok == 'false'
    steps:
      - name: Rollback to Stable
        # ... command to shift 100% traffic to old version ...

Bu, canary performansına otomatik olarak tepki verilmesini sağlar.

Canary Sürüm Denetimi

Canary sürümlerinin avantajlarını ve işleyişini öğrendiniz. Şimdi anlayışınızı sınayalım.

Özet: Actions ile Canary Sürümleri

Bu derste, yeni yazılım sürümlerini kullanıcıların bir alt kümesine kademeli olarak sunmaya yarayan güçlü bir dağıtım stratejisi olan Canary Sürümleri hakkında bilgi edindiniz.

  • Canary sürümleri riski en aza indirir ve gerçek dünya geri bildirimi sağlar.
  • GitHub Actions; derleme, canary ortamına dağıtım, izleme ve koşullu yaygınlaştırma/geri alma adımlarını orkestre eder.
  • Etkili izleme ve koşullu mantık, başarılı canary işlem hatlarının temel unsurlarıdır.

Canary sürümlerini kullanarak daha büyük bir güven ve denetimle dağıtım yapabilirsiniz!

Sıkça Sorulan Sorular

“Actions ile Kanarya Sürümleri” dersi ücretsiz mi?

Evet — “Actions ile Kanarya Sürümleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve CI/CD with GitHub Actions & DevOps Pipelines kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. CI/CD with GitHub Actions & DevOps Pipelines kursu toplamda 4 dersten oluşur.

“Actions ile Kanarya Sürümleri” dersinde ne öğreneceğim?

Yeni özellikleri kullanıcıların bir bölümüne kademeli olarak sunarken performansı ve kararlılığı izleyen Kanarya sürümü kalıplarını uygulayın. CI/CD with GitHub Actions & DevOps Pipelines ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

CI/CD with GitHub Actions & DevOps Pipelines öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te CI/CD with GitHub Actions & DevOps Pipelines, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Actions ile Kanarya Sürümleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu CI/CD with GitHub Actions & DevOps Pipelines dersinde kod yazıp çalıştırabilir miyim?

Evet. Her CI/CD with GitHub Actions & DevOps Pipelines dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Mavi/Yeşil Dağıtımlar
  2. Actions ile Kanarya Sürümleri
  3. Geri Dönüşler ve Felaket Kurtarma
  4. Özellik Bayrakları ve Aşamalı Yayımlar
← CI/CD with GitHub Actions & DevOps Pipelines Sayfasına Dön