Powrót

Wprowadzenie do pojęcia "DORA metrics"

28 paź

Artykuły

„DORA metrics” jest pojęciem odnoszącym się do branży IT o specjalizacji DevOps

DORA to skrót od "DevOps Research and Assessment” (Badania i Ocena)

W 2016 roku w raporcie „State of DevOps” opublikowano wskaźniki DORA

Raport odnosi się do metryk które są używane do oceny efektywności i jakości procesów wytwarzania oprogramowania w kontekście DevOps (Development and Operations). Te metryki pomagają organizacjom monitorować i oceniać postępy w zakresie wdrażania zmian i stabilności systemów.


Raport określa 4 (od niedawna 5) kluczowych wskaźników. 

Wskaźniki podzielone są na dwie grupy. Podział ten prawdopodobnie został wprowadzony ze względu na podział narzędzi które badają wskaźniki.

Metryki prędkości (Velocity metrics)

  1. Częstotliwość wdrażania (DF) — częstotliwość wdrażania kodu
  2. Średni czas realizacji zmian (MLT) — czas od zatwierdzenia kodu do produkcji

Wskaźniki stabilności (Stability metrics)

  1. Średni czas naprawy (MTTR) — czas przywrócenia usługi po incydencie
  2. Wskaźnik niepowodzeń zmian (CFR) — procent zmian powodujących awarię


Lista wskaźników

  1. Deployment Frequency (DF)  (Częstotliwość wdrożeń): Określa, jak często organizacja wdraża zmiany do swojego oprogramowania. Wyższa częstotliwość może wskazywać na bardziej zwinne i efektywne procesy.
  2. Lead Time for Changes (MLT) (Czas dostarczenia zmiany): Mierzy czas, jaki potrzebny jest na wprowadzenie zmiany od momentu jej koncepcji do wdrożenia. Krótszy czas oznacza bardziej zrównoważony i wydajny proces.
  3. Mean Time to Recover (MTTR) (Średni czas na przywrócenie): Ocenia, jak szybko organizacja jest w stanie przywrócić usługi w przypadku awarii lub problemów. Krótszy czas oznacza większą zdolność do reagowania na incydenty.
  4. Change Failure Rate (CFR)  (Wskaźnik błędów w zmianach): Określa, ile zmian kończy się niepowodzeniem lub powoduje problemy. Niższy wskaźnik oznacza bardziej stabilne wdrożenia.
  5. Niezawodność (Reliability) – to piąty miernik mierzący nowoczesne praktyki operacyjne. Podstawowym miernikiem wydajności operacyjnej jest niezawodność, w przypadku której zespół może osiągnąć lub przekroczyć cele niezawodności oprogramowania i aplikacji, które obsługuje. Niezawodność to szersza miara obejmująca dostępność, opóźnienia, wydajność i skalowalność, która mierzy:
  • Zachowanie skierowane do użytkownika
  • Metryki SLI/SLO i ich wpływ na budżety błędów
  • Zastosowanie automatyzacji w celu ograniczenia pracy ręcznej i ostrzegania o zmęczeniu
  • Zdefiniowane podręczniki umożliwiające reagowanie na problemy
  • Poziom niezawodności uwzględniany w procesie dostarczania oprogramowania.


Badanie DORA w JIRA

Atlassian Jira można dostosować do monitorowania DORA metrics i innych kluczowych wskaźników wydajności. Oto, jak można to osiągnąć:

  • Częstotliwość wdrożeń: W Jira można tworzyć zadania związane z wdrożeniami lub zadaniami związanymi z procesem dostarczania zmian. Można użyć niestandardowych pól, takich jak "Data wdrożenia", aby śledzić, kiedy dokonano wdrożenia. Następnie można tworzyć raporty, które analizują częstotliwość wdrożeń.
  • Czas dostarczenia zmiany: Można korzystać z niestandardowych pól w Jira, takich jak "Data rozpoczęcia" i "Data zakończenia", aby monitorować czas dostarczenia zmiany. Można również tworzyć raporty, które analizują średni czas potrzebny na dostarczenie zmian.

