Kurumsal Gözlemlenebilirlik — Instana (Enterprise Observability)

Engin Özkurt
5 min readMay 27, 2021

--

Instana Enterprise Observability Platform

Bu yazıda sizlere Gözlemlenebilirlik (Observability) ile ilgili önemli bulduğum konuları aktarmaya çalışacağım. Observability’ Türkçe kelime anlamı olarak “Gözlemlenebilirlik” olarak kullanılmaktadır.Son zamanlarda çokça konuştuğumuz ve tartıştığımız bir konu olması sebebi ile yanlış bilinen bazı konularıda açıklık getirmek istiyorum.

Bu yazıda aşağıdaki sorulara cevap arayacağız?

  • Gözlemlenebilirlik nedir?
  • Neden Gözlemlenebilirliğe ihtiyacımız var?
  • Gözlemlenebilirlik nasıl çalışır?
  • Gözlemlenebilirliğin faydaları nelerdir?
  • Kurumsal Gözlemlenebilirlik, Gözlemlenebilirlik ve İzleme araçlarının farkları nelerdir?

Öncelikle bu konu ile hangi ekiplerin ilgilendiğine/ilgilenmesi gerektiğine aşağıdaki görselden bakarak başlayabiliriz. Sizlerde bu görevlerden birinde çalışıyorsanız, mutlaka işiniz bir gün Observability Platformlarına düşecektir. Özellikle Modern teknolojiler (Cloud, DevOps, Containers, k8s, microservices) kullanmaya adım atmış yada adım atmayı düşünen işletmelerin önemsediği bir konu olarak günümüzde önemi daha da ortaya çıkmaktadır diyebiliriz.

1-) Gözlemlenebilirlik (Observability) nedir?

Gözlemlenebilirlik, karmaşık sistemlerin (distributed systems) içerisinde neler olduğuna dair bilgileri daha hızlı, otomatikleştirilmiş sorun tanımlama ve çözüm seçeneklerine ait derin bilgiler sağlamaktadır. Sistemler ne kadar gözlemlenebilir olursa, tanımlanmış bir problemin kök nedenine o kadar hızlı ve doğru bir şekilde ulaşabiliriz.

BT’ de yeni bir uzmanlık olarak ortaya çıkan gözlemlenebilirlik, genellikle izleme (monitoring) çözümleri ve uygulama performans yönetimi (Application Performance Monitoring) çözümleri ile karıştırılır. Aslında Gözlemlenebilirlik dediğimiz şey, Cloud Native olarak geliştirilen uygulama dağıtımlarının giderek daha hızlı ve dinamik olması sebebi ile uygulama seviyesindeki toplanan verilerin daha zengin veri toplama yöntemlerine dönüşmesi diyebiliriz. Gözlemlenebilirlik, izleme sistemlerinin yerini almaz, sadece daha iyi izleme ve daha iyi performans monitoring sağlar.

2-) Neden Gözlemlenebilirliğe ihtiyacımız var?

Son yıllara baktığımızda, BT ekipleri uygulamaları izlemek ve sorunları gidermek için farklı farklı APM araçları kullandı. APM çözümleri, uygulamaların performans sorunlarıyla ilgili olan “telemetri” adını verdiğimiz hem uygulama hem de sistem verilerini düzenli olarak toplayarak analiz etmekteydi.

Ancak günümüzde işletmeler modern uygulama geliştirme pratiklerine doğru bir geçiş yapması ile birlikte, Agile Developement, Continuous Integration/Continuous Deployment (CI/CD), DevOps, Çoklu programlama dillerinin yanı sıra, Cloud Native teknolojiler, containers, microservices, kubernetes ve serverless gibi teknolojileride kullanmaya başladılar.

