YAZILIM & GÖZLEMLENEBİLİRLİK

Kör Uçuştan Çıkmak: Observability ile Sistemleri 7/24 İzlemek

Müşteri Aradığında Öğrenmek

Yazılım ekibi için yaşanan bir sorundan müşterinin telefonuyla haberdar olmak, en istenmeyen senaryolardan biridir. Bir yazılım firmasının temel hedefi müşterisinin ihtiyaçlarını en iyi şekilde karşılayacak çözümü tasarlayıp geliştirmektir. Geliştirme süreci zorlu olsa da tüm emek, yazılım canlıya alındıktan sonra farklı bir sınavla karşılaşır. Ardı ardına gelen telefonlar, o anki sorunu çözmeye yönelik destek talepleri ve iki taraf için de gerilimli anlar… Böyle bir tabloda kimse kazanmaz. Müşteri kendi işine odaklanamaz, yazılım ekibi ise sorunun ne olduğunu ve nerede yaşandığını anlamaya çalışırken zaman kaybeder.

Observability nedir?

Observability (gözlemlenebilirlik), bir yazılım sisteminin sağlık, performans ve davranışını metrics (metrikler), logs (kayıtlar) ve traces (işlem izleri) gibi telemetri verileri üzerinden anlamayı sağlayan yaklaşımdır. 7/24 sistem izleme ise bu verilerin sürekli takip edilerek hata, yavaşlama ve beklenmeyen davranışların kullanıcı etkilenmeden fark edilmesine yardımcı olmasını sağlar.

Zaman = Para

Bu döngüyü kırmak için, işin en başında bir karar alınması gerekir. O karar da sorunu müşteriden önce görmek.

İçindekiler

Bugün Nasıl?

Bugün bir problemi çözüme kavuşturmak için izlenen yol şu şekilde oluyor:

Müşteri bir aksaklık fark ediyor ve hatayı tarif etmeye çalışıyor. Bu esnada havada uçuşan “hangi saatte, hangi ekranda, hangi işlemi yaparken?” sorularına cevap vermeye çalışıyor. Teknoloji ile çok da haşır neşir olmayan kullanıcılar için bu başlı başına bir eziyet oluyor.

Bu esnada yazılım ekibi sunucuya bağlanıp binlerce kayıt arasında sorunun izini sürüyor. Bu sefer de havada uçuşan “sunucudan mı, uygulamadan mı, yoğunluktan mı” soruları yazılım ekibinin hava sahasına giriyor. Yani teşhis, sorunun ortaya çıkmasından saatler sonra başlıyor üstelik hafızaya ve tahmine dayanarak.

Observability ile Sistem İzleme Nasıl Olmalı?

Yukarıdaki senaryonun karşılığı, sistemleri izleyen modern bir observability (gözlemlenebilirlik) altyapısıdır. Bu altyapı, sistemin anlık durumu, kaynak kullanımı, gerçekleşen işlemler ve oluşan hatalar hakkında sürekli veri toplar.

METRICS

Performans ölçümleri

Sistem ne kadar hızlı çalışıyor, ne kadar yoğun, kaynakları ne durumda?

LOGS

Kayıtlar

Hangi işlem ne zaman başladı, bitti ya da hata verdi?

TRACES

İşlem Takibi

Bir işlem, uygulamadan veri tabanına kadar hangi adımda ne kadar süre harcadı?

Bu üçü birbirine bağlı çalışır. Bir grafikte anormal bir sıçrama görüldüğünde, tek bir tıkla o anın kayıtlarına ve o işlemin tam yolculuğuna inilebilir. Yani “samanlıkta iğne aramak” yerine doğrudan iğnenin üstüne gidilir.

Observability ile Sistemleri 7:24 İzlemek 1

Observability Ne Kazandırır?

01

Sorun, müşteri fark etmeden önce görülür

Bir servis durduğunda, hata oranı yükseldiğinde ya da bir entegrasyon beklendiği gibi çalışmadığında teknik ekibe otomatik uyarı düşer. Böylece aksaklığın etkisi büyümeden gerekli inceleme ve müdahale süreci başlatılır.

02

Sorun çözme süreci hızlanır

“Ne zaman olmuştu, hangi ekrandaydı?” sorularıyla kimseyi yormaya gerek kalmaz. Olayın kaydı zaten duruyordur.

03

Sessiz arızalar artık sessiz kalmaz

En tehlikeli arıza, gürültü çıkarmayan arızadır. Bir arka plan işinin sessizce durması gibi. Böyle bir altyapı sadece “hata var mı?” diye bakmaz, olması gereken bir şeyin olmadığını da fark eder. Beklenen bir işlem zamanında çalışmadıysa bu da bir alarmdır.

04

Tahmine değil veriye dayalı kararlar verilir

“Sistem yavaşladı” hissi yerine, tam olarak neyin, ne zaman, ne kadar yavaşladığı görülür. Bu da kalıcı çözüm üretmeyi sağlar.

05

Sorunlar büyümeden yakalanır

Diskin dolmasına, belleğin tükenmesine ya da bir entegrasyonun yavaşça bozulmaya başlamasına daha çok varken görülür. En iyi arıza, hiç yaşanmayan arızadır.

Observability ile Sistemleri 7:24 İzlemek 2

Verilerin İşlenmesinde Nasıl Bir Yaklaşım İzleniyor?

Bu soru haklı olarak soruluyor. Bu noktada Datadog, AWS gibi büyük observability (gözlemlenebilirlik) platformlarının izlediği yaklaşım esas alınıyor; yetkilendirilmiş, süreli erişim anahtarları (token) üzerinden yalnızca teknik metrikler inceleniyor, üçüncü taraflarla hiçbir veri paylaşılmıyor.

Observability ve 7/24 Sistem İzleme Neden Gerekli?

Açıkçası kimse bir yazılım firmasından “izleme altyapısı” satın almaz. Beklenen şey basit aslında sistem çalışsın, çalışmadığında da hızlı çözülsün. Böyle bir altyapı tam olarak bunun için var. Görünmez olması, iyi çalıştığı anlamına gelir.

Kör uçuşun en kötü yanı, çarpana kadar bir şeyin ters gittiğini bilmemektir. Verilere bakan bir yapı kurulduğunda, herkes kendi işine bakabilir.

Observability ile İlgili Merak Edilenler

Sıkça Sorulan Sorular

Observability nedir?

Observability, bir yazılım sisteminin sağlık, performans ve davranışını metrikler, log kayıtları ve işlem izleri üzerinden anlamayı sağlayan gözlemlenebilirlik yaklaşımıdır.

Monitoring, belirli metrikleri ve bilinen durumları takip ederek “bir sorun var mı?” sorusuna cevap verir. Observability ise farklı telemetri verilerini birlikte değerlendirerek “sorun neden oluştu?” sorusuna daha hızlı cevap vermeyi amaçlar.

Temel olarak metrics (metrikler), logs (kayıtlar) ve traces (işlem izleri) birlikte değerlendirilir. Bu veriler sistemin performansını, hatalarını ve bir işlemin uçtan uca nasıl ilerlediğini anlamaya yardımcı olur.

Sürekli izleme; servis durması, hata oranı artışı, performans düşüşü veya entegrasyon problemleri gibi aksaklıkların kullanıcı bildirimi beklenmeden fark edilmesini sağlar.

Olayın zamanı, hata kayıtları, performans değişimleri ve işlemin izlediği yol kayıt altında olduğu için teknik ekip sorunun kaynağını tahmine dayalı biçimde aramak yerine doğrudan ilgili veriye ulaşabilir.

Facebook
X
LinkedIn