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.
Altyapı Kod Olarak (IaC) Canva kapak görseli

Bir sunucunun nasıl kurulduğu bilgisi genelde iki yerde yaşar: tek bir kişinin kafasında, ya da güncelliğini çoktan yitirmiş bir Word dokümanında. O kişi izinli olduğunda ya da işten ayrıldığında ne olacak? Infrastructure as Code (IaC), bu kırılgan bilgiyi çalıştırılabilir, versiyonlanabilir koda dönüştürerek soruyu ortadan kaldırıyor.

Neden Sadece “Güzel Bir Fikir” Değil

Elle yapılan kurulumlarda “geliştirmede çalışıyor, üretimde çalışmıyor” sorunlarının çoğu, iki ortam arasındaki küçük ve fark edilmeyen yapılandırma farklarından kaynaklanır. IaC ile aynı kod her ortamda çalıştırıldığında birebir aynı sonucu üretir — tutarlılık artık bir umut değil, garantidir.

Terraform: Ne Olması Gerektiğini Tanımlamak

Terraform, hangi kaynakların (sunucu, ağ, depolama) var olması gerektiğini bildirimsel 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, tanımlanan hedefe ulaşmak için gereken oluşturma/güncelleme/silme adımlarını kendisi hesaplar.

Ansible: Nasıl Yapılandırılacağını Uygulamak

Terraform “hangi sunucular var olsun” sorusuna cevap verirken, Ansible “bu sunucular üzerinde ne çalışsın, nasıl ayarlansı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'

İkisi birlikte kullanıldığında, sıfırdan bir ortamı (sunucu + ağ + yapılandırma) tamamen otomatik ve tekrarlanabilir şekilde kurabiliyorsunuz. 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ırmak mümkün hale geliyor.

Zihniyet Değişimi Gerektiriyor

Yıllardır GUI tabanlı araçlarla (Server Manager, vCenter) çalışmış biri için IaC’ye geçiş “tıkla ve yapılandır” alışkanlığından “tanımla ve uygula” disiplinine geçmek demek. Küçük başlamak işe yarıyor: önce tekrar eden, düşük riskli bir görevi (örneğin standart bir test ortamı kurulumu) kodlaştırıp, güven arttıkça kapsamı genişletmek.

Bir de görünmeyen ama değerli bir kazanç var: IaC kodu Git gibi bir versiyon kontrol sistemine konduğunda, “bu sunucuda ne zaman, kim, ne değiştirdi” sorusunun cevabı artık kimsenin hafızasında değil, commit geçmişinde yazılı oluyor. Sorun giderme ve denetim açısından bunun değerini abartmak zor.

Pratikte Ne Değişir

IaC, altyapı yönetimini kişiye bağlı bir “sanat”tan mühendislik disiplinine taşıyor. Terraform “ne olması gerektiğini”, Ansible “nasıl yapılandırılması gerektiğini” kodlaştırdığında, hem hız hem güvenilirlik kurumsal ölçekte artı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.