Platform Seçimi
Otomotiv sektörünün önde gelen çokuluslu üreticilerinden biri olan müşterimiz, yazılım projesinde Kubernetes altyapısını tercih etti. Bu tercihin temel nedenleri arasında, ölçeklenebilir ve esnek bir mimariye olan ihtiyaç ön plandaydı.
Konu Kubernetes olduğunda CNCF onaylı bir kubernetes dağıtımı olan RKE2 şüphesiz ki önemli bir seçenek olarak karşımıza çıkıyor. Yönetilmesi gereken birden fazla ortam da girdiğinde kaçınılmaz olarak resme Rancher’da girmekte.
Sürekli Entegrasyon ve Teslimat
Müşterimizin temel altyapı bileşenlerinin kurulumlarını gerçekleştirdikten sonra, uygulama yaşam döngüsü süreçlerini içeren CI/CD süreçlerine odaklandık. Bu süreçleri ihtiyaçları doğrultusunda hızla değişebileceklerini öngörerek, tüm sürecin infrastructure-as-code (IaC) olarak yönetilmesine karar verdik. Bu yaklaşım sayesinde, sistemin kurulum ve yönetimi geliştiricilerin aşina olduğu kod dosyaları ve tanımlar şeklinde tutulabilir hale geldi. Yani, sistemi kodlayarak yönetme fırsatına sahip olduk. IaC yaklaşımı ile sürekli entegrasyon/teslimat süreçleri oluşturarak ve merge/pull request’lerini kullanarak yaygınlaştırma ve yönetim için planlamalar gerçekleştirdik.
Bu yaklaşımla birlikte elde ettiğimiz kazanımlar arasında şunlar bulunmaktadır:
Bu karar doğrultusunda, öncelikle müşterinin süreçleri için özel bir git sunucusu oluşturduk. Git kurulumunun ardından, süreci orkestrasyon için ArgoCD kurulumunu planladık. GitOps yaklaşımımıza uygun olarak, ArgoCD kurulumu ve yapılandırmaları git üzerinde tutulmaya başlandı.
Saha tecrübelerimizden edindiğimiz bilgiye göre, şifrelerin her zaman kaynak kod sunucusundan uzak tutulması gerektiğini belirledik. Bu nedenle, ArgoCD ile entegre bir şifre yönetim aracı olarak HashiCorp Vault kurulumu ve entegrasyonunu, GitOps en iyi pratikleri doğrultusunda gerçekleştirdik.