CI/CD VE DEVOPS EĞİTİMİ
CI/CD ve DevOps eğitimi, "deploy ediyoruz" cümlesini saatlik ritme ve güvenli akışa indiren bir disiplin kazandırmak için tasarlandı. GitHub Actions, GitLab CI veya Jenkinsfile gibi araçlar üzerinden declarative pipeline kurulumu; build, test, scan ve deploy aşamalarının ayrıştırılması işlenir. Sürekli teslimat ile sürekli dağıtım arasındaki ayrım net çizilir.
Eğitim sonunda katılımcı, Vault veya Sealed Secrets ile credential'ı kod dışına çıkarır; blue-green, canary ve rolling deploy stratejileri arasında ürün gereksinimine göre seçim yapar. DORA metrikleri (deploy frequency, lead time, MTTR, change failure rate) ile ekibin kalite seviyesini ölçer.
Katılımcı Profili
Bu eğitim, deploy hattını kontrollü, ölçülebilir ve hızlı tutmak isteyen rollere yöneliktir:
- DevOps Mühendisleri: Pipeline ve deploy otomasyonu kuran roller
- SRE'ler: Reliability ve observability ile CI/CD'yi birlikte yöneten mühendisler
- Backend Geliştiriciler: Kendi servisini deploy edebilen full-cycle mühendisler
- Platform Mühendisleri: Internal Developer Platform kuran roller
- Test Otomasyoncuları: Test pipeline'ını CI/CD'ye entegre eden QA mühendisleri
Ön Gereklilikler
Bu eğitime katılım için aşağıdaki ön bilgiler önerilir:
- En az bir programlama dilinde geliştirme deneyimi
- Git ile branch, merge ve PR workflow'una aşinalık
- Komut satırı (Bash veya PowerShell) ile rahat çalışma
- Docker temellerine giriş düzeyinde aşinalık
- Linux dosya sistemi ve servis kavramlarına temel aşinalık
Süresi ve Tarihi
Süre: 3 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.
Kazanımlar
Eğitim bitince katılımcı, "deploy edebiliyoruz" cümlesini saatlik ritme indiren bir pipeline kurabilir:
- CI ve CD ayrımını açıklar — sürekli teslimat ile sürekli dağıtım aynı şey değil
- Pipeline'ı declarative YAML ile yazar (GitHub Actions, GitLab CI, Jenkinsfile)
- Build, test, scan, package, deploy aşamalarını ayırır ve cache'ler
- Trunk-based ile feature branch arasında ekip yapısına göre seçer
- Blue-green, canary ve rolling deploy stratejileri arasında karar verir
- Vault veya Sealed Secrets ile credential'ı kod dışına çıkarır
- DORA metrikleri (deploy freq, lead time, MTTR, CFR) ile ekibi ölçer
CI/CD ve DevOps Eğitimi Konuları
1. CI/CD - Continuous Integration ve Delivery Ayrımı
- CI ne yapar, CD ne ekler: ayrıntı netliği
- Continuous Delivery ve Continuous Deployment farkı
- "Pipeline" felsefesi: değişiklik = otomatik yayın yolu
- DevOps kültürü ve "wall of confusion" yıkımı
- Resmi kaynak: DORA
2. DORA Metrikleri - DevOps Performansının Bilimi
- Lead Time for Changes
- Deployment Frequency
- Change Failure Rate
- Mean Time to Recovery (MTTR)
- Elite, High, Medium, Low performans bantları
3. Branching Stratejileri - GitFlow ve Trunk-Based
- GitFlow: release ve hotfix branch'leri
- GitHub Flow: main ve kısa-ömürlü feature
- Trunk-Based Development ve feature flag tamamlayıcılığı
- Pull request ve code review disiplini
- Conventional Commits ve otomatik changelog
4. Pipeline as Code - YAML Disiplini
- Pipeline'ı kod olarak versiyonlama
- Reusable workflow ve template pattern
- Matrix build ve paralel job tasarımı
- Conditional execution ve guard step
- Pipeline test edilebilirliği
5. GitHub Actions - Marketplace ve Reusable Workflow
- Workflow, job, step yapısı
- Runner tipleri: GitHub-hosted ve self-hosted
- Marketplace action seçimi ve güvenlik kontrolü
- Composite action ve reusable workflow
- Secrets, environments ve manual approval
6. GitLab CI ve Jenkins
- .gitlab-ci.yml yapısı ve stage'ler
- Jenkins Pipeline: Declarative ve Scripted
- Shared library ve plugin yönetimi
- Agent ve executor yapılandırması
7. Build Otomasyonu ve Cache Stratejileri
- Build tool: Maven, Gradle, npm, pip, Make
- Dependency lock dosyaları ile sürüm tutarlılığı
- Layer ve dependency cache hızlandırma
- Artifact üretimi ve naming convention
- Reproducible build prensibi
8. Test Piramidi Pipeline'da
- Unit, integration, end-to-end test seviyeleri
- Test paralelizasyonu ve sharding
- JUnit XML, Cobertura rapor formatları
- Flaky test tespiti ve karantina pattern'i
- Coverage hedefleri ve gaming önlemi
9. Kod Kalitesi - Lint, SAST, SCA
- Linter ve formatter (pre-commit hook ile)
- SAST (Static Application Security Testing)
- SCA (Software Composition Analysis) ile bağımlılık taraması
- SonarQube, CodeClimate gibi kalite platformları
- Quality gate eşikleri ve PR decoration
10. Docker ve Multi-Stage Build
- Dockerfile söz dizimi ve best practices
- Multi-stage build ile image boyutu küçültme
- Layer cache ve build optimizasyonu
- Distroless ve minimal base image
- BuildKit ve cross-platform image
11. Container Registry ve Image İmzalama
- Docker Hub, GitHub Container Registry, Harbor
- Private registry erişim kontrolü
- Image vulnerability scanning (Trivy, Snyk)
- SBOM (Software Bill of Materials) üretimi
- cosign ile image imzalama ve doğrulama
12. Kubernetes Deployment Temelleri
- Pod, Deployment, Service, Ingress kavramları
- kubectl ile manifest uygulama
- ConfigMap ve Secret yönetimi
- Rolling update, readiness ve liveness probe
- Helm ve Kustomize ile manifest yönetimi
13. Deployment Stratejileri - Rolling, Blue-Green, Canary
- Rolling update ve gradual replacement
- Blue-Green ile sıfır kesinti
- Canary release ve traffic splitting
- Argo Rollouts ve Flagger ile otomatik analiz
14. Feature Flag ve Progressive Delivery
- Feature flag tipleri: release, experiment, ops, permission
- LaunchDarkly, Unleash, OpenFeature
- A/B test ve hipotez doğrulama
- Dark launch ve trunk-based ile sinerji
- Flag debt ve temizlik disiplini
15. Infrastructure as Code - Terraform
- HCL söz dizimi ve resource tanımı
- Provider, module ve workspace yapısı
- State management ve remote backend
- plan, apply, destroy lifecycle
- Drift detection ve state lock
- OpenTofu ve fork ekosistemi
16. Secret ve Konfigürasyon Yönetimi
- 12-Factor App config prensibi
- HashiCorp Vault ve dynamic secret
- AWS Secrets Manager, Azure Key Vault
- SOPS ve sealed-secrets ile şifreli config
- Secret rotation ve audit log
17. Gözlemlenebilirlik - Üç Sütun
- Metrics: Prometheus ve cardinality dikkati
- Logs: Loki, ELK, structured logging
- Traces: Jaeger, Tempo, distributed tracing
- OpenTelemetry ile vendor-bağımsız instrumentation
- SLO, SLI ve error budget yaklaşımı
18. Incident Response ve Postmortem
- Otomatik rollback tetikleyici ve health check
- Database migration ve geri alınabilirlik
- Incident playbook ve runbook tasarımı
- Blameless postmortem disiplini
- Chaos engineering ile dayanıklılık testi
- Game day ve hazırlık egzersizi
CI/CD VE DEVOPS EĞİTİMİ ile İlgili
Sıkça Sorulan Sorular ve Cevapları
Continuous Delivery ile Continuous Deployment arasındaki fark nedir?
Continuous Delivery her commit'i deploy edilebilir hale getirir, ama prod'a geçiş manuel onaydadır. Continuous Deployment ise testler geçince otomatik prod'a gider — manuel onay yoktur. CD-Deployment için test kapsamı ve gözlem altyapısı çok olgun olmalıdır.
Trunk-based development ile feature branch arasında karar nasıl verilir?
Trunk-based küçük commit'lerle main'e sık entegrasyon — feature flag ile yarım kalan iş prod'a gidebilir. Feature branch izole geliştirmeye izin verir ama merge çakışması riski ve uzun-ömürlü branch problemleri yaratır. Yüksek tempolu ürün ekipleri trunk-based'e yöneliyor.
Blue-green, canary ve rolling deploy ne zaman hangisi?
Blue-green iki ortam — anlık geçiş, hızlı rollback ama 2x kaynak. Canary trafiğin %1-5'ini yeni sürüme yönlendirir, metriklere göre artırılır. Rolling her instance'ı sırayla günceller, kaynak kullanımı en düşük ama hata yayılma riski daha yüksek. Risk profili karar belirler.
HashiCorp Vault ile Sealed Secrets arasında nasıl seçim yapılır?
Vault enterprise-grade secret yönetimi, dinamik credential, audit log ve broad ekosistem sunar — ayrı servis ve operasyonel yük. Sealed Secrets Kubernetes-native; secret'ı public repo'ya commit edilebilir hale şifreler. Tek K8s cluster'da yeterli; multi-cluster ve dinamik secret için Vault doğru.
DORA metrikleri ekip kalitesini nasıl gösterir?
Deploy Frequency, Lead Time for Changes, Change Failure Rate ve MTTR (Mean Time to Recovery). Elite performans takımları günde 1+ deploy, 1 saat altı lead time, %15 altı failure rate ve 1 saat altı MTTR gösterir. Bu 4 metrik 'low' ile 'elite' arasında ekibin DevOps olgunluğunu özetler.
Pipeline cache stratejisi build süresini nasıl etkiler?
Dependency cache (node_modules, .m2, .nuget) ilk indirme süresini eler. Docker layer cache başka katmanlardaki değişiklikleri etkilemez. Test cache aynı dosyada değişiklik yoksa testi atlar (Nx, Bazel). Doğru cache stratejisi build süresini 10 dakikadan 1 dakikaya indirebilir.



