# Digital Immune System
Sistemlerin, süreçlerin sağlığının tanımlanması, izlenmesi ve kontol noktalarının belirlenmesi için gereken kavramların, aksiyonların bütünsel başlığıdır.
## Kavramlar
### Post-Mortem
Bir olay olduktan sonra (burada olaydan kastımız bir veya birden fazla servisin sorun yaşamasıdır) olayın otopsisi yapılır. Bu otopsinin yapılma sebebi olayın tüm yönleriyle açığa çıkarılmasını sağlamak ve akabinde de tekrar olmasını engellemektir. Olayların otopsilerini çıkarırken amacımız kesinlikle birilerini suçlamak ve cezalandırmak olamaz. Eğer böyle yaparsak bir sonraki otopsimize katılım azalacak ve hatta karşılıklı suçlamalar başlayacaktır. Sonuç olarak bu durum otopsinin doğruluğunu etkileyecektir.
Otopsi hazırlamak servis veya servisler için olumu bir durumdur. Bu bir iyleştirme fırsatıdır. Bir otopsinin içeriğinde temelde aşağıdakiler olsada esnek tutmak gerekir.
* Son kullanıcı açısından sorunun ilk görülme zamanı ve biçimi
* Sorun boyunca veri kaybı oldumu
* Soruna ne zaman, nasıl müdahale edildi
* Sorun ne zaman çözüldü
* Sorunun izleme sistemlerince görülmeme sebebi
* Sorunun izleme sistemlerince görülmesinin sağlanması
Olay otopsisinden sonra tüm ilgililerden gelen draft yazışmalar ve notlar birleştirilerek nihai bir otopsi raporu oluşturulur. Ekip sorumlularıyla nihai rapor doğrulandıktan sonra bilgilendirme geçilir. Rapor üzerinde not düşülen aksiyonlar var ise bunların harekete geçilmesi için planlamalar ve yazışmalar yapılır. Sonuçta olayın bu şekliyle birdaha tekrarlanması sağlanır.
### Site Reliability Engineering (SRE)
SRE sorumlu olduğu uygulamaları genel olarak aşağıdaki açılardan dikkate alan bir ekiptir.
* Sürekli erişilebilir olmak (Availability)
* Gecikmeleri azaltmak (isteklerimiz ile dönen cevaplar arasındaki bekleme sürelerimiz gibi)
* Uygulamaların izlenebilir olması (monitoring)
* Uygulamaların davranışlarının kayıt altına alınması (logging)
* Kesinti veya problemlere etkin müdahale etmek
* Uygulamaların gereksinimlerini SRE açısından da değerlendirerek kapasite planı yapmak
* Uygulamaların güncellenme veya geri dönme prosedürlerini SRE açısından değerlendirmek
SRE takımı L1 ekibinden gelen sorun çağrılarına boğulmamalıdır. SRE takımı zamanın büyük kısmını yönettiği servislerin SRE açısından geliştirmesine ayırmalı, bunun için kodlar yazmalı, araçlar geliştirmelidir.
### Autoremediation
### Chaos Engineering
> https://github.com/dastergon/awesome-chaos-engineering
### Observability
### Supply Chain Security
## Aksiyonlar
- [ ] Her bir kavramların teknik gereksinimlerinlerinin netleştirilmesi beklenmekltedir. Temel gereksinim ve aksiyonları kavram altına tanımlanmalıdır. Uygulama geliştirmecilere bu bilgilendirme yapılmalı, geliştirme süreçlerinde bu kavramlarıda değerlendirmeleri sağlanmalıdır.
- [ ] Uygulama kartlarına her bir kavram için **olgunluk seviyesi** ve **açıklama** alanı eklenmelidir.
- [ ] Uygulamalar için kavramlar bütününde bir değerlendirme yapılmalı uygulamarımızın durumu netleştirilmelidir.
## Referanslar
https://sre.google/sre-book/postmortem-culture/
https://sre.google/sre-book/introduction/