DevOps Metrikleri Nedir?

DevOps Metrikleri Nedir?
DevOps

DevOps Metrikleri Nedir?

Plan

DevOps’ta Planlama, DevOps’un temel aşamasıdır ve geliştirme sürecinin iş hedefleriyle uyumlu olmasını sağlar. Sprint Burndown, Team Velocity ve Sprint Goal Success gibi ölçümler, planlama aşamasının ilerlemesi ve verimliliği hakkında bilgi sağlar. Bu ölçümleri izlemek için Jira gibi araçlar kullanılır ve proje zaman çizelgeleri, kaynak tahsisi ve birikim yönetimi hakkında ayrıntılı bir görünüm sunulur. Etkili planlama ölçümleri, ekiplerin sorunları öngörmesine ve stratejilerini sürüm hedeflerini karşılayacak şekilde ayarlamasına yardımcı olur.

  1. Sprint Burndown: Günlük olarak tamamlanan çalışmayı, bir kısa koşu için öngörülen tamamlanma oranına göre ölçer. İlerlemeyi izlemek ve ekibin taahhütlerini yerine getirecek hızda olmasını sağlamak için bu çok önemlidir.
  2. Takım Hızı: Bir takımın bir kısa koşu sırasında tamamladığı iş miktarını takip eder ve takımın gelecek sprintlerde ne kadar iş yapabileceğini tahmin etmek için bir kılavuz olarak kullanılır.
  3. Sprint Hedefi Başarısı: Takımın kısa koşu için belirlenen hedeflere ne sıklıkla ulaştığını gösterir ve kısa koşu planlamasının doğruluğunu ölçmeye yardımcı olur.
  4. Döngü Süresi: İşin başından sonuna kadar geçen süreyi ölçer; bu, geliştirme sürecindeki darboğazların belirlenmesi açısından kritik öneme sahiptir.
  5. Devam Eden Çalışma: Ekibin aşırı yüklenmesini önlemek ve istikrarlı bir iş akışını sürdürmek için herhangi bir zamanda yürütülen iş miktarını izler.
  6. Epik Burndown: Daha küçük parçalara veya sprintlere bölünmüş daha büyük bir iş veya proje grubunun ilerleyişini izler.
  7. Teslim Süresi: Müşterinin talebinden bitmiş işin teslimine kadar geçen süre, geliştirme sürecinin yanıt verebilirliğini ve verimliliğini gösterir.
  8. İş Listesi Tahmini: İş yığınındaki tüm öğeleri tamamlamak için gereken çabayı ve zamanı tahmin etme süreci, gelecekteki sprintleri etkili bir şekilde planlamaya yardımcı olur.
  9. Sürüm Burndown: Sürüm için kalan çalışmayı zamana göre göstererek sürümün yolunda olduğundan emin olun.
  10. Portföy Planlama: Stratejik hedeflerle uyum sağlamak ve kaynak tahsisini optimize etmek için bir proje veya ürün koleksiyonunun yönetilmesini ve önceliklendirilmesini içerir.

Kod

Kodlama aşaması fikirlerin gerçeğe dönüştüğü aşamadır. Kod İnceleme Hacmi, Kod Kalitesi ve Kod Kapsamı gibi ölçümler, kodlama sürecinin eksiksizliğini ve standartlarını ölçer. GitHub, sürüm kontrolünü ve işbirliğini kolaylaştıran, geliştiricilerin koda katkıda bulunmaları, değişiklikleri izlemeleri ve kod tabanının bütünlüğünü korumaları için bir ekosistem sağlayan popüler bir araçtır. Ekipler bu metrikleri izleyerek kodlama uygulamalarında yüksek kaliteli çıktılar ve sürekli iyileştirmeyi hedefleyebilir.

  1. Kod İnceleme Hacmi: Kod incelemelerinin miktarını ve sıklığını ölçerek en iyi uygulamaları ve kod kalitesini destekler.
  2. Kod Kaybı: Kod tabanının zaman içindeki kararlılığını gösteren, değiştirilen, eklenen veya silinen kod miktarını temsil eder.
  3. Kod Kalitesi: Kod tabanının sağlam ve temiz olmasını sağlayan, sürdürülebilirlik, okunabilirlik ve standartlara bağlılık gibi faktörleri içerebilen bileşik bir ölçüm.
  4. Teknik Borç: En iyi genel çözümü uygulamak yerine kısa vadede uygulaması kolay kod kullanıldığında ortaya çıkan ekstra geliştirme çalışmasını temsil eder.
  5. Kod Katkısı: Kod tabanına bireysel veya ekip katkılarını takip ederek şeffaflığı ve işbirliğini destekler.
  6. Kaynak Kodu Satırları: Bir projedeki toplam kod satırlarını ölçer; bu, projenin boyutunu ve karmaşıklığını gösterebilir.
  7. Sürdürülebilirlik Endeksi: Kodun bakımının ne kadar kolay olduğunu ölçerek uzun vadeli maliyetlerin ve güncellemeler için gereken çabanın tahmin edilmesine yardımcı olur.
  8. PR Sayısı (Çekme İstekleri): Çekme isteklerinin sayısını takip ederek işbirliği ve inceleme süreci verimliliğini gösterir.
  9. Kod Taahhütleri: Bir projenin etkinlik düzeyini gösteren, depoda yapılan güncellemelerin sayısı.
  10. Kod Kapsamı: Test edilmeyen potansiyel alanları vurgulayarak otomatik testlerle test edilen kod tabanının yüzdesini ölçer.

Oluşturma

Oluşturma, kodu çalıştırılabilir uygulamalara dönüştürme işlemidir. Derleme Başarı Oranı ve Derleme Süresi gibi derleme metrikleri, derleme sürecinin sağlığını anlamak için çok önemlidir. Gradle gibi araçlar kodun oluşturulmasını, test edilmesini ve dağıtılmasını otomatikleştirerek bu işlemleri kolaylaştırır. Derlemelerin ne sıklıkta başarısız veya başarılı olduğunu ve ne kadar sürdüğünü izlemek, koddaki olası verimsizlikleri veya kararlılık sorunlarını vurgulayabilir.

  1. Derleme Başarı Oranı: Derleme sürecinin sağlığını yansıtan, toplam derlemeler içindeki başarılı derlemelerin yüzdesini gösterir.
  2. Derleme Süresi: Bir derlemenin tamamlanması için geçen süreyi ölçer ve optimizasyon fırsatlarını belirler.
  3. Başarısız Derlemeler: Başarıyla tamamlanmayan derlemelerin sayısını sayarak derleme sürecindeki sorunları vurgular.
  4. Derlemenin Bozulma Süresi: Derlemenin bozuk kaldığı süreyi takip ederek geliştirme akışını ve üretkenliği etkiler.
  5. Zaman içinde oluşturma: Bir dönem boyunca oluşturma sürelerindeki eğilimleri analiz eder; bu, süreç iyileştirme ihtiyacının sinyalini verebilir.
  6. Çekme istekleri: Kod tabanında birleştirilen çekme isteklerinin sayısını izleyerek geliştirme ve entegrasyon oranını gösterir.
  7. Oluşturma Sıklığı: Geliştirmenin hızını ve sürekli entegrasyon çabalarını gösteren, geliştirmelerin ne sıklıkla tamamlandığını ölçer.
  8. Yapı Geçmişi: Kalıpların, trendlerin ve olası hatalı yapıların belirlenmesine yardımcı olan geçmiş yapıların kaydı. Pipeline Monitor: Sorunlar ve performans darboğazları açısından tüm yapı hattını denetler.
  9. Kuyruk Süresi: Derlemelerin işlenmeden önce kuyrukta geçirdiği süre, derleme sisteminin verimliliğini ve kaynak kısıtlamalarını yansıtır.

Test

