Wprowadzenie do pojęcia "DORA metrics"
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)
- Częstotliwość wdrażania (DF) — częstotliwość wdrażania kodu
- Średni czas realizacji zmian (MLT) — czas od zatwierdzenia kodu do produkcji
Wskaźniki stabilności (Stability metrics)
- Średni czas naprawy (MTTR) — czas przywrócenia usługi po incydencie
- Wskaźnik niepowodzeń zmian (CFR) — procent zmian powodujących awarię
Lista wskaźników
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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://azure.microsoft.com/