GitOps Yaklaşımı ile Yönetilebilirlik
Bir altyapı üzerine sistem inşa edilmesi GitOps yaklaşımı ile yönetilebilir duruma gelecektir
Bir altyapı üzerine sistem inşa edilmesi yakın zamana kadar önemli bir kısmı elle gerçekleştirilen bir süreçti. Kubernetes üzerine taşınan sistemlerle birlikte ağ yapılandırmalarını bile tanım dosyaları yardımıyla gerçekleştirdiğimiz günümüzde GitOps yaklaşımı sayesinde tüm süreç yönetilebilir duruma gelmiştir.

Zamana Karşı Yarış
Bulut bilişiminin öne çıktığı günümüzde en büyük rakibimiz zaman
Kubernetes tabanlı Cloud-Native sistemler sayesinde artık en karmaşık uygulamalar bile saniyeler içerisinde ayağa kaldırılabilir duruma gelmiştir. Her şeyin tanım dosyaları ile gerçekleştirilebildiği bu dünyada yönetilebilir, tekrarlanabilir, geri dönülebilir ve izlenebilir bir kurguya sahip olmak size önemli bir zaman kazandıracaktır. Öne geçebilmesinize fırsat verebilecek bir zaman…
Case Study
Otomotiv sektörünün önde gelen uluslararası üreticilerinde olan müşterimizde hayata geçirilen yazılım projesinde altyapı olarak Kubernetes seçildi. Bu seçimin en önemli nedenleri arasında şüphesiz ki ölçeklenebilir ve esnek mimari öne çıkmakta.
Müşterimizde temel altyapı kurulumları ardından CI/CD gibi tüm yazılım yaşam döngüsü süreçlerinin gerçekleştirilmesine başladık. Hızla değişebileceğini öngördüğümüz gereksimleri göz önüne alarak daha yolun başındayken tüm sürecin infrastructure-as-code (IaC) olarak yönetilmesi yönünde bir karar aldık. Bu sayede tüm sistemin kurulum ve yönetimi biz geliştiricilerin alışkın olduğu kod dosyaları, tanımlar şeklinde tutulabilir hale gelecekti. Yani sistemin kendisini de kodlayacaktık. IaC yaklaşımında, yaygınlaştırma için sürekli entegrasyon/teslimat süreçleri kurgulanması ve yönetim için merge/pull request’ler kullanılması planlandı.
Bu yaklaşımla birlikte aşağıda sıraladığımız kazanımlara sahip olduk;
- Yapılandırmalarımız versiyonları ile birlikte kaynak kod sunucunda tutulacak,
- Hızlı geri dönüş senaryosuna sahip olacak,
- Yapılandırma geçmişi takip edilebilecek,
- Değişiklik yönetimi için Merge/Pull Request’leri ile onay akışları kurgulanabilecek,
- Kurulum ve değişiklikler dokümante edilebilecek,
- Problem anında hızla yeni bir sistem eksiksik olarak oluşturulabilecek

Aldığımız bu karar doğrultusunda öncelikle müşterimizde bu süreçler için özel olarak bir git sunucusu konumlandırdık.
Git kurulumu ardından süreci orkestre etmesi için ArgoCD kurulumu planlandı. GitOps yaklaşımımız gereği ArgoCD kurulum ve yapılandırmaları da yine daha en başında git üzerinde tutulmaya başlandı. Dolayısıyla ArgoCD kurulumumuz dahi GitOps en iyi pratikleri çerçevesinde gerçekleştirildi.
Pek çok farklı müşterimizde edindiğimiz saha tecrübesi bize şifrelerin her zaman için kaynak kod sunucusundan uzak olması gerektiğini gösterdi. Bu tecrübe ile, ArgoCD ile entegre bir şifre yönetim aracı konumlandırılmasına karar verildi. Tüm şifrelerin tutulması için HashiCorp Vault kurulumu ve entegrasyonu yine GitOps en iyi pratikleri doğrultusunda gerçekleştirildi.

Çalışmalarımızın tamamlanması ardından müşterimiz Kubernetes üzerinde yer alan tüm araçları ve uygulamalarını git üzerinde yer alan yapılandırma dosyaları üzerinden yönetebilir duruma gelerek önemli bir çeviklik kazanmıştır.