Narzędzia są bardziej ukierunkowane na monitorowanie aspektów zarządzania zadaniami i procesami niż na bezpośrednią analizę metryk DORA. Aby uzyskać bardziej zaawansowaną analizę DORA metrics, organizacje często łączą narzędzia takie jak Jenkins i Jira z narzędziami monitorującymi, jak New Relic, DataDog czy innymi wymienionymi wcześniej platformami, które oferują bardziej zaawansowane możliwości analizy danych wydajnościowych i monitorowania. Dzięki temu można uzyskać kompleksową ocenę procesów DevOps i efektywności.


Badanie DORA w Azure

Azure DevOps Services (dawniej znane jako Visual Studio Team Services, VSTS):

Azure DevOps Services to platforma do zarządzania cyklem życia oprogramowania oferowana przez Microsoft. Można wykorzystać ją do zarządzania projektami, śledzenia zadań i monitorowania procesów DevOps. Można tworzyć zadania związane z wdrażaniem i monitorować postępy oraz czas dostarczenia zmiany.

Azure Monitor:

Azure Monitor to narzędzie do monitorowania zasobów w chmurze Azure. Można użyć go do zbierania i analizy danych monitorujących z różnych usług Azure, takich jak App Service, Azure Functions, czy Azure Kubernetes Service (AKS). To umożliwia śledzenie metryk związanych z wydajnością aplikacji i infrastrukturą.


Badania DORA w AWS

AWS CloudWatch

AWS CloudWatch to usługa monitorowania oferowana przez Amazon Web Services. Pozwala na zbieranie, przetwarzanie i wizualizację danych monitorujących z usług AWS oraz aplikacji działających w chmurze AWS. Można tworzyć wskaźniki niestandardowe, alarmy i panele nawigacyjne do analizy metryk związanych z wydajnością.

AWS CodePipeline

AWS CodePipeline to usługa do automatyzacji procesów CI/CD w AWS. Można skonfigurować potoki wdrożeniowe, które pomagają w monitorowaniu częstotliwości wdrożeń i czasu dostarczenia zmiany.


hird-Party Monitoring Tools:

Zarówno Azure, jak i AWS integrują się z wieloma narzędziami monitorującymi dostarczanymi przez niezależne firmy, takimi jak New Relic, DataDog, czy Splunk. Te narzędzia oferują zaawansowane możliwości analizy i wizualizacji danych wydajnościowych oraz monitorowania DORA metrics.


DataDog

Platforma monitorująca, która umożliwia monitorowanie wielu aspektów aplikacji i infrastruktury, w tym wskaźników związanymi z "DORA metrics" oraz innymi metrykami wydajności. Narzędzie to jest popularne w środowiskach DevOps i umożliwia organizacjom monitorowanie, analizę i wizualizację danych wydajnościowych oraz tworzenie alarmów w celu śledzenia zmian i incydentów. Oto kilka kluczowych funkcji DataDog związanych z badaniem "DORA metrics”:

  • Monitoring Aplikacji (Application Monitoring teraz chyba ): DataDog pozwala na monitorowanie wydajności aplikacji, w tym śledzenie metryk związanych z częstotliwością wdrożeń, czasem dostarczenia zmiany i wskaźnikami błędów w aplikacjach.

Link: https://docs.datadoghq.com/dashboards/

  • Infrastruktura(nfrastructure Monitoring): Narzędzie umożliwia monitorowanie infrastruktury, w tym serwerów, kontenerów i usług w chmurze. Można analizować zużycie zasobów i wydajność infrastruktury, co pomaga w utrzymaniu stabilności.
  • Wizualizacja Danych: DataDog oferuje zaawansowane narzędzia do wizualizacji danych. Można tworzyć wykresy, panele nawigacyjne i panele rozkładu danych, które pozwalają na analizę DORA metrics w czytelnej formie.
  • Alarmy: Można konfigurować alarmy w DataDog, które powiadomią cię w przypadku przekroczenia ustalonych progów wskazujących na potencjalne problemy. To pozwala na natychmiastową reakcję na incydenty.
  • Integracje: DataDog integruje się z wieloma narzędziami i usługami, w tym Azure, AWS, Jenkins, Jira i innymi. Dzięki tym integracjom można łatwo zbierać dane z różnych źródeł i tworzyć spójne raporty.


