“Prodüksiyonu çökertmek”, prodüksiyon sunucusunda arızaya neden olan ve uygulamayı kullanıcılar için kullanılamaz hale getiren değişiklikler yapmak anlamına gelen bir argo ifadedir. AWS DevOps 2024 raporuna göre, ekiplerin yaklaşık %65'i en az bir kez insan faktörünün neden olduğu bir prodüksiyon olayıyla karşılaşmıştır. Prodüksiyon kesintisi iş metriklerini doğrudan etkiler ve ekibin anında müdahalesini gerektirir.
Ana Noktalar
Prodüksiyonu çökertmek, prodüksiyon ortamındaki bir uygulamanın düzgün çalışmayı durdurduğu durumu ifade eden resmi olmayan bir terimdir. Test veya staging ortamının aksine, prodüksiyon gerçek kullanıcılara hizmet verir, bu nedenle herhangi bir arıza iş için kritik öneme sahiptir.
“Prodüksiyonu çökertmek” ifadesi, işlevselliğin kısmen bozulmasından hizmetin tamamen kullanılamamasına kadar farklı ciddiyet derecelerini ifade edebilir. ITIL terminolojisinde bu, bir olay (incident) — planlanmamış bir kesinti veya hizmet kalitesinde düşüş — olarak sınıflandırılır. Hizmetin kritikliği ne kadar yüksekse, ekibin o kadar hızlı yanıt vermesi gerekir.
Modern DevOps uygulamaları, prodüksiyon çökmelerinin sonuçlarını en aza indirmeyi amaçlar. Datadog, New Relic ve Sentry gibi araçlar, prodüksiyon durumunu gerçek zamanlı olarak izlemeyi ve anormallikler hakkında ekibi otomatik olarak bilgilendirmeyi sağlar.
# Quick rollback to previous version
kubectl rollout undo deployment/api-server
# Check deployment status
kubectl rollout status deployment/api-server
# View recent logs for error analysis
kubectl logs deployment/api-server --tail=100 --since=10m
Bu örnek, Kubernetes'te bir dağıtımı geri almak için tipik komutları gösterir. Hızlı geri alma, prodüksiyonda bir sorun tespit edildiğinde ilk adımdır ve hizmetin çalışır durumunun dakikalar içinde geri yüklenmesini sağlar.
Stripe tarafından 2023 yılında gerçekleştirilen 500'den fazla prodüksiyon olayının analizi, ana neden kategorilerini belirlemiştir. Olayların dağılımı, geliştirme ve dağıtım süreçlerindeki tipik zayıf noktaları yansıtır.
| Neden | Açıklama | Pay |
|---|---|---|
| Dağıtım hataları | yanlış sürüm, hatalı ortam değişkenleri | 32% |
| DB sorunları | bozuk geçiş, tablo kilitlenmeleri | 25% |
| Yük | beklenmeyen trafik artışı, bellek sızıntısı | 18% |
| Yapılandırma | yanlış bayraklar, silinen sırlar | 15% |
| Dış hizmetler | API arızası, DNS veya CDN sorunları | 10% |
Dağıtım hataları tüm olayların yaklaşık üçte birini oluşturur. Bu en çok, değişiklikler uygun doğrulama olmadan manuel olarak dağıtıldığında meydana gelir. Çok aşamalı kontrole sahip CI/CD boru hatları aracılığıyla dağıtım otomasyonu, prodüksiyon çökmesi riskini önemli ölçüde azaltır.
Veritabanı geçiş sorunları özel ilgiyi hak ediyor. Yanlış bir geçiş sadece prodüksiyonu çökertmekle kalmaz, aynı zamanda geri döndürülemez veri kaybına da yol açabilir. Bu nedenle geçişler, yürütme öncesinde zorunlu yedekleme ile boru hattının ayrı bir adımında çalıştırılır.
Prodüksiyon çökmesi sadece teknik bir sorun değil, aynı zamanda bir iş olayıdır. Kesintinin her dakikası, hizmetin doğasına bağlı olarak şirkete belirli bir miktara mal olur. E-ticaret platformları için bir saatlik kesintinin maliyeti yüz binlerce dolara ulaşabilir.
Gartner 2024 araştırması, kurumsal uygulamaların kesinti dakikası başına ortalama maliyetinin 5.600 dolar olduğunu gösteriyor. Bu arada, prodüksiyon olayı sonrası ortalama kurtarma süresi yaklaşık 90 dakikadır. 90 dakikalık bir kesinti, işletmeye yarım milyon dolardan fazlaya mal olur.
Finansal kayıpların yanı sıra, prodüksiyon çökmesi şirketin itibarına zarar verir. Hizmetin kullanılamamasıyla karşılaşan kullanıcılar rakiplere yönelebilir. Güvenilirliğin temel bir gereklilik olduğu bankacılık ve tıbbi uygulamalar için olaylar özellikle kritiktir.
Ekip üzerindeki sonuçlar da önemlidir. Prodüksiyon olayından sonra, bir postmortem — kök nedenlerin analizi ve önleyici tedbirlerin geliştirilmesi — gerçekleştirilir. Bu, geliştiriciler, özellikle nöbetçi mühendisler (on-call) üzerinde ek bir yük oluşturur.
Prodüksiyon çökmelerini önleme, birkaç koruma katmanı üzerine inşa edilmiştir. Her katman, belirli bir hata sınıfını yakalar ve son kullanıcılara ulaşmalarını engeller.
Özellik bayrakları, çökmeleri önlemek için en etkili araçlardan biridir. Kodu etkin olmayan durumda prodüksiyona dağıtmayı, sınırlı bir kullanıcı grubu için etkinleştirmeyi ve bir sorun tespit edildiğinde hızla devre dışı bırakmayı sağlarlar. LaunchDarkly ve Split.io gibi platformlar, bayrak yönetimi için hazır çözümler sunar.
İzleme ve uyarılar, korumanın son katmanıdır. Prometheus + Grafana veya Datadog gibi araçlar, prodüksiyondan metrikler toplar: gecikme, hata oranı, iş hacmi. Eşikler aşıldığında, bir uyarı tetiklenir ve nöbetçi mühendis bir bildirim alır. Ekip sorunu ne kadar erken öğrenirse, olaydan kaynaklanan hasar o kadar az olur.
Prodüksiyon çökmesi zaten meydana geldiğinde, ana öncelik hizmetin çalışır durumunu geri yüklemektir. Neden analizi, stabilizasyondan sonra yapılır. Tipik bir müdahale süreci aşağıdaki adımları içerir.
İlk adım — olayın kapsamını belirlemek. Hizmet tamamen kullanılamıyor mu yoksa işlevselliğin sadece bir kısmı mı bozuldu? Kaç kullanıcı etkilendi? Bu soruların yanıtları, kritiklik seviyesini ve gerekli eylemleri belirler.
İkinci adım — değişiklikleri geri almak. Olay yakın zamanda yapılan bir dağıtımla ilgiliyse, kurtulmanın en hızlı yolu önceki kararlı sürüme dönmektir. Bu, git revert komutu kullanılarak ve önceki yapıtı yeniden dağıtarak yapılır. Geri alma işlemi 10–15 dakikadan fazla sürmemelidir.
Üçüncü adım — iletişim. Ekibi, yönetimi ve gerekiyorsa kullanıcıları sorun ve kurtarma süresi hakkında bilgilendirmek. Bunun için Atlassian Statuspage gibi durum sayfası hizmetleri ve Slack veya Telegram kanalları kullanılır.
Dördüncü adım — postmortem. Kurtarma sonrasında, kök neden analizi (RCA) yapılır ve olayın tekrarını önlemek için önleyici tedbirler geliştirilir. Postmortem sonuçları belgelenir ve ekibin bilgi tabanının bir parçası haline gelir.
Sıkça Sorulan Sorular
Bu, prodüksiyon sunucusunda arızaya neden olan değişiklikler yapmak anlamına gelen bir argo ifadedir. Sonuç olarak, hizmet kullanılamaz hale gelir veya kullanıcılar için yanlış çalışır. Terim, kritik bir olayı belirtmek için DevOps kültüründe kullanılır.
En yaygın neden dağıtım hatalarıdır: yanlış ortam değişkenleri, hatalı yapıt sürümü veya eksik bağımlılıklar. İkinci sırada veritabanı geçiş sorunları yer alır. Üçüncü en yaygın olanı ise yük arızalarıdır, uygulamanın yoğun trafiği kaldıramadığı durumlar.
Kritik hizmetler için yanıt süresi 5 dakikayı, kurtarma süresi ise 60 dakikayı (SLA) geçmemelidir. Daha az kritik sistemler için 4 saate kadar izin verilir. Belirli metrikler Hizmet Seviyesi Anlaşması (SLA) ve Hizmet Seviyesi Hedeflerinde (SLO) tanımlanır.
Çökme, hizmetin tamamen kullanılamaz olduğu, kullanıcıların 500 hatası aldığı veya bağlantı kurulamadığı durumdur. Hatalı davranış, hizmetin çalıştığı ancak verilerin yanlış olduğu veya işlevselliğin bozulduğu anlamına gelir. Çökme anında geri alma gerektirirken, hatalı davranış bir sıcak düzeltme ile giderilebilir.
Postmortem şunları içerir: olay zaman çizelgesi, kök neden (RCA), olay kapsamı, kurtarma eylemleri ve önleme planı. Gerçekleri suçlamadan tanımlamak önemlidir — suçsuz kültür çerçevesinde. Sonuçlar tüm ekip ile paylaşılır.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun