Follow
Follow

Altyapı Kod Olarak (IaC): Terraform ve Ansible ile Sunucu ve Ağ Kurulumlarını Kodlaştırma

Sunucu ve ağ yapılandırmalarını elle değil kod olarak yönetmenin (Infrastructure as Code) getirdiği tutarlılık ve hız avantajlarını anlatıyorum.

Yıllarca “bir sunucuyu nasıl kurdum” bilgisi, genellikle tek bir kişinin kafasında veya dağınık, güncelliğini yitirmiş bir Word dokümanında yaşadı. Infrastructure as Code (IaC), bu bilgiyi çalıştırılabilir, versiyonlanabilir koda dönüştürüyor.

IaC’nin Temel Vaadi: Tutarlılık ve Tekrarlanabilirlik

Elle yapılan sunucu kurulumlarında, “geliştirme ortamında çalışıyor ama üretimde çalışmıyor” sorunlarının büyük kısmı, iki ortam arasındaki küçük, fark edilmeyen yapılandırma farklarından kaynaklanır. IaC ile, aynı kod her ortamda çalıştırıldığında birebir aynı sonucu üretir.

Terraform: Altyapıyı Tanımlamak

Terraform, “hangi kaynakların (sunucu, ağ, depolama) var olması gerektiğini” bildirimsel (declarative) bir dille tanımlar:

resource "aws_instance" "web_sunucu" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t3.medium"

  tags = {
    Name = "Web-Sunucu-Prod"
  }
}

Bu kodu çalıştırdığınızda, Terraform mevcut durumu kontrol eder ve tanımladığınız hedef duruma ulaşmak için gereken değişiklikleri (oluşturma, güncelleme, silme) otomatik hesaplar.

Ansible: Yapılandırmayı Uygulamak

Terraform “hangi sunucular var olsun” sorusuna cevap verirken, Ansible “bu sunucular üzerinde ne yapılandırılsın” sorusuna cevap verir:

- name: Web sunucularını yapılandır
  hosts: web_sunuculari
  tasks:
    - name: Nginx kurulumu
      apt:
        name: nginx
        state: present
    - name: Güvenlik duvarı kuralı ekle
      ufw:
        rule: allow
        port: '443'

Neden Bu Kombinasyon Değerli?

Terraform + Ansible birlikte kullanıldığında, sıfırdan bir ortamı (sunucular + ağ + yapılandırma) tamamen otomatik, tekrarlanabilir şekilde kurabilirsiniz. Bir felaket kurtarma senaryosunda, “3 gün süren manuel kurulum” yerine, aynı kodu çalıştırarak saatler içinde eşdeğer bir ortam ayağa kaldırabilirsiniz.

Sahadan Bir Perspektif: Geleneksel Yönetimden Geçiş

Yıllardır GUI tabanlı araçlarla (Server Manager, vCenter) çalışan biri için IaC’ye geçiş bir zihniyet değişimi gerektiriyor — “tıkla ve yapılandır” yerine “tanımla ve uygula”. Bu geçişte küçük başlamayı öneriyorum: önce tekrar eden, düşük riskli bir görevi (örn. standart bir test ortamı kurulumu) kodlaştırıp, güven arttıkça kapsamı genişletmek.

Versiyon Kontrolünün Getirdiği Şeffaflık

IaC kodu Git gibi bir versiyon kontrol sistemine konduğunda, “bu sunucuda ne zaman, kim, ne değiştirdi” sorusunun cevabı artık institutional hafızada değil, commit geçmişinde net şekilde yazılı oluyor — denetim ve sorun giderme açısından paha biçilmez bir avantaj.

Sonuç

IaC, altyapı yönetimini “sanat” olmaktan çıkarıp mühendislik disiplinine dönüştürüyor. Terraform ile “ne olması gerektiğini”, Ansible ile “nasıl yapılandırılması gerektiğini” kodlaştırmak, hem hızı hem de güvenilirliği kurumsal ölçekte artırıyor.

Comments
Join the Discussion and Share Your Opinion
Add a Comment

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir


Newsletter
Join Design Community
Get the latest updates, creative tips, and exclusive resources straight to your inbox. Let’s explore the future of design and innovation together.