Testler, kodun yalnızca gereksinimlere göre çalışmasını değil, aynı zamanda güvenilir ve güvenli bir şekilde çalışmasını da sağlar. Test Kapsamı ve Kusur Metrikleri gibi metrikler, test stratejilerinin etkinliği hakkında fikir verir. JUnit, testlerin yazılmasını ve çalıştırılmasını kolaylaştıran, kod kalitesini ve işlevselliğini sağlamak için sistematik bir yol sağlayan bir çerçevedir. Bu ölçümlerin izlenmesi, risk alanlarının belirlenmesine ve test etkinliğinin artırılmasına yardımcı olur.

  1. Test Kapsamı: Kodun ne kadarının otomatik testlerle kullanıldığını ölçerek ek test gerektirebilecek alanları belirler.
  2. Başarılı ve Başarısız Testler: Geçilen ve başarısız olan testlerin oranını sağlayarak kod tabanının durumuna ilişkin öngörüler sunar.
  3. Kusur Ölçümleri: Yazılımın kalitesini anlamak için kritik olan, bulunan kusurların sayısını ve ciddiyetini izler.
  4. Test Süresi: Tüm test paketinin çalıştırılması için geçen süreyi ölçerek geliştirme hızını ve geri bildirim döngülerini etkiler.
  5. Kusur Kaçış Oranı: Test sırasında yakalananlarla karşılaştırıldığında üretime ulaşan kusurların sayısını ölçerek test aşamasının etkinliğini gösterir.
  6. Güvenlik Açığı Raporu: Yazılım güvenliğini korumak için gerekli olan, kodda tanımlanan güvenlik açıklarının özeti.
  7. Kusurların Önem Derecesi: Hataları sistem üzerindeki etkilerine göre sınıflandırarak düzeltmelerin önceliklendirilmesine yardımcı olur.
  8. Test Kesintisizliği: Test sonuçlarının tutarlılığını izleyerek, kodda değişiklik yapmadan başarılı ve başarısız arasında sıklıkla geçiş yapan testleri belirler.
  9. Test Oluşturma Zamanı: Test paketinin yapım süresindeki gelişimi değerlendirerek test paketi bakımıyla ilgili sorunlara işaret edebilecek eğilimleri vurgular.
  10. Kusur Dağılımı: Sorunlu alanların veya bileşenlerin belirlenmesine yardımcı olarak kusurların uygulama veya kod tabanına yayılmasını analiz eder.

Sürüm

Sürüm aşaması, ürünün kullanıcıların eline geçmesiyle ilgilidir. Sürüm Süresi ve Başarı Oranı gibi ölçümler, sürüm yönetimi verimliliğinin göstergeleridir. Jenkins, yazılımı geliştirme aşamasından dağıtım aşamasına geçirmek için bir dizi eylemin düzenlenmesine yardımcı olan bir otomasyon sunucusudur. Sürüm metriklerine odaklanmak, ekiplerin sürüm sürecini kolaylaştırmasına ve pazara sunma süresini kısaltmasına yardımcı olur.

  1. Sürüm Süresi: Bir yapıyı yayınlamaya karar verilmesinden kullanıcıların kullanımına sunulmasına kadar geçen süre; sürüm sürecinin verimliliğini gösterir.
  2. Sürüm Sayısı: Üretim ortamındaki sürüm sıklığını takip ederek sürüm yönetiminin çevikliğini gösterir.
  3. Paketlenmiş Özellikler: Her sürümde yer alan özelliklerin sayısını sayarak geliştirme ekibinin sunma yeteneğini gösterir.
  4. Sürüm Kararlılığı: Sürüm sonrası kusurlara ve çalışma süresine dayalı olarak bir sürümün sağlamlığını ölçer.
  5. Başarı Oranı: Başarılı sürümlere karşı sürüm denemelerinin yüzdesi; sürüm sürecinin kalitesini ve güvenilirliğini yansıtır.
  6. Sürüm Geri Alma: Kararlılık ve kalite sorunlarına işaret eden, sorunlar nedeniyle bir sürümün geri alınma sayısı.
  7. Kaçan Kusur: Sürümden önce tespit edilmeyen ancak üretim sırasında keşfedilen kusurların sayısı.
  8. Sürüm Geri Alma Kesintileri: Sürüm geri alma işlemlerinin neden olduğu kesintileri takip ederek sürüm sorunlarının kullanılabilirlik üzerindeki etkisini vurgular.
  9. Sürüm: Sürüm sürecinin genel başarısını ve kalitesini izleyerek öngörülebilir ve verimli olmasını sağlar.
  10. Kesintiler: Bir sürümün neden olduğu, müşteri deneyimini ve güvenini etkileyen kesinti veya kesinti olaylarının sayısı.

