Mikroservislerde "çalışıyor mu?" sorusunun cevabı tek bir endpoint'ten alınmıyor. Sistem, kendi sağlığını anlatabilmeli.
- Yapısal log: arama yapılabilir, alan bazlı kayıt
- Dağıtık izleme: her isteğin servisler arası yolculuğu
- Metrik: latency, hata oranı ve doygunluk panelleri
Test Pyramidi: Unit, Integration, E2E
Modern bir yazılım projesinde test stratejisi piramit yapısında olmalı: tabanda %70 unit test (hızlı, izole), ortada %20 integration test (servis arası), tepede %10 end-to-end test (gerçek browser ile). Tersine çevrilmiş piramit (çok E2E, az unit) test süreçlerini saatlerce uzatır ve flaky test'leri patlatır. AIOR olarak her PR'da unit + integration testleri zorunlu; E2E testleri ise sadece release branchinde gece çalıştırıyoruz. Coverage hedefi minimum %80; kritik modüller için %95.
CI/CD: Otomatik Build ve Deploy
Manuel deploy = bug üretme makinesi. AIOR'un her projesi GitHub Actions veya GitLab CI üzerinde otomatik pipeline ile çalışır: PR açılır → unit testler çalışır → kod kalite analizi (SonarQube) → security scan (Snyk) → preview environment otomatik kurulur. Merge sonrası otomatik staging'e deploy, manuel onayla production'a. Tüm bu pipeline 8-12 dakika sürer. Bu sayede günde 20-30 deploy yapabilen ekiplerimiz bile sıfır manuel hata ile çalışıyor.
Code Review ve Standartlar
Code review yazılım kalitesinin en ucuz ve en etkili sigortasıdır. Her PR en az 1 senior reviewer tarafından onaylanmadan merge edilemez. Review checklist: 1) Test coverage yeterli mi? 2) Security açığı var mı? 3) Performance darbesi yaratıyor mu? 4) Kod stili tutarlı mı? 5) Dokümantasyon güncel mi? Otomatize edilebilen kısmlar (lint, format, type check) PR açılır açılmaz çalışır; insan reviewer'ın enerjisi mantık ve mimari kararlara odaklanır.
Production İzleme ve Hata Takibi
Yazılım production'a alındıktan sonra; kullanıcının yaşadığı her hata bir geri bildirim sinyalidir. AIOR olarak Sentry + Datadog kombinasyonuyla; production'da fırlatılan her exception otomatik yakalanır, kullanıcı session video'su ile birlikte mühendis ekibe gönderilir. Tipik olarak bir kritik hata, kullanıcı support'tan haber vermeden önce 8-12 dakika içinde ekibimize ulaşır. Bu reaktivite hız avantajı; müşteri memnuniyetinde doğrudan ölçülebilir bir farktır.