Canary ve lineer dağıtımlar
AWS üzerinde Dağıtımları Otomatikleştirme
Dunieski Otano
Amazon Web Services Solutions Architect
Kötü bir sürüm, tüm kullanıcılar
Ödeme mantığı değişikliği trafiğin %100'üne anında dağıtıldı
Canlı yükte bir hata ortaya çıktı; her ödeme başarısız
%10 canary bunu 5 dakikada yakalardı
Canary'yi atlamanın bedeli: gerçek para kaybı
Canary dağıtım nedir
Trafiğin
küçük bir kısmını
önce yeni sürüme gönder
Ölçümleri
sabit bir bekleme süresi
boyunca izle
Sağlıklıysa,
kalanın tamamını
bir kerede kaydır
Yaygın kalıp:
%10, 5 dakika
, sonra %100
Lineer dağıtım nedir
Trafiği
eşit artışlarla
kaydır
Her adım arasında bekle
Örnek:
Her 1 dakikada %10
, toplam 10 dakika
Canary'den daha yumuşak; toplamda daha uzun sürer
Canary vs. lineer, yan yana
Canary:
tek dilim, sonra hepsi
Lineer:
çok küçük adımlar
Canary sorunları hızlı yakalar; lineer kademeli artar
İkisi de
geri alma tetiklenirse
durur
Lambda için CodeDeploy yapılandırmaları
CodeDeployDefault.LambdaCanary10Percent5Minutes
: 5 dk %10, sonra %100
CodeDeployDefault.LambdaLinear10PercentEvery1Minute
: dakikada +%10
CodeDeployDefault.LambdaAllAtOnce
: tam trafik anında
ECS'de bunların ECS önekli eşleri vardır
CloudWatch alarmlarıyla otomatik geri alma
Dağıtım grubuna
CloudWatch alarm
ları ekle
Yaygın alarmlar:
errors, duration, 5xx
Alarm
ALARM
durumuna geçerse dağıtım durur
CodeDeploy önceki sürüme
geri alır
Doğru yapılandırmayı seçme
Rutin düşük riskli yama →
AllAtOnce
Yüksek riskli üretim değişikliği →
Canary
Yumuşak, dengeli artış istiyorsan →
Linear
Otomatik geri alma için her zaman
alarm
larla eşleştir
Hadi pratik yapalım!
AWS üzerinde Dağıtımları Otomatikleştirme
Preparing Video For Download...