Dağıtma

Dağıtım, ürünü operasyonel ortama yerleştirme sürecidir. Dağıtım Sıklığı ve Dağıtım Süresi gibi ölçümler, dağıtım sürecinin çevikliğini ve istikrarını yansıtır. Docker, tutarlı ortamlar oluşturarak dağıtımı basitleştiren bir konteynerleştirme platformudur. Kuruluşlar, dağıtım metriklerini takip ederek sürecin sorunsuz olmasını ve yeni özelliklerin kullanıcılara güvenilir bir şekilde sunulmasını sağlayabilir.

  1. Dağıtım Sıklığı: Kullanıcılara yeni özellikler ve düzeltmeler sunma yeteneğini gösteren dağıtımların ne sıklıkta gerçekleştiği.
  2. Dağıtım Süresi: Bir sürümü üretime dağıtmak için gereken süre; dağıtım hattının verimliliğini gösterir.
  3. Geri Alma Sıklığı: Sürümlerin kararlılığını ve kalitesini yansıtan dağıtım geri alma sıklığı.
  4. Dağıtım Teslimat Süresi: Kodun taahhüdünden üretim hattının hızının değerlendirildiği üretimde dağıtıma kadar geçen süre.
  5. Olay Sayısı: Dağıtım sürecinin güvenilirliğini değerlendirmek için çok önemli olan, meydana gelen operasyonel olayların sayısını izler.
  6. MTTR (Ortalama Kurtarma/Çözme Süresi): Bir arızanın ardından toparlanmak için geçen ortalama süreyi ölçer ve operasyonel ekibin tepki verme yeteneğini ve dayanıklılığını vurgular.
  7. Maliyet / Sürüm: Geliştirme, operasyonlar ve diğer kaynakları içeren her sürümle ilişkili maliyeti izleyerek maliyet etkinliğinin optimize edilmesine yardımcı olur.
  8. Başarısız Dağıtım: Doğru şekilde yürütülemeyen dağıtımların sayısını sayarak dağıtım uygulamalarındaki olası sorunlara veya teslimatların kalitesine işaret eder.
  9. Üretim Kesinti Süresi: Son kullanıcı deneyimini doğrudan etkileyen dağıtım sorunları nedeniyle üretim ortamının çalışmadığı süreyi ölçer.
  10. Başarısızlık Oranını Değiştir: Hizmetin bozulmasına neden olan veya daha sonra iyileştirme gerektiren değişikliklerin yüzdesi; dağıtım sürecinin istikrarını ve riskini gösterir.

Çalıştırma(Operasyon)

