- Updated roadmap (03-infra-stack-changes.md) to deprecate database proxies in prod. - Detailed direct subnet access via WireGuard for production developers. - Provided multi-host connection parameters for Patroni and MongoDB Replica Sets in setup guide (08-prod-db-cluster-kurulum.md). - Added environment comparison table to developer access guide.
65 lines
4.2 KiB
Markdown
65 lines
4.2 KiB
Markdown
# 🌍 iklim.co Altyapı ve Sunucu Yönetimi
|
||
|
||
Bu depo, `iklim.co` projesinin **test** ve **production** ortamlarını kurmak, yönetmek ve modernize etmek için gerekli olan Infrastructure-as-Code (IaC) varlıklarını, teknik rehberleri ve operasyonel standartları barındırır.
|
||
|
||
Altyapı yönetimi; Hetzner Cloud üzerinde Terraform ile kaynak provisioning, Ansible ile işletim sistemi yapılandırması ve Docker Swarm üzerinde mikroservis mimarisinin kurgulanması süreçlerini kapsar.
|
||
|
||
---
|
||
|
||
## 📂 Depo Yapısı ve Temel Bölümler
|
||
|
||
Bu depodaki dökümantasyon ve kod varlıkları beş ana kategoriye ayrılmıştır:
|
||
|
||
### 1. 🛣️ Roadmap (`roadmap/`)
|
||
Ortamların (test ve prod) sıfırdan kurulması veya mevcut yapının güncellenmesi için gerekli olan **iş gereksinimlerini, teknik hedefleri ve adım adım uygulama planlarını** içerir.
|
||
- Altyapıda yapılacak büyük değişikliklerin (örn: Redis Sentinel geçişi, APISIX konfigürasyonu, RabbitMQ Quorum Queues) stratejik dökümantasyonudur.
|
||
- [roadmap/test-env/](./roadmap/test-env/) - Test ortamı gereksinimleri ve planları.
|
||
- [roadmap/prod-env/](./roadmap/prod-env/) - Üretim ortamı HA (High Availability) ve güvenilirlik planları.
|
||
|
||
### 2. 🛠️ Setup (`setup/`)
|
||
Altyapının fiziksel olarak ayağa kaldırılması için kullanılan **uygulama dökümanlarıdır**. Bu bölüm şunları yönetmek için kullanılır:
|
||
- **Terraform:** Bulut kaynaklarının (Server, Network, Firewall) üretilmesi.
|
||
- **Ansible:** İşletim sistemi hazırlığı, güvenlik sertleştirme (hardening), Docker/Swarm kurulumu.
|
||
- **CI/CD:** Deployment workflow'larının (Gitea Actions) ve stack manifest'lerinin oluşturulması/güncellenmesi.
|
||
- Örn: [setup/06-prod-terraform-iaac.md](./setup/06-prod-terraform-iaac.md), [setup/07-prod-ansible-bootstrap.md](./setup/07-prod-ansible-bootstrap.md)
|
||
|
||
### 3. 🗺️ Setup vs Roadmap Matrisi (`setup-vs-roadmap-map.md`)
|
||
İşterler doğrultusunda hazırlanan **Roadmap** dökümanları ile bu isterleri teknik olarak hayata geçiren **Setup** dökümanları arasındaki ilişkiyi açıklar.
|
||
- Hangi roadmap adımının hangi setup dökümanı ile uygulandığını gösteren bir eşleşme matrisidir.
|
||
- [setup-vs-roadmap-map.md](./setup-vs-roadmap-map.md) dökümanından detaylara ulaşılabilir.
|
||
|
||
### 4. 📊 Hetzner Sizing Report (`hetzner-sizing-report.md`)
|
||
İklim altyapı servisleri (API Gateway, Microservices, Databases, Broker) için seçilen **Hetzner sunucu tiplerini, CPU/RAM kapasitelerini ve maliyet/performans analizlerini** anlatır.
|
||
- Ortam kurulumundan önce kapasite planlaması için temel referans noktasıdır.
|
||
- [hetzner-sizing-report.md](./hetzner-sizing-report.md) dökümanını inceleyin.
|
||
|
||
### 5. 💡 Facts (`facts/`)
|
||
Ortam kurulumları tamamlandıktan sonra ortaya çıkan, **sistemin o anki gerçek durumunu (source of truth) ve bilinmesi gereken kritik teknik detayları** barındıran dökümanlardır.
|
||
- "Sistem şu an nasıl çalışıyor?" sorusunun cevabıdır.
|
||
- [facts/firewall.md](./facts/firewall.md): Aktif firewall kuralları ve port matrisi.
|
||
- [facts/swarm-node-recovery-swag-failover.md](./facts/swarm-node-recovery-swag-failover.md): Node düşmesi durumunda manuel müdahale ve recovery prosedürleri.
|
||
|
||
---
|
||
|
||
## 🧱 Kurulum Akışı (Kanonik Sıra)
|
||
|
||
Bir ortamı sıfırdan kurarken veya majör bir güncelleme yaparken şu sırayı takip edin:
|
||
|
||
1. **Analiz:** [hetzner-sizing-report.md](./hetzner-sizing-report.md) ile kaynak ihtiyacını belirleyin.
|
||
2. **Planlama:** `roadmap/` altındaki ilgili ortam dökümanlarını inceleyerek yapılacak değişiklikleri anlayın.
|
||
3. **Hizalama:** [setup-vs-roadmap-map.md](./setup-vs-roadmap-map.md) ile hangi setup dökümanlarını kullanacağınızı netleştirin.
|
||
4. **Uygulama:** `setup/` dökümanlarını (00'dan 09'a kadar) sırasıyla takip ederek Terraform ve Ansible süreçlerini işletin.
|
||
5. **Doğrulama:** Kurulum sonrası sistemin çalışma prensipleri için `facts/` dökümanlarını referans alın.
|
||
|
||
---
|
||
|
||
## ✅ Ön Koşullar ve Araçlar
|
||
|
||
- **Terraform >= 1.6**: Altyapı provisioning.
|
||
- **Ansible**: Konfigürasyon yönetimi.
|
||
- **Hetzner Cloud API Token**: Ortam bazlı yetkilendirme.
|
||
- **SSH Key**: Sunucu erişimi için sisteme tanımlı anahtar çifti.
|
||
|
||
---
|
||
*iklim.co Infrastructure Team - 2026*
|