GitOps A→Z (Mid+)
🗺️ DevOps GitOps Uygulama Yol Haritası (A'dan Z'ye)#
Her adım:
- Ne yapılacak?
- Hangi araçla?
- Amaç ne?
- Ve gerekirse: Bu adım neden önce yapılmalı?
🟥 A. PLANLAMA & ENVANTER (Hazırlık)#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| A1 | Envanter çıkar | — | Tüm servisler, ortamlar, portlar, bağımlılıklar listelenir |
| A2 | Git stratejisi belirle | GitHub | Branch modeli: main, develop, feature/* |
| A3 | Repo & erişim politikaları | GitHub / IAM | Kim neye erişir? GitHub repo yetkileri ayarlanır |
🟧 B. ALTYAPI OTOMASYONU (IaC - Terraform)#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| B1 | Terraform yapılandırması | Terraform | provider.tf, main.tf, outputs.tf |
| B2 | AWS kaynakları kurulumu | Terraform | EC2, EKS, VPC, IAM rolleri |
| B3 | Terraform state yönetimi | S3 + DynamoDB | Remote state + versioning + locking |
| B4 | SSH erişimi yapılandır | AWS + Terraform | EC2'lere bastion ya da jump host ile erişim |
🟨 C. CONTAINERIZATION & REGISTRY#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| C1 | Dockerfile’ları yaz | Docker | Multistage build, .dockerignore |
| C2 | Image versiyonlama stratejisi | GHCR | ghcr.io/org/service:tag |
| C3 | Jenkins’in GHCR erişimi | Jenkins | Personal Access Token ile push hakkı tanımla |
🟦 D. CI/CD PIPELINE KURULUMU#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| D1 | Jenkins kurulumu | Jenkins | Docker ya da EC2 üstünde |
| D2 | Plugin'leri yükle | Jenkins UI | Git, Docker, Prometheus plugin'leri |
| D3 | İlk pipeline (build-push-deploy) | Jenkinsfile | GHCR’ye image push → k8s deploy |
🟪 E. KUBERNETES YAPILANDIRMASI#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| E1 | Kubernetes cluster kurulumu | EKS / kubeadm | Master + Worker node'lar |
| E2 | Namespace organizasyonu | Kubernetes | dev, staging, prod namespace oluştur |
| E3 | Helm & Kustomize altyapısı | Helm, Kustomize | Ortam bazlı deploy yönetimi |
| E4 | Ingress controller kurulumu | NGINX Ingress | TLS destekli, multi-host |
| E5 | Şirket SSL’inin yüklenmesi | TLS Secret | Cert/key dosyaları ile secret oluştur |
🟫 F. OBSERVABILITY (MONITORING + LOGGING)#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| F1 | Prometheus + Grafana kurulumu | Helm | kube-prometheus-stack |
| F2 | Exporter’lar | node-exporter, kube-state-metrics | Kaynak & pod gözlemi |
| F3 | Alertmanager konfigürasyonu | Alertmanager | Slack/Mail entegrasyonu |
| F4 | Fluent Bit kurulumu | Fluent Bit | Tüm pod logları toplanır |
| F5 | Elasticsearch + Logstash + Kibana | Wazuh | Log arama ve görselleştirme |
🟨 G. GÜVENLİK & YÖNETİM#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| G1 | RBAC rolleri | Kubernetes | Jenkins, dev, prod erişim rolleri |
| G2 | Secrets yönetimi | Vault / Sealed Secrets | Vault önerildi; kube-secrets destekli alternatif |
| G3 | Audit policy oluştur | Kubernetes / Jenkins / Vault | API, login, deploy gibi hareketler loglanır |
🟩 H. YEDEKLEME & FELAKET KURTARMA#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| H1 | RDS snapshot planı | AWS Backup | Günlük/haftalık snapshot |
| H2 | Jenkins config backup | Cronjob + S3 | jenkins_home klasörü arşivlenir |
| H3 | Terraform state backup | S3 + versioning | Otomatik olarak zaten koruma altında |
🟦 I. GİTOPS ENTEGRASYONU#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| I1 | Manifest'leri Git'e al (tek kaynak) | Git + Kustomize | k8s/base, k8s/overlays/staging — Git = single source of truth |
| I2 | Pull-based reconcile | ArgoCD / Flux | Controller cluster içinden Git'i izler, drift'i otomatik düzeltir (CI kubectl apply ile push etmez) |
| I3 | Git üzerinden rollback | git revert + auto-sync | Commit geri alınır, controller eski state'e kendiliğinden reconcile eder |
🟪 J. DOKÜMANTASYON & OTOMATİK BİLDİRİM#
| Adım | Konu | Araç | Açıklama |
|---|---|---|---|
| J1 | Proje wiki veya Notion sayfası | Notion / Markdown | Sistem diyagramı, kullanılan araçlar |
| J2 | Slack entegrasyonu | Alertmanager + Jenkins | Pipeline bildirimleri + uyarı mesajları |
| J3 | Dashboard linkleri paylaşımı | Grafana / Kibana | Takım içinde görünürlük sağlar |