Senior (L5)
⚡ÖZET VE TEKNİK CEVAP
Bulut modernizasyonundaki en yaygın hata 'Zombi Monolit' (Zombie Monolith) Tuzağıdır: Mühendislik ekibi 2 yıl boyunca Boğucu İncir (Strangler Fig) modeliyle harika mikroservisler yazar, trafiğin %98'ini taşır, zafer ilan eder ve yeni ürün özelliklerine geçer. Ancak kimse kalan %2'lik unutulmuş eski cron görevlerini ve veritabanı tetikleyicilerini (triggers) temizleme zahmetine girmez. Sonuç olarak o eski monolit sunucular ve eski veritabanı yıllarca AWS'te çalışmaya devam eder: Ayda $15.000 bulut faturası yakar, güvenlik açığı üretir ve nöbetçileri eski kılavuzları tutmaya mahkum eder. Başarılı liderlik Sistemi Devreden Çıkarmayı (Decommissioning) 1. Sınıf Bir Başarı Hedefi olarak görür:
1
'Işıkları Kapatma' (Scream Test) Protokolü: Gizli bağımlılıkları bulmak için eski sisteme giden trafiği kontrollü olarak kesmek.
2
Altyapıyı Tamamen İmha Etmek: Eski sunucuları, veritabanlarını ve hesapları
terraform destroy ile tamamen silmek.3
Kapatma Kutlaması: Bir pasta kesip ekibin başarısını kutlamak ve eski Git deposunu salt-okunur arşive çekmek.
Mühendislik El Kitabı & Mekanizma
6 Boyutlu Mimari Analiz⚙️1. Temel Çalışma Mekanizması
MekanizmaSistemi devreden çıkarma süreci 5 adımlı bir kapatma kontrol listesiyle işler:
1
Trafik Denetimi: Datadog loglarından eski yük dengeleyiciye 30 gün boyunca sıfır trafik geldiği doğrulanır.
2
Kontrollü Çığlık Testi (Scream Test): Mesai saatinde 4 saatliğine eski veritabanı şifreleri geçici kapatılır; hiçbir servis hata vermez veya çığlık atmazsa yol temizdir.
3
Son Kriptografik Arşiv: Eski veritabanının silinemez son bir WORM yedeği alınır ve arşive kaldırılır.
4
Altyapı İmhası:
terraform destroy komutuyla eski tüm sunucular, veritabanları ve DNS kayıtları tamamen silinir.5
Git Arşivleme: Eski Git deposu salt-okunur (Archive) durumuna getirilerek yeni mikroservis katalog linki eklenir.
🎯2. Doğru Kullanım Senaryosu
KapsamMonolitten mikroservise geçiş projelerinin tamamlanması, eski veritabanlarının kapatılması, süresi dolmuş API sürümlerinin kaldırılması ve bulut sağlayıcı taşıma projeleri.
⚠️3. Prodüksiyon Arıza Modları
Kritik Risk- ✓Ayın 1'inde çalışan gizli bir maaş hesaplama script'ini fark etmeden eski veritabanını silip şirket bordrosunu kilitlemek
- ✓bir şey bozulur korkusuyla 50 tane eski sunucuyu yıllarca boş yere çalıştırmaya devam etmek
📡4. Teşhis ve Telemetri Sinyalleri
Metrikler- ✓AWS faturasında 2 yıl önce kapatılmış olması gereken 'eski-monolit-db' için her ay $12.000 ödendiğinin görülmesi
- ✓mühendislerin eski kodları silmekten korkması
- ✓aynı API'nin 4 farklı eski sürümünün canlıda hala çalışması
🛡️5. Önleme ve Mimari Bariyerler
Bariyerler- ✓Proje başlangıç sözleşmesinde 'Devreden Çıkarma Bitiş Kriterini' (DoD) açıkça tanımlayın
- ✓kalıcı silmeden önce yapılandırılmış Çığlık Testleri (Scream Test) yapın
- ✓geri kazanılan bulut bütçesini finansal başarı olarak raporlayın
⚖️6. Mimari Ödünleşimler (Trade-offs)
ÖdünleşimEski sistemi kapatmak güvenlik açıklarını yok eder ve ayda on binlerce dolar tasarruf sağlar; ancak kimsenin uğraşmak istemediği son %2'lik karmaşık köşe durumları temizlemek için odaklanmış bir sprint mesaisi gerektirir.
📋
GERÇEK DÜNYA TELEMETRİSİVaka İncelemesi (TinyCTO Saha Örneği)
Bir finans şirketi Ruby on Rails monolitinden Go mikroservislerine 18 ayda geçti. Taşıma 'tamamlandı' ilan edildi ancak tek bir aylık vergi raporlama görevi taşınmadığı için eski Rails sunucuları 14 ay boyunca AWS'te açık bırakıldı. Bu zombi monolit ayda 16.000 yakıyor ve haftada 4 güvenlik açığı üretiyordu. CTO acil bir Devreden Çıkarma Sprinti başlattı:
1
Vergi görevini 3 günde bir AWS Lambda fonksiyonuna taşıdı,
2
Rails veritabanı şifrelerini kapatarak 24 saatlik Çığlık Testi yaptı (sıfır hata alındı), ve
3
terraform destroy ile eski altyapıyı tamamen yıkarak yılda 192.000 tasarruf sağladı. Ekip sunucu şeklinde bir pasta keserek 'Monolit Cenaze Partisi' düzenledi ve işi yarım bırakmama kültürünü pekiştirdi.İnteraktif Konsept Alıştırmaları
2 AlıştırmaQ1
Eski yazılımları devreden çıkarmada 'Çığlık Testi' (Scream Test / Işıkları Kapatma Testi) nedir?
Gizli ve unutulmuş bağımlılıkları ortaya çıkarmak amacıyla; eski bir servisin veya veritabanının erişimini mesai saatinde kontrollü ve geri alınabilir şekilde geçici olarak kapatıp, herhangi bir sistemin 'çığlık atıp atmadığını' (hata verip vermediğini) test etme yöntemidir.
Q2
Eski bir sistemi kapatırken bir 'Kapatma Töreni' veya kutlama yapmak neden önemlidir?
Ekibe psikolojik bir kapanış hissi verir, teknik borç temizlemenin zorlu emeğini takdir eder ve bir projenin ancak eski sistem tamamen yok edildiğinde gerçekten bitmiş sayılacağı kültürünü yerleştirir.
Eski Sistem Modernizasyonu: Monoliti Devreden Çıkarma (Decommissioning), Kapatma Törenleri ve 'Işıkları Söndürme' Sanatı — Sıkça Sorulan Sorular
Kapatılan eski bir projenin Git deposuna ne yapılmalıdır?
Depoyu ASLA tamamen silmeyin; GitHub üzerinde 'Arşivlendi / Salt-Okunur' (Archived) moduna getirin ve README dosyasına yeni modern servislerin linklerini ekleyin.
Ekipler eski sistemdeki son %2'lik özellikleri neden yıllarca taşımayıp yarım bırakır?
Çünkü ilk %98'lik ana özellikler şirkete görünür bir değer katar; son %2'lik dilim ise dokümante edilmemiş, çözmesi zahmetli ve alkış getirmeyen karmaşık köşe durumlardan oluşur.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸Zombi Monolitler her ay binlerce dolar bulut faturası yakar ve güvenlik açığı üretir.
- ▸Gizli bağımlılıkları güvenle ortaya çıkarmak için kontrollü Çığlık Testleri yapın.
- ▸Sunucuları, veritabanlarını ve DNS kayıtlarını
terraform destroyile tamamen silin. - ▸Eski sistemin kapatılmasını kutlayın ve Git deposunu salt-okunur arşive alın.
Yaygın Yanılgılar
- ✗Yanılgı: Trafiğin %100'ü yeni servise geçtiğinde taşıma projesi bitmiştir (Gerçek: Taşıma ancak eski altyapı tamamen imha edildiğinde gerçekten bitmiş sayılır).
- ✗Yanılgı: Eski monoliti yedek olarak arka planda açık bırakmanın hiçbir maliyeti yoktur (Gerçek: Boşta duran monolitler binlerce dolar yakar ve sürekli güvenlik yaması gerektirir).
Karar Kılavuzu & Önceliklendirme
Tüm mimari dönüşüm projelerine resmi devreden çıkarma aşamaları ekleyin; tam bir teknik kapanış için Çığlık Testleri ve
terraform destroy ile eski altyapıyı tamamen temizleyin.Doğrulanmış Kaynaklar & Referanslar
- [ARTICLE]Martin Fowler: StranglerFigApplication & Completing the Migration Cycle— Martin Fowler / ThoughtWorks Architecture Guides
