Ana içeriğe geç

Inventory Management Example

📂 DEVOPS ENVANTER ANALİZİ — MASTER TEMPLATE#


🌐 1. SUNUCU / İNSTANCE ENVANTERİ#

Hostname IP Rol Lokasyon OS Açıklama
jenkins-master 10.0.1.10 Jenkins Server AWS EC2 Ubuntu 22.04 CI/CD yönetimi
bastion-host 10.0.1.5 SSH Proxy AWS EC2 Ubuntu 22.04 Dışa açık tek sunucu
wazuh-server 10.0.2.30 SIEM / Log AWS EC2 Ubuntu 22.04 Wazuh dashboard çalışıyor
eks-node-1 10.0.3.11 K8s Worker EKS Amazon Linux Worker node
eks-node-2 10.0.3.12 K8s Worker EKS Amazon Linux Worker node
db-backend 10.0.4.21 MongoDB Private Subnet Ubuntu 22.04 Prod DB sunucusu

🔐 2. KULLANICI ERİŞİM ENVANTERİ (SUNUCU BAZLI)#

Kullanıcı Erişim Sağladığı Sunucu(lar) Erişim Türü SSH Key Adı Açıklama
devops_ahmet bastion-host, jenkins-master, eks-node-* SSH (Key) id_rsa_ahmet Full erişim
backend_elif eks-node-1, eks-node-2 SSH (Key) id_rsa_elif Uygulama güncelleme
sec_ops_tuna wazuh-server, db-backend SSH (Key) id_rsa_tuna Güvenlik logları izleme
automation_jenkins eks-node-* ServiceAccount + SSH jenkins_deploy_key CI/CD deploy işlemleri

Not: Tüm anahtarlar bastion-host üzerinden erişime açık. Direkt prod sunuculara dış erişim yoktur. 🛡️


📁 3. SSH KEY / CREDENTIAL ENVANTERİ#

Key Adı Kullanıcı Kaynak Şifreli Mi? Nerede Saklanıyor?
id_rsa_ahmet Ahmet local Evet Vault (ya da ansible-vault)
jenkins_deploy_key Jenkins CI GHCR deploy Hayır (read-only) Jenkins credential store
db_password_prod MongoDB Root .env.secret Evet Kubernetes SealedSecret

🛡️ 4. YETKİLENDİRME MATRİSİ#

Rol Jenkins Kubernetes Vault AWS
DevOps (Ahmet) Full Full Admin Full
Developer (Elif) Trigger only Read/Write (dev) IAM: limited
SecOps (Tuna) Logs view Logs view Read IAM: log-reader
Jenkins SA ✖️ Deploy (dev/stage) ✖️ IAM Role: JenkinsDeployRole

🌍 5. ALTYAPI & AĞ ENVANTERİ#

Ağaç Açıklama
VPC vpc-prod-001 (10.0.0.0/16)
Subnet-public 10.0.1.0/24 (bastion, jenkins)
Subnet-private-app 10.0.3.0/24 (eks worker)
Subnet-private-db 10.0.4.0/24 (mongodb)
Security Group: bastion-sg Sadece port 22 dışa açık
Security Group: eks-worker-sg NodePort ve kubelet erişimi için açılmış
Route Table Internet Gateway + NAT Gateway yapılandırılmış

🧯 6. YEDEK & RECOVERY ENVANTERİ#

Bileşen Yedekleme Türü Frekans Nerede Saklanıyor?
MongoDB Prod Snapshot (mongodump) Günlük S3 bucket (prod-db-backups)
Terraform State Versioned S3 Her değişiklikte company-tf-state/prod
Jenkins Home Tar + cron Günlük s3://jenkins-backups/
Logs (Wazuh) Arşiv + Elasticsearch Sürekli Wazuh indexer + S3 cold archive

📋 7. YASAL / KRİTİK BİLGİ POLİTİKASI#

Veri Türü Saklama Süresi Erişim Yetkisi Şifreleme
SSH Key Süresiz Kişisel + Vault admin
Prod DB Dump 30 gün Sadece DBA/SecOps
Jenkins Log 90 gün DevOps + Security
Wazuh Alerts 6 ay SecOps

📦 8. UYGULAMA ENVANTERİ#

Servis Adı Türü Teknoloji Çalıştığı Ortam Durum
auth-service Backend API Node.js (Express) prod, staging Aktif
frontend Web UI React.js prod, staging, dev Aktif
worker Background Job Python (Celery) prod, staging Aktif
report-gen CLI Tool Go manual trigger Beta

