Infrastructure as Code (IaC)
Altyapı kurulumu hâlâ haftalarca mı sürüyor? Sunucular manuel mi yönetiliyor? "Bu sunucuyu kim, ne zaman, neden kurdu?" soruları cevapsız mı kalıyor?
Mersel IaC Hizmeti ile tüm altyapınızı tek bir enter ile kurabilirsiniz.
Gerçek Rakamlar
Şu an hali hazırda 300+ mikroservisli uygulamaları ve bunların tüm altyapı kaynaklarını dakikalar içinde production-ready hale getirebiliyoruz.
Manuel Altyapının Sorunları
| Sorun | Etki | Risk |
|---|---|---|
| Haftalarca kurulum | Yavaş go-to-market | İş kaybı |
| Dokümantasyon eksikliği | "Bu sunucu ne yapıyor?" | Operasyon riski |
| Tutarsız ortamlar | Dev ≠ Prod | Production hataları |
| Drift | Zamanla sapma | Güvenlik açıkları |
| Tekrarlanamaz | Her seferinde farklı sonuç | Debugging kabusu |
Manuel altyapı yönetimi = Technical debt + Security risk + Bus factor
IaC ile "Tek Enter" Konsepti
Nasıl Çalışır?
# Tüm altyapıyı kur
terraform apply
# Sonuç: Dakikalar içinde production-ready sistem
✓ VPC ve network oluşturuldu
✓ Kubernetes cluster hazır
✓ Database instance'ları kuruldu
✓ Load balancer yapılandırıldı
✓ Monitoring stack deploy edildi
✓ 300+ mikroservis çalışır durumda
Tek komut ile:
- Network altyapısı (VPC, subnet, security groups)
- Compute kaynakları (VM, container, serverless)
- Database'ler (RDS, Redis, Elasticsearch)
- Kubernetes cluster ve workload'lar
- Monitoring ve logging stack
- CI/CD pipeline'ları
300+ Mikroservis Senaryosu
Gerçek bir enterprise projede IaC ile neler yönetiyoruz:
| Kaynak Tipi | Adet | Kurulum Süresi |
|---|---|---|
| Kubernetes Namespace | 50+ | 30 saniye |
| Deployment | 300+ | 5 dakika |
| Service | 300+ | 1 dakika |
| ConfigMap/Secret | 600+ | 2 dakika |
| Ingress Rule | 150+ | 1 dakika |
| Database Instance | 20+ | 10 dakika |
| Redis Cluster | 5 | 5 dakika |
| Message Queue | 10+ | 3 dakika |
| Toplam | 1400+ kaynak | ~20 dakika |
Manuel kurulum: 2-3 hafta → IaC ile: 20 dakika
IaC Prensipleri
1. Declarative > Imperative
# Declarative (İstediğin durumu tanımla)
resource "kubernetes_deployment" "api" {
metadata {
name = "api-server"
}
spec {
replicas = 3
# ...
}
}
# Terraform otomatik olarak:
# - Yoksa oluşturur
# - Farklıysa günceller
# - Fazlaysa siler
2. Version Control
Altyapı değişiklikleri Git ile yönetilir:
infrastructure/
├── environments/
│ ├── dev/
│ ├── staging/
│ └── production/
├── modules/
│ ├── kubernetes/
│ ├── database/
│ └── networking/
└── README.md
Avantajlar:
- Her değişiklik izlenebilir
- Pull request ile review
- Rollback tek komutla
- Audit trail otomatik
3. Idempotency
Aynı kodu kaç kez çalıştırırsanız çalıştırın, sonuç aynıdır:
# İlk çalıştırma
terraform apply # → Kaynaklar oluşturulur
# İkinci çalıştırma
terraform apply # → "No changes. Infrastructure is up-to-date."
# Bir şey bozuldu, tekrar çalıştır
terraform apply # → Sadece bozulan düzeltilir
4. Modularity
Tekrar kullanılabilir modüller:
# Production ortamı
module "production_cluster" {
source = "./modules/kubernetes"
environment = "production"
replicas = 5
node_size = "large"
}
# Staging ortamı - aynı modül, farklı parametreler
module "staging_cluster" {
source = "./modules/kubernetes"
environment = "staging"
replicas = 2
node_size = "medium"
}
Desteklediğimiz Platformlar
Cloud Providers
| Provider | Terraform Provider | Deneyim |
|---|---|---|
| Huawei Cloud | huaweicloud | Production |
| AWS | aws | Production |
| Google Cloud | Production | |
| Azure | azurerm | Production |
Kubernetes
- Vanilla Kubernetes
- Huawei CCE
- Amazon EKS
- Google GKE
- Azure AKS
Database & Storage
- PostgreSQL / MySQL
- MongoDB / DocumentDB
- Redis / ElastiCache
- Elasticsearch
- Object Storage (OBS, S3)
IaC Araç Setimiz
Terraform
- Multi-cloud altyapı yönetimi
- State management (remote backend)
- Workspace'ler ile environment isolation
Ansible
- Configuration management
- Application deployment
- Ad-hoc operasyonlar
Helm
- Kubernetes application packaging
- Chart versioning
- Values-based customization
ArgoCD
- GitOps continuous delivery
- Automatic sync
- Drift detection
Örnek Proje: E-Dönüşüm Altyapısı
Mersel e-Dönüşüm platformu için IaC ile yönetilen kaynaklar:
# Ana modül yapısı
module "e-donusum-platform" {
source = "./modules/e-donusum"
# Network
vpc_cidr = "10.0.0.0/16"
az_count = 3
# Kubernetes
cluster_version = "1.28"
node_pools = {
general = { min = 3, max = 10, size = "c7.xlarge" }
compute = { min = 2, max = 20, size = "c7.2xlarge" }
}
# Database
postgres_version = "15"
postgres_ha = true
redis_cluster = true
# Monitoring
prometheus_retention = "30d"
loki_retention = "90d"
}
Sonuç:
- 3 AZ üzerinde HA cluster
- Auto-scaling node pools
- Multi-master PostgreSQL
- Redis cluster
- Full observability stack
- Toplam kurulum: 25 dakika
Disaster Recovery ile IaC
IaC'nin en güçlü yanlarından biri: Disaster Recovery
# Ankara DR ortamını kur
cd environments/dr-ankara
terraform apply
# 20 dakika sonra:
# - Tam replika altyapı hazır
# - Veritabanları restore edildi
# - DNS cutover bekliyor
DR Avantajı
Altyapınız kod olarak tanımlı olduğunda, aynı altyapıyı farklı bir bölgede dakikalar içinde ayağa kaldırabilirsiniz.
Migration Süreci
Mevcut Altyapıyı IaC'ye Taşıma
| Aşama | Süre | Çıktı |
|---|---|---|
| Discovery | 1 hafta | Mevcut kaynak envanteri |
| Import | 2 hafta | Terraform state oluşturma |
| Refactor | 2-4 hafta | Modüler yapıya dönüştürme |
| Validation | 1 hafta | Plan vs Apply karşılaştırma |
| Cutover | 1 gün | IaC yönetimine geçiş |
Terraform Import Örneği
# Mevcut kaynağı Terraform state'e import et
terraform import aws_instance.web i-1234567890abcdef0
# Artık bu kaynak IaC ile yönetiliyor
terraform plan # Drift varsa gösterir
ROI: Yatırım Getirisi
| Metrik | Manuel | IaC | Tasarruf |
|---|---|---|---|
| İlk kurulum | 2 hafta | 20 dakika | %99 |
| Environment clone | 1 hafta | 5 dakika | %99 |
| DR recovery | 1-2 gün | 30 dakika | %97 |
| Aylık bakım | 40 saat | 4 saat | %90 |
| Hata oranı | %15 | %1 | -14% |
Sonraki Adımlar
- Assessment: Mevcut altyapınızı analiz edelim
- Pilot: Küçük bir scope ile başlayalım
- Scale: Başarılı modeli genişletelim
- Transfer: Ekibinizi eğitelim
"Tek enter" vizyonuna ulaşmak için bugün başlayın. Altyapınız ne kadar karmaşık olursa olsun, IaC ile yönetilebilir hale getirilebilir.
IaC hizmeti için iletişime geçin veya Altyapı Otomasyonu sayfamızı ziyaret edin.