Operasyon, üretimdeki yazılımın yönetilmesi ve sürdürülmesinin devam eden sürecidir. Çalışma Süresi ve Hata Bütçesi gibi ölçümler, sistemin operasyonel sağlığının bir göstergesidir. Kubernetes, karmaşık dağıtımların uygun ölçekte yönetilmesine yardımcı olan bir konteyner düzenleme sistemidir. Hizmet kalitesini ve kullanılabilirliğini korumak için operasyon ölçümleri hayati öneme sahiptir.

  1. Müşteri Geri Bildirimi: Kullanıcıların ürüne verdiği yanıtları yakalar; bu, geliştirme ve operasyonel kararları bilgilendirmek açısından çok değerlidir.
  2. Müşteri Biletleri: Müşteriler tarafından gönderilen ve kullanıcıların ürünle ilgili karşılaştığı sorunları belirten destek biletlerinin sayısı.
  3. Konfigürasyon Hataları: İşletim ortamındaki hatalı veya ideal olmayan konfigürasyonlardan kaynaklanan, sistemin güvenilirliğini etkileyen arızaları izler.
  4. Kesinti Süresi: Hizmetin güvenilirliğini ve kullanılabilirliğini yansıtacak şekilde sistemin kullanılamadığı toplam süreyi izler.
  5. Çalışma Süresi Metrikleri: Sistem güvenilirliğinin doğrudan bir ölçüsü olan, hizmetin çalışır durumda olduğu ve kullanıcılar tarafından kullanılabilir olduğu sürenin yüzdesi.
  6. Kullanım ve Trafik: Kullanıcı trafiğinin düzenlerini ve hacmini analiz ederek kapasite planlamasına ve performans ayarlamasına yardımcı olur.
  7. Hata Bütçesi: Yenilik hızı ile hizmetin güvenilirliğinin dengelenmesine yardımcı olan, kabul edilebilir riskin sayısal düzeyi veya izin verilen hata sayısı.
  8. Performans Puanı: Sistemin operasyonel performansının genel bir değerlendirmesini sağlayan, çeşitli performans göstergelerinden oluşan toplu bir ölçüm.
  9. Maliyet-Ürün Özelliği: Ürünün her özelliğiyle ilişkili maliyeti değerlendirerek finansal planlamaya ve önceliklendirmeye yardımcı olur.
  10. Elde Tutma Oranı: Ürünün değerinin ve performansının temel göstergesi olan ürünü zaman içinde kullanmaya devam eden kullanıcıların yüzdesidir.

İzleme

İzleme, yazılımın performansını ve sağlığını kontrol etmeye yönelik sürekli bir süreçtir. Sistem Çalışma Süresi ve Güvenlik Olay Oranı gibi ölçümler proaktif yönetim için kritik öneme sahiptir. Datadog, uygulamaların performansı ve güvenliği hakkında gerçek zamanlı veriler sağlayan bir izleme hizmetidir. DevOps ekipleri, izleme ölçümlerini yakından takip ederek sorunları kullanıcıları etkilemeden önce tespit edip çözebilir.

  1. Sistem Çalışma Süresi: Sistemin kararlılığı ve güvenilirliğini yansıtan, sistemin çalışır durumda olduğu ve kullanıcılar tarafından kullanılabilir olduğu süre.
  2. SLA, SLI, SLO (Hizmet Seviyesi Anlaşması, Hizmet Seviyesi Göstergesi, Hizmet Seviyesi Hedefi): Bu metrikler, müşterilere sağlanan hizmetin kalitesini tanımlar, ölçer ve takip eder.
  3. Performans: İyi bir kullanıcı deneyimi için hayati önem taşıyan, sistemin çeşitli koşullar altında ne kadar iyi performans gösterdiğini değerlendirir.
  4. Arızalara Kadar Ortalama Süre: Sistemin güvenilirliğini gösteren, arızalar arasındaki ortalama süre.
  5. Ortalama Tespit Süresi: Olaylara hızlı müdahale etmek ve etkiyi en aza indirmek için hayati önem taşıyan bir arızanın tespit edilmesi için gereken süreyi ölçer.
  6. Ortalama Onarım Süresi: Bir arızayı onarmak için gereken ortalama süre, operasyonel müdahalenin verimliliğini gösterir.
  7. Hata Oranı: Sistemde meydana gelen ve yazılım veya altyapıyla ilgili temel sorunlara işaret edebilen hataların sıklığı.
  8. Gecikme: Kullanıcı memnuniyetini ve kullanılabilirliği doğrudan etkileyen, bir isteğin işlenmesi için geçen süre.
  9. Güvenlik Olayı: Mevcut güvenlik önlemlerinin etkinliğini yansıtan, güvenlikle ilgili olayların sayısı.
  10. Altyapı Maliyeti: Bütçe yönetimi ve maliyet optimizasyonu için gerekli olan altyapının bakımı ve işletilmesiyle ilgili maliyetleri izler.

Bu ölçümlerin her biri, DevOps başarısına ilişkin daha büyük yapbozun kritik bir parçası olarak hizmet ediyor. Ekipler bu veri noktalarını ölçerek ve analiz ederek süreçlerini iyileştirebilir, verimliliği artırabilir ve sonuçta daha iyi yazılımı daha hızlı ve daha güvenilir bir şekilde sunabilir.