Geçenlerde yine bir AWS kesintisi yaşandı. Hani böyle bir anda her şeyin durduğu, bütün planların altüst olduğu anlar olur ya, işte tam da öyle bir şeydi. Sabah bilgisayarımı açtım, her zamanki gibi bir kahve eşliğinde kodlara dalacaktım ki, bir baktım ne göreyim? API’lerimden biri çalışmıyor, veri tabanına bağlanamıyorum, ne yapacağımı bilemedim. Tabii ilk aklıma gelen şey, ‘Acaba benim kodumda mı bir sorun var?’ oldu. Hemen loglara baktım, konfigürasyonları gözden geçirdim ama nafile, sorun bende değilmiş.
Sonra durumu biraz daha araştırınca anladım ki, meğersem AWS’in bir bölgesinde büyük bir kesinti yaşanıyormuş. İnanın ki bu durum beni hem biraz rahatlattı hem de ciddi şekilde düşündürdü. Rahatladım çünkü hatanın bende olmadığını bilmek güzeldi ama düşündürdü çünkü bu kadar kritik bir altyapının böylesine kolayca çökebilmesi… Ne diyeyim işte, teknoloji dünyası da bazen böyle sürprizlerle dolu olabiliyor.
Bu tür kesintiler, özellikle bizim gibi bulut tabanlı sistemler üzerinde çalışanlar için hem büyük bir kabus hem de aslında bir fırsat. Kabus çünkü işleriniz duruyor, müşterileriniz mağdur olabiliyor, projeler aksayabiliyor. Ama bir yandan da bu durum, sistemlerimizin ne kadar dayanıklı olduğunu, ne kadar iyi yedeklediğimizi ve ne kadar esnek çözümler üretebildiğimizi test etmemiz için harika bir fırsat sunuyor. Bana göre, her geliştiricinin başına gelebilecek bir şey bu. Önemli olan, böyle durumlarda panik yapmak yerine, durumu doğru analiz edip bir sonraki sefere daha hazırlıklı olmanın yollarını bulmak.
Bu arada, aklıma geldi, geçenlerde eşimin bir işi için de benzer bir durum yaşamıştık. Bir online ödeme sisteminde bir anda hata vermeye başladı ve kimse ödeme yapamıyordu. O an anladım ki, bu sadece bizim yazılımcıların değil, herkesin başına gelebilecek bir şey. Yani sadece kod yazmak yetmiyor, altyapıyı da iyi anlamak lazım.
AWS Kesintilerinin Kodlama Hayatımıza Etkileri
Şimdi gelelim asıl konuya. AWS gibi bulut sağlayıcılarının yaşadığı kesintiler, bizim kodlama hayatımızı nasıl etkiliyor? En başta, geliştirdiğimiz uygulamalar doğrudan etkileniyor. Düşünsenize, bir e-ticaret sitesi düşünün. Eğer o sitenin sunucuları AWS’te barınıyorsa ve AWS’te bir kesinti yaşanırsa, o siteye giren kimse hiçbir şey yapamaz. Ürünlere bakamaz, sepete ekleyemez, ödeme yapamaz. Yani bütün işler durur.
Bu durum, özellikle microservice mimarisiyle çalışanlar için daha da can sıkıcı olabiliyor. Çünkü bir servis çalışmasa bile, diğer servisler de onu beklediği için zincirleme bir etkiyle hepsi birden devre dışı kalabiliyor. Aslında bu, sistemlerimizin ne kadar birbirine bağlı olduğunu da gösteriyor. Yani bir yerde yaşanan ufak bir aksaklık, tüm yapıyı yerle bir edebiliyor.
Neyse efendim, bu tür durumlarda en çok karşılaştığımız sorunlardan biri de loglama ve izleme sistemlerinin de kesintiden etkilenmesi. Düşünsenize, sorun nerede, neden oluyor anlamak istiyorsunuz ama loglara bile ulaşamıyorsunuz. İşte o zaman işler iyice sarpa sarıyor. Tam bir kaos ortamı diyebiliriz.
Bu arada, bu durum sadece kod yazanları değil, kart tasarımı yapanları da etkiliyor. Gömülü sistemler genellikle bir bulut servisine bağlanıp veri alıp gönderiyor. Eğer o bulut servisi çalışmıyorsa, sizin tasarladığınız akıllı ev cihazınız da bir işe yaramaz hale gelebiliyor. Yani teknoloji dediğin tek bir alanla sınırlı kalmıyor, her yer birbirine bağlı.
Sonuç olarak, AWS kesintileri, bizim işimizin ne kadar hassas olduğunu bir kez daha yüzümüze vuruyor. Bir de benim gibi bazen unutkan biriyseniz, yedekleme ve hata toleransı konularını hep ön planda tutmak gerekiyor. Gerçi unutkanlık benim için bazen yeni fikirler de doğuruyor, neyse konuya dönelim.
İşin garip tarafı, bazen bu kesintiler öyle beklenmedik anlarda oluyor ki, insanın motivasyonunu da düşürebiliyor. Bir projenin tam kritik bir aşamasındayken böyle bir şey yaşamak… İnanın ki insanı çileden çıkarabiliyor. Ama ne yapalım, teknoloji bu, bazen böyle sürprizleri oluyor.
Peki, Ne Yapmalı? Çözüm Önerileri
Şimdi gelelim en önemli kısma. Bu tür durumlarla karşılaştığımızda neler yapmalıyız? Öncelikle, sakin kalmak en önemli şey. Panik yapmak yerine durumu doğru anlamaya çalışmalıyız. AWS’in durum sayfasını kontrol etmek ilk adımdır tabii. Genellikle oradan güncel bilgiler alabiliyorsunuz.