Sonuç olarak, uygulama ve hizmetleri son kullanıcılara daha hızlı bir şekilde sunmamız gerekiyor. Ancak bu süreçte yukarıda saydığım teknolojilere ait çok fazla bileşen olduğundan dolayı artık sadece uygulama ve sistem verilerini toplamak değil, bunların birbirleri ile arasındaki bağımlılıklarını da çıkarmak ve her kullanıcı çağrısını izleyebilmemiz gerekmektedir. Dağıtık uygulama mimarilerinde tanımlanmış bir sorunun kök nedenine hızlıca ulaşmak ve bunları raporlamamız gerekmektedir. Bu nedenden dolayı Gözlemlenebilirlik platformlarına ihtiyacımız bulunmaktadır.

3-) Gözlemlenebilirlik nasıl çalışır?

Gözlemlenebilirlik platformları genellikle üç temel kategoriden oluşmuştur. (Bazı üreticiler dördüncü olarak “Events” de ekleyebilmektedirler.)

Bu üç temel kategori ise “Logs, Metrics ve Traces” olarak tanımlanmıştır. Şimdi bu kategorilerin Gözlemlenebilirlik için neden önemli olduklarına bakalım..

Logs: Bir sorunun ortaya çıkacağına dair ilk işaret genellikle log sistemlerinden bulunabilir. Log sistemleri her olay ile ilgili zaman damgalı olarak kayıtları tutmaktadır. Saniye saniye tüm kayıtlar tutulmaktadır. Ne yazık ki, bu erken sinyaller genellikle olaylar meydana geldikten sonra teşhis ve araştırma için kullanılır. Loglarla ilgili başka bir konu ise çok fazla sayıda log üretildiği için hangi alan neyi temsil eder bilemeyiz. Ayrıca loglar içerisinde ayrıştırma ve analiz yapmak genellikle pek sağlıklı olmaz ve manuel olarak yapılmaktadır.

Metrics: Bir sorunun meydana gelmek üzere olduğuna dair bir sonraki işaret ise monitoring sistemlerinden toplanan çeşitli metriklerden oluşmaktadır. Bir çok işletme farklı alt yapı ve uygulama katmanları için monitoring çözümleri kullanmaktadır. Metrikler, sistemlerinizde ne oluyor? sorusuna cevap vermektedir. Uygulama ve bileşenlerinizin durumuna bakmanıza izin verir. SRE terminolojisinde belirtilen “Golden Signals” dediğimiz Latency, Traffic, Errors ve Saturation bilgilerini bizlere sağlar.

Traces: Her kullanıcı çağrısının uçtan-uca yolculuğunu web üzerinden veya mobil uygulamalar üzerinden tüm dağıtılmış mimari boyunca kayıt etmektedir. Şöyle düşünelim, Dağıtık mimaride bir uygulama geliştirmek istediğinizde, birden çok bulut ortamı üzerine yayılmış ve kubernetes clusterları üzerinde çalışıyor olacak. Hizmetlerinizi baştan sona izleme için Trace dataları yardımcı olmaktadır. Uygulamanın nerede yavaşladığını veya sorunun hangi bileşenlerden kaynaklandığını anlayabiliriz.

Bu üç kategorideki datalar toplandıktan sonra DevOps ekipleri yada SRE (Site Reliabilty Engineer) ekipleri gerçek zamanlı olarak performans kaybına neden olacak problemin ne olduğunu, nerede olduğunu ve neden olduğunu anlamak için kullanırlar.

4-) Gözlemlenebilirliğin faydaları nelerdir?

Gözlemlenebilirliğin faydalarına gelicek olursak, sistemlerin ve uygulamaların gözlemlenebilir olması ile birlikte, daha şeffaf , daha hızlı ve daha güvenli izleyerek daha yüksek kaliteli hizmetleri son kullancılara eriştirebiliriz.

Dağıtık mimarilerde geliştirdiğiniz uygulamalar içeirisinde var olduğunu bilmediğiniz sorunları keşfetmemizi sağlar. İzleme araçları ile Gözlemlenebilirlik platformları arasındaki farkta bu zaten. İzleme araçları, zaten bildiğiniz metrikleri izler, Gözlemlenebilirlik ise, bilemeyeceğiniz veya düşünmeyeceğiniz koşulları ifade eder, ardından ise belirli performans parametlerine göre izler ve çözümü hızlandırmak için kök nedenleri belirlemek için derin bilgi sağlar.

