Modern yazılım geliştirme süreçlerinde “staging” ve “production” ortamlarının doğru yönetimi, yazılımın kararlılığı ve sürekli teslimat kabiliyeti açısından kritik öneme sahiptir. Cloud server altyapısı bu süreçleri otomatize ederek, staging’den production’a geçişi tek bir komutla veya butonla gerçekleştirmeye olanak tanır. Bu entegrasyon, DevOps kültürünün temel yapı taşlarından biridir.
1. Staging ve Production Ortamlarını Ayırmak
Cloud server üzerinde staging (ön izleme/test) ve production (canlı) ortamlar genellikle aşağıdaki yöntemlerle ayrılır:
- Farklı sanal makineler veya container’lar (örn. Docker)
- Ayrı subdomain veya IP adresleri
- Farklı veritabanı kopyaları
Bu sayede staging ortamında yapılan testler, production ortamını etkilemez.
2. Kod Entegrasyonu: CI/CD Pipeline Oluşturmak
Kod değişikliklerinin staging ortamına otomatik deploy edilmesi için bir CI/CD (Continuous Integration/Continuous Deployment) süreci kurulmalıdır.
Kullanılabilecek araçlar:
- GitLab CI/CD
- GitHub Actions
- Jenkins
- Bitbucket Pipelines
Bu araçlar aracılığıyla staging ortamına otomatik deploy yapılabilir. Sonrasında production’a geçiş için onay (manual trigger) eklenebilir.
3. Tek Tuşla Geçiş İçin Pipeline Ayarı
Staging’den production’a geçişi tek tuşla yapmak için pipeline’a “manual approval” aşaması veya özel bir trigger eklenebilir. Örneğin:
deploy_to_production:
stage: deploy
script:
- ./deploy.sh production
when: manual
only:
- main
Bu yapı sayesinde bir “deploy” butonuna basarak staging ortamındaki testleri geçen versiyon canlıya alınabilir.
4. Blue-Green Deployment veya Canary Release Kullanımı
Tek tuşla geçişi daha güvenli hâle getirmek için aşağıdaki dağıtım stratejileri kullanılabilir:
- Blue-Green Deployment: Mevcut production ortamı (blue) çalışırken, staging’de test edilen versiyon (green) hazır hâle getirilir. Tek tuşla geçişte tüm trafik yeni ortama yönlendirilir.
- Canary Release: Yeni versiyon, kullanıcıların küçük bir yüzdesine sunulur. Sorun çıkmazsa tüm trafiğe açılır.
Bu stratejiler, yüksek trafikli uygulamalarda kesintisiz geçişe yardımcı olur.
5. Rollback Kolaylığı
Cloud server altyapısında versiyon kontrol sistemleri (Git) ve otomatik yedekleme sayesinde geçiş sonrası sorun yaşanırsa eski sürüme hızlıca dönülebilir.
6. Güvenlik ve Erişim Yetkilendirmesi
Geçiş işlemleri yalnızca belirli yetkilere sahip kullanıcılar tarafından yapılmalıdır. Bu amaçla:
- IAM (Identity and Access Management) ile yetkilendirme yapılmalı
- Audit log sistemiyle kim, ne zaman, hangi sürümü geçirdi takip edilmelidir
Örnek Araçlar:
- Terraform + Ansible ile altyapının kodla yönetimi
- Docker + Kubernetes ile uygulama konteynerizasyonu ve orkestrasyonu
- ArgoCD / FluxCD ile GitOps yaklaşımıyla tek tuş deploy
Sonuç
Cloud server altyapısı sayesinde staging ve production ortamları arasında güvenli, kontrol edilebilir ve hızlı geçişler yapılabilir. CI/CD sistemlerinin doğru kurulumu, bu geçişin tek tuşla ve risksiz gerçekleşmesini sağlar.