🧰 9. GELİŞTİRME & VERSİYON KONTROL#

Alan Bilgi
Git Sistemi GitHub (Private)
Repo Sayısı 4 ayrı repo
Branch Modeli main, develop, feature/*
Tagleme Politikası vX.Y.Z (Semantic Versioning)
CI/CD Trigger Jenkins Webhook (push, PR merge)

🛠️ 10. CI/CD AKIŞI#

Aşama Araç Açıklama
Build Jenkins Docker build
Test Jenkins Unit test + Lint
Push Jenkins GHCR (GitHub Container Registry)
Deploy Jenkins Helm via kubectl
Ortamlar dev, staging, prod Namespace bazlı

📄 Örnek Pipeline:#

pipeline {
  agent any
  stages {
    stage('Build') {
      steps { sh 'docker build -t ghcr.io/myorg/auth-service:latest .' }
    }
    stage('Push') {
      steps { sh 'docker push ghcr.io/myorg/auth-service:latest' }
    }
    stage('Deploy') {
      steps { sh 'helm upgrade --install auth helm/auth --namespace staging' }
    }
  }
}

🐳 11. CONTAINER VE REGISTRY#

Servis Registry Image Adı Tagleme Politikası
auth-service GHCR ghcr.io/myorg/auth-service :latest, :v1.2.3
frontend GHCR ghcr.io/myorg/frontend :vX.Y.Z-dev

☸️ 12. KUBERNETES MİMARİSİ#

Cluster Adı Tip Lokasyon Nodes Ortamlar
main-cluster EKS Frankfurt 1 master, 2 worker dev, staging, prod
Namespace Açıklama
dev Development
staging QA/Test
prod Production (live traffic)

🧭 13. DEPLOYMENT YÖNETİMİ#

Yönetim Aracı Kullanımı
Helm Kullanılıyor (helm install, helm upgrade)
Kustomize Overlay ortamlar için planlandı
Ingress NGINX + TLS (şirket sertifikası)
Certifikalar Şirketin özel TLS sertifikası, secret olarak yüklendi

🔒 14. SECRETS & CONFIG YÖNETİMİ#

Araç Tür Açıklama
Kubernetes Secrets config.json, db password Opaque olarak base64 encoded
Sealed Secrets (opsiyonel) GitOps için Git'e commit edilebilir
Vault (opsiyonel) Long-term strategy HashiCorp Vault değerlendirmede

🛡️ 15. RBAC & ERİŞİM POLİTİKALARI#

Rol Erişim Namespace
Jenkins SA edit + deploy dev, staging
Dev ekibi read-only prod
Prometheus metrics erişimi tümü
Admin cluster-admin tümü

📈 16. MONITORING#

Araç Bileşen Açıklama
Prometheus node-exporter, kube-state-metrics Kapsamlı metrik
Grafana Dashboard'lar Hazır JSON ile kuruldu
Alertmanager Slack CPU, Memory, Pod Crash alert’leri

📜 17. LOGGING VE GÜVENLİK ANALİZİ#

Araç Kurulum Açıklama
Wazuh Helm ile kurulu Agent’lı SIEM sistemi
Agent Durumu Worker node’larda aktif Docker loglarını toplar
Alert sistemi Wazuh Dashboard CVE, FIM, rootkit uyarıları

🧯 18. BACKUP VE FELAKET YÖNETİMİ#

Bileşen Strateji
RDS AWS Backup policy: Daily + weekly
Terraform State S3 bucket + versioning + DynamoDB lock
Jenkins /var/jenkins_home backup (cron + S3)
Logs Wazuh ile central + archive

📤 19. İLETİŞİM VE BİLDİRİM KANALLARI#

Olay Bildirim Yolu
CI/CD build sonucu Slack: #devops
Alertmanager Slack: #alerts
Wazuh Alert Mail + Dashboard
Uptime monitoring StatusCake (opsiyonel)

📚 20. DOKÜMANTASYON & BİLGİ AKIŞI#

Alan Açıklama
README.md Her microservice için zorunlu
Wiki / Notion DevOps süreçleri ve mimari
Dashboard erişimleri Grafana, Wazuh linkleri kayıt altında
Onboarding dökümanları Jenkins, kubectl erişim dökümanı