İhtiyaç: elle kurulan altyapıdan tekrar edilebilir bir sisteme
Bir altyapıyı ilk kez çalıştırmak ile onu sürdürülebilir biçimde işletmek aynı problem değildir. Kurulum adımları kişilerin hafızasında kaldığında ortamları yeniden oluşturmak ve değişikliklerin etkisini izlemek zorlaşır. SeekCivoAI çalışmasında sıfırdan altyapı mimarisi kurulumu, altyapı otomasyonu ve işletim desteğini birlikte ele aldık.
Gerçekleştirilen çalışma Ansible, Jenkins ve Terraform çevresinde şekillendi. Bu üç araç farklı görevleri karşılar: altyapı kaynaklarının tanımlanması, sunucu ve servis konfigürasyonlarının yönetilmesi, otomasyon adımlarının bir teslim akışında yürütülmesi. Amaç, araç listesini büyütmekten çok değişikliklerin anlaşılır ve tekrar uygulanabilir olmasını sağlamaktı.
Terraform: Infrastructure as Code ile kaynak yaşam döngüsü
Infrastructure as Code — IaC — yaklaşımında altyapının hedef durumu kodla ifade edilir. Terraform, kaynak bağımlılıklarını ve oluşturma-güncelleme yaşam döngüsünü deklaratif tanımlarla yönetmek için kullanılan araçlardan biridir. Plan aşaması, uygulanacak değişikliğin gözden geçirilmesini sağlayan önemli bir kontrol noktasıdır.
Bu tip bir mimaride state yönetimi, ortamların ayrılması ve değişiklik kapsamının sınırlandırılması tasarım kararlarıdır. Bir kaynağın kodla tanımlanması tek başına doğru mimari veya hatasız işletim garantisi değildir. Modül sınırları ve erişim yetkileri, gerçek altyapı ihtiyacına göre değerlendirilmelidir. SeekCivoAI projesinde Terraform, altyapı otomasyonu kapsamının araçlarından biriydi.
Ansible: konfigürasyon yönetimi ve tutarlılık
Altyapı kaynağının var olması, uygulama için hazır olduğu anlamına gelmez. İşletim sistemi ayarları, paketler, servis konfigürasyonları ve dağıtım adımları ayrı bir katmandır. Ansible bu alanda playbook ve rol yapılarıyla otomasyon tanımlamaya yardımcı olur. Envanter, değişkenler ve roller, farklı ortamların aynı mantığı kontrollü biçimde paylaşmasını sağlar.
İdempotency, aynı otomasyonun yeniden çalıştırıldığında gereksiz yan etkiler oluşturmamasını hedefleyen temel bir ilkedir. Bununla birlikte her shell komutu kendiliğinden idempotent olmaz. Konfigürasyon drift’i, elle yapılan değişiklikler ve servis yeniden başlatmalarının etkileri, Ansible tabanlı altyapı yönetiminde ayrıca ele alınmalıdır.
Jenkins: CI/CD akışının orkestrasyonu
Jenkins, otomasyon adımlarının pipeline içinde sıralanmasını ve teslim sürecinin izlenmesini sağlar. Kod değişikliği, doğrulama, derleme, paketleme ve dağıtım gibi aşamalar bir CI/CD akışının farklı sorumluluklarıdır. Altyapı pipeline’larında ise planlama ve uygulama adımlarının ayrılması, değişikliklerin gözden geçirilebilmesini kolaylaştırır.
SeekCivoAI için Jenkins, altyapı otomasyonu ve teslim iş akışının parçasıydı. Benzer kurulumlarda sır yönetimi, ajanların yetkileri, ortam bazlı erişim ve loglarda hassas veri bulunmaması önemli tasarım konularıdır. Pipeline’ın yeşil görünmesi tek başına uygulamanın kullanıcı açısından sağlıklı olduğu anlamına gelmez; dağıtım sonrası kontroller ayrıca tanımlanmalıdır.
Sıfırdan mimari kurulumu ve altyapı desteği
Bu çalışmanın kapsamı araç kurulumu ile sınırlı değildi; sıfırdan altyapı mimarisi oluşturma ve altyapı desteği de sağlandı. Mimariyi değerlendirirken uygulama bileşenleri, bağlantı sınırları, konfigürasyon bağımlılıkları ve işletim ihtiyaçları birlikte düşünülmelidir. Kurulum otomasyonunun anlaşılır olması, sonraki değişikliklerin yönetilmesini de kolaylaştırır.
İşletim desteği bağlamında izleme, log inceleme, sorun giderme ve değişiklik yönetimi birbirini tamamlayan alanlardır. Yüksek erişilebilirlik, felaket kurtarma ve kesintisiz dağıtım ise ayrıca tasarlanıp test edilmesi gereken özelliklerdir; erişilebilirlik hedefleri ve işletim sınırları başlangıçta netleştirilmelidir.
Uygulama ile altyapı arasındaki bağ
DevOps ve altyapı otomasyonu, ürün geliştirmeden ayrı bir son adım olarak ele alınmamalıdır. Köprü Mezun gibi çok kurumlu platformlar ve Borgmain gibi AI asistan çözümleri, kendi işletim ve dağıtım ihtiyaçlarını beraberinde getirir. Tekrar edilebilir altyapı, bu ürünlerin sürdürülebilirliğini destekleyen mühendislik temelidir.
Ansible otomasyonu, Jenkins pipeline tasarımı, Terraform ile Infrastructure as Code veya sıfırdan altyapı mimarisi ihtiyacınız varsa teknoloji çözümlerimizi inceleyebilir ve projenizin kapsamını paylaşabilirsiniz.
Fikrinizi çalışan bir çözüme dönüştürelim.
Projenizi paylaşın ↗