Badania DORA z podziałem na metryki i usługi/narzędzia

  1. Metoda DORA Metrics: Deployment Frequency (Częstotliwość wdrożeń)
  • DataDog: Można monitorować częstotliwość wdrożeń aplikacji za pomocą narzędzi monitorujących w DataDog, które śledzą czas i datę wdrożeń, a także raportują tę metrykę
  • AWS: AWS CodePipeline lub inne narzędzia CI/CD mogą pomóc w monitorowaniu częstotliwości wdrożeń, gdyż umożliwiają automatyzację i harmonogramowanie wdrożeń.
  • Azure DevOps Services: Platforma ta pozwala na śledzenie częstotliwości wdrożeń i monitorowanie procesu wdrażania zmian w aplikacjach.


  1. Metoda DORA Metrics: Lead Time for Changes (Czas dostarczenia zmiany)
  • DataDog: Można monitorować czas dostarczenia zmiany, śledząc czas od momentu rozpoczęcia prac nad zmianą do jej wdrożenia za pomocą narzędzi w DataDog.
  • AWS: AWS CodePipeline lub narzędzia zarządzania projektami, takie jak AWS CodeCommit, mogą pomóc w monitorowaniu czasu dostarczenia zmiany.
  • Azure DevOps Services: W usłudze Azure DevOps można monitorować czas potrzebny na dostarczenie zmiany od momentu rozpoczęcia prac nad nią do momentu wdrożenia.


  1. Metoda DORA Metrics: Mean Time to Recover (Średni czas na przywrócenie)
  • DataDog: DataDog może pomóc w monitorowaniu średniego czasu na przywrócenie poprzez monitorowanie czasu reakcji na incydent i czasu naprawy w przypadku awarii lub problemów.
  • AWS: AWS CloudWatch i narzędzia do zarządzania incydentami w AWS (na przykład AWS Systems Manager) mogą pomóc w monitorowaniu i skracaniu średniego czasu na przywrócenie.
  • Azure Monitor: Narzędzie to pozwala na monitorowanie wydajności aplikacji i infrastruktury w Azure, co pomaga w skróceniu średniego czasu na przywrócenie w przypadku awarii lub problemów.
  • Azure Application Insights: Usługa ta dostarcza zaawansowane narzędzia do monitorowania aplikacji i może pomóc w analizie czasu reakcji na incydent oraz czasu naprawy.


  1. Metoda DORA Metrics: Change Failure Rate (Wskaźnik błędów w zmianach)
  • DataDog: DataDog może pomóc w monitorowaniu wskaźnika błędów w zmianach poprzez analizę i raportowanie błędów w aplikacjach oraz identyfikację problemów w procesie wytwarzania oprogramowania.
  • AWS: AWS oferuje narzędzia do monitorowania jakości zmian, takie jak AWS CodePipeline i narzędzia do testowania ciągłego, które pomagają w minimalizowaniu błędów w zmianach.
  • Azure DevOps Services: Można korzystać z Azure DevOps, aby śledzić wskaźnik błędów w zmianach, analizując historię błędów i problemów wdrożeniowych.
  • Azure Application Insights: Ta usługa pozwala na monitorowanie wyjątków i błędów w aplikacjach, co może pomóc w analizie wskaźnika błędów w zmianach.


Źródła:

https://en.wikipedia.org/wiki/DevOps

https://www.sumologic.com/glossary/dora-metrics/

https://www.datadoghq.com/

https://aws.amazon.com/

https://azure.microsoft.com/

https://www.datadoghq.com/

https://www.splunk.com/

https://newrelic.com/





Data utworzenia: 1 rok temu
Data aktualizacji: 1 rok temu