Environment_Infrastructure/setup-vs-roadmap-map.md
Murat ÖZDEMİR 720c79d460 Add Hetzner Cloud production infrastructure with multi-node support
- This commit introduces the Terraform configuration to provision a production environment on Hetzner Cloud, building on the existing test setup.
- Key improvements and new features include:
* **Multi-node clusters:** Scaling to 3-node Swarm application and database clusters for improved resilience.
* **High availability:** Utilizing a Hetzner Floating IP for the application entry point and `spread` placement groups for fault tolerance across physical hosts.
* **Enhanced network security:** Internal management services (RabbitMQ, APISIX, Prometheus, Grafana) are restricted to the application subnet, expected to be accessed via an internal reverse proxy (SWAG).
* **Internal database replication:** New firewall rules enable PostgreSQL replication and MongoDB replica set traffic within the database subnet.
* **Refined test environment:** Updates to align `test` configuration with the new `prod` structure, including a dedicated floating IP and adjusted firewall rules.
* **Configuration standardization:** Environment-specific details moved to `locals.tf` for clarity, with upgraded server types and migration to Rocky Linux as the base image.
- Updates were also made to the latest version of Terraform to ensure consistency in the documentation
2026-05-10 15:43:22 +03:00

5.6 KiB
Raw Blame History

Setup Aşamaları — Roadmap Eşleştirme Tablosu

Bu tablo, roadmap/test-env ve roadmap/prod-env klasörlerindeki yol haritası adımlarının Terraform/Ansible setup aşamalarından hangisinde ele alındığını gösterir.

TEST ortamı

Roadmap adımı Hangi aşamada ele alınmalı
Hetzner firewall (sadece 22/80/443) Terraform 01-test-terraform-iaac.mdfirewall.tf
Sunucu oluşturma (iklim-app-01, iklim-db-01) Terraform 01-test-terraform-iaac.mdservers.tf
Private network + placement group (iklim-test-spread) Terraform 01-test-terraform-iaac.mdnetwork.tf, placement.tf
Floating IP (iklim-test-app-fip) Terraform 01-test-terraform-iaac.mdfloating_ip.tf
Docker Engine kurulumu Ansible 02-test-ansible-bootstrap.mddocker role
Security hardening (SSH, firewalld, fail2ban) Ansible 02-test-ansible-bootstrap.mdhardening role
Docker Swarm init (init/swarm-init.sh) Ansible 02-test-ansible-bootstrap.mdswarm role (pipeline script idempotent çalışmaya devam eder)
type=service node label Ansible 02-test-ansible-bootstrap.mdswarm role
/opt/iklimco/... dizinleri Ansible 02-test-ansible-bootstrap.mdnode_dirs role
StorageBox DAVFS mount (u469968-sub1) Ansible 02-test-ansible-bootstrap.mdstoragebox role
act_runner systemd kurulumu Ansible 03-test-runner-ve-deploy-onkosullari.mdgitea_runner role
GoDaddy credentials storagebox'a yükleme Manuel kalır — secret yönetimi, Terraform/Ansible dışı

PROD ortamı

Roadmap adımı Hangi aşamada ele alınmalı
6 sunucu oluşturma (iklim-app-01/02/03, iklim-db-01/02/03) Terraform 04-prod-terraform-iaac.mdservers.tf
Private network + 2 placement group Terraform 04-prod-terraform-iaac.mdnetwork.tf, placement.tf
Firewall (sadece 22/80/443 public) Terraform 04-prod-terraform-iaac.mdfirewall.tf
Floating IP (iklim-prod-app-fip, iklim-app-01'e atanır) Terraform 04-prod-terraform-iaac.mdfloating_ip.tf
Docker Engine kurulumu (iklim-app-*) Ansible 05-prod-ansible-bootstrap.mddocker role
Security hardening (tüm node'lar) Ansible 05-prod-ansible-bootstrap.mdhardening role
Swarm init (iklim-app-01) Ansible 05-prod-ansible-bootstrap.mdswarm role
Manager join (iklim-app-02, iklim-app-03) Ansible 05-prod-ansible-bootstrap.mdswarm role
type=service node label (3 swarm node) Ansible 05-prod-ansible-bootstrap.mdswarm role
/opt/iklimco/... dizinleri Ansible 05-prod-ansible-bootstrap.mdnode_dirs role
StorageBox DAVFS mount (u469968-sub2) Ansible 05-prod-ansible-bootstrap.mdstoragebox role
3× act_runner systemd (HA runner) Ansible 06-prod-runner-ha-ve-swarm.mdgitea_runner role
GoDaddy credentials storagebox'a yükleme Manuel kalır — secret yönetimi, Terraform/Ansible dışı
DB node'ları Swarm'a join Kapsam dışı — DB cluster ayrı yönetilir

Klasör yapısı

Environment_Infrastructure/
  setup/                         ← Terraform + Ansible aşama dokümanları
    00-genel-yol-haritasi.md
    01-test-terraform-iaac.md
    02-test-ansible-bootstrap.md
    03-test-runner-ve-deploy-onkosullari.md
    04-prod-terraform-iaac.md
    05-prod-ansible-bootstrap.md
    06-prod-runner-ha-ve-swarm.md
    07-private-network-port-matrisi.md
  roadmap/
    test-env/                    ← Test ortamı Roadmap adımları
    prod-env/                    ← Prod Roadmap adımları
  setup-vs-roadmap-map.md        ← Bu dosya