Sorunları daha geliştirme aşamasında yakalayabiliriz. Gözlemlenebilirlik sayesinde, dev/test ortamlarında sorunu tespit edebilir, DevOps ekipleri, müşteri deneyimini ve SLA’ leri etkilemeden önce koddaki sorunları belirleyip düzeltebilir.

Sistem çıktılarına dayalı sorunları tahmin etmek ve bunları yönetim müdahalesi olmadan çözmek için ise gözlemlenebilirliği, AIOps, Machine Learning ve Automation yetenekleri ile birleştirebiliriz.

5-) Kurumsal Gözlemlenebilirlik, Gözlemlenebilirlik ve İzleme araçlarının farkları nelerdir?

Bu kısımda ise Kurumsal Gözlemlenebilirlik Platformları, Gözlemlenebirlik çözümleri ve İzleme çözümleri arasındaki farklılıklara değineceğiz.

Öncelikle İzleme (Monitoring) den başlayalım. Herhangi bir uygulamayı veya sistemi dağıttık sonra ne olup bittiğine ait bilgi sahibi olmak için izlemeye başlarız. Yalnız izleme sistemleri hizmetlerimizin düzgün çalışıp/çalışmadığını anlamakla ilgili bilgiler paylaşmaktadır. Gözlemlenebilirliğin ilk parçası izlemedir.

Observability, ise özellikle modern teknolojiler için önemlidir. Cloud Native teknolojileri kullanmaya başlamak için önemlidir. Observability, sizmlerinizde neler olduğu olduğunu öğrenerek, uzun süreli kesintilerden kaçınmamızı sağlar. Yüksek erişilebilirlik süresiyle cevik ve esnek yazılımlar oluşturabiliriz. Bu çözümlerin hepsi MTTR = Mean Time to Resolution hedefine ulaşmak için geliştirilmektedir.

Son yıllarda bunu başarmak daha zor hale geldi, Monolith uygulama geliştirme yaparken nispeten daha az deployment, daha az bileşen olduğu için İzleme çözümleri ile uygulamaların durumunu, loglarını ve neyin yanlış olduğunu anlamak için metrikleri izleyebiliyorduk.

Cloud Native mimarilerde ise uygulama bileşenleri daha küçük, kısa ömürlü ve geçici hale geldi. Eski tarz izleme (APM) kullanmak veya sorunun nerede olduğunu anlamak zorlaştı. Bu nedenle Enterprise Observability platformları daha önemli hale geldi.

Enterperise Observability platformlarını farklı kılan sadece veriler değildir. Fark yarattığı nokta, bu verilerin nasıl toplandığı ve işlendiği ile alakalıdır.

#IBM, kısa bir süre önce uygulama ve performans izleme teknolojisinde lider olan #Instana’yı satın aldı. #Instana, nerede bulunduğu fark etmeksizin, karmaşık ve dağıtık uygulamaların performansını yönetmeleri için kurumsal işletmelere gözlemlenebilirlik sağlar; böylece DevOps ekipleri, CI/CD (sürekli entegrasyon/sürekli teslim) süreçlerini hızlandırabilmektedir.

Instana Automated Application Performance Monitoring

Instana ve Enterprise Observability ile ilgili farklı yazılarda buluşmak dileğiyle..

Refences:

--

--

Engin Özkurt

𝘚𝘦𝘯𝘪𝘰𝘳 𝘚𝘪𝘵𝘦 𝘙𝘦𝘭𝘪𝘢𝘣𝘪𝘭𝘪𝘵𝘺 𝘌𝘯𝘨𝘪𝘯𝘦𝘦𝘳 / 𝘌𝘹-𝘔𝘪𝘤𝘳𝘰𝘴𝘰𝘧𝘵 /𝘖𝘱𝘪𝘯𝘪𝘰𝘯𝘴 𝘩𝘦𝘳𝘦 𝘢𝘳𝘦 𝘮𝘺 𝘰𝘸𝘯.