AWS CI/CD Hizmetleriyle Kod Dağıtımı: Eksiksiz Bir Pipeline Oluşturma Rehberi Yazılım

AWS CI/CD Hizmetleriyle Kod Dağıtımı: Eksiksiz Bir Pipeline Oluşturma Rehberi

AWS CI/CD araçları (CodeCommit, CodeBuild, CodeDeploy, CodePipeline) ile uçtan uca bir dağıtım pipeline'ı nasıl kurulur? Buildspec ve appspec dosyalar...

AWS, yazılım geliştirme süreçlerini otomatikleştirmek için dört temel CI/CD hizmeti sunar: CodeCommit (kaynak kod yönetimi), CodeBuild (derleme ve test), CodeDeploy (dağıtım) ve CodePipeline (orkestrasyon). Bu araçlar birbirine bağlanarak eksiksiz bir pipeline oluşturur. CodePipeline, diğer hizmetleri yöneten merkezi orkestratördür; kendisi derleme veya dağıtım yapmaz, ancak aşamalar arasındaki geçişleri kontrol eder. Her aşama farklı sağlayıcılarla (örneğin GitHub veya Jenkins) da çalışabilir, bu da esneklik sağlar.

CodeCommit, AWS üzerinde barındırılan yönetilen bir Git deposudur. HTTPS veya SSH ile kimlik doğrulama yapılabilir, veriler hem beklerken hem de aktarım sırasında şifrelenir. Depo olayları (push gibi) SNS bildirimleri veya Lambda fonksiyonları tetikleyebilir. CodeBuild ise buildspec.yml dosyasıyla yapılandırılır. Bu dosyada dört aşama (install, pre_build, build, post_build) tanımlanır. Ortam değişkenleri, parametre deposu (SSM) veya Secrets Manager'dan güvenle alınabilir; asla sabit kodlanmamalıdır.

CodeDeploy, appspec.yml dosyasını kullanarak dağıtımı yönetir. Lambda için kaynak tanımları ve trafik geçiş kancaları (BeforeAllowTraffic, AfterAllowTraffic) içerirken, EC2/on-premises için dosya kopyalama, izin ayarları ve yaşam döngüsü kancaları (BeforeInstall, AfterInstall, ApplicationStart, ValidateService) bulunur. Lambda dağıtımında trafik kademeli olarak yeni sürüme kaydırılırken doğrulama testleri yapılabilir. EC2 dağıtımında ise eski dosyalar temizlenir, uygulama durdurulur, yeni dosyalar kopyalanır, servis başlatılır ve sağlık kontrolleri yapılır.

Sonuç ve Değerlendirme

Pipeline orkestrasyonu için CodePipeline, kaynak koddaki değişiklikleri algılar (CloudWatch Events veya polling ile) ve otomatik olarak build, test ve deploy aşamalarını başlatır. Dağıtım stratejileri (all-at-once, rolling, canary, blue/green) ve otomatik geri alma yapılandırmaları da bu sürecin parçasıdır. AWS Developer Associate sınavında bu araçların nasıl entegre çalıştığı, buildspec/appspec dosyalarının yazımı ve farklı dağıtım stratejilerinin avantajları sorgulanır. Başarılı bir pipeline için güvenlik (secrets yönetimi), hata yönetimi ve geri alma mekanizmaları kritik öneme sahiptir.

Paylaş: