Udostępnij za pośrednictwem


Kwestie do rozważenia dotyczące metodyki DevOps

Ten artykuł zawiera zagadnienia i zalecenia dotyczące metodyki DevOps w strefach docelowych platformy Azure.

Co to jest metodyka DevOps

DevOps to związek ludzi, procesów i technologii, które zapewniają ciągłą wartość rozwoju (dev) i operacji (ops). Podejście DevOps zachęca do współpracy zespołowej, która tworzy powtarzalne procesy, aby pomóc organizacjom działać wydajnie i na dużą skalę.

W kontekście stref docelowych platformy Azure usługa DevOps staje się strukturą, która kieruje zespołem (lub zespołami) odpowiedzialnymi za całe zarządzanie cyklem życia stref docelowych platformy Azure w takich obszarach jak:

  • Jak samodzielnie organizować i definiować granice z innymi zespołami, aby osiągnąć odpowiednią równowagę między autonomią a zarządzaniem
  • Jak stale rozwijać projekt architektury strefy docelowej platformy Azure (prawo conwaya)
  • Jak planować, ustalać priorytety i iterować implementację zaprojektowanej architektury
  • Jak zaimplementować kontrolę wersji, ciągłą integrację i ciągłe wdrażanie kodu strefy docelowej platformy Azure
  • Jak obsługiwać zdarzenia i reagować na nie w systemach i platformach, których jesteś właścicielem
  • Poziom automatyzacji stosowany do aprowizacji strefy docelowej platformy Azure i samonaprawiania
  • Jak współpracować z innymi zespołami w organizacji w sposób elastyczny, zorientowany na wyniki
  • Jak utworzyć kulturę generowania zabezpieczeń, jakości, skoncentrowaności na użytkownikach i ciągłego uczenia

Decyzje podejmowane podczas przeglądania modeli operacyjnych w chmurze mogą mieć wpływ na sposób korzystania z platformy DevOps.

Zagadnienia dotyczące projektowania metodyki DevOps

  • Zdefiniuj strukturę DevOps lub dostosuj ją do strategii devOps i wdrażania chmury w organizacji. Uwzględnij definicję metodyki DevOps oraz zasady i praktyki, które musi przestrzegać twój zespół. Upewnij się, że łączysz strategię DevOps ze strategią biznesową.

  • Ustanów metryki , które umożliwiają zespołowi zwiększenie wydajności metodyki DevOps. Zespoły o wysokiej wydajności używają hipotezy do testowania swoich pomysłów, mierzenia jej w celu sprawdzenia, jak działa hipoteza, a następnie wprowadzania zmian w razie potrzeby. Ostatecznym celem metodyki DevOps jest ulepszenie aspektów, takich jak częstotliwość wdrażania, średni czas stosowania zmiany lub czas przywrócenia obniżonej wydajności usługi. Wszystkie te metryki należy zaprojektować, aby ostatecznie wpłynąć na ogólną wydajność biznesową.

  • Określ praktyki DevOps, które zespół powinien wdrożyć najpierw na podstawie ich bieżących umiejętności, i zaprojektuj plan przyrostowego stosowania nowych rozwiązań, które pomagają zespołowi ulepszyć metryki metodyki DevOps. Inwestowanie w możliwości inżynieryjne i zasoby ma kluczowe znaczenie.

  • Określ łańcuch narzędzi DevOps, który twój zespół powinien użyć do zaimplementowania praktyk DevOps. Upewnij się, że narzędzia są zgodne z ogólną strategią DevOps, aby uniknąć scenariuszy heterogenicznych ekosystemów DevOps zwiększających złożoność wdrożeń strefy docelowej lub obciążeń platformy Azure.

  • Oceń wpływ wdrożonych rozwiązań DevOps i narzędzi DevOps na projektowanie stref docelowych platformy Azure.

  • Utwórz plan gotowości, aby stale rozwijać umiejętności zespołu. Ogólne zastosowanie modelu DevOps nie powoduje natychmiastowego ustanowienia zdolnych zespołów DevOps.

  • Określ topologię zespołu, która najlepiej pasuje do strategii DevOps organizacji i modelu operacyjnego w chmurze, a także ustanów jasne granice, obowiązki i zależności między zespołami.

  • Określ, w jaki sposób zespół odpowiedzialny za strefy docelowe platformy Azure powinien współpracować z innymi zespołami w organizacji w celu przechwytywania nowych wymagań strefy docelowej platformy Azure w celu zaktualizowania projektu i implementacji, rozwiązywania zdarzeń, minimalizowania zależności i dopasowywania ich do priorytetów biznesowych.

Zalecenia dotyczące metodyki DevOps

Poniższe sekcje zawierają zalecenia ułatwiające wdrożenie struktury DevOps w organizacji.

Definiowanie struktury DevOps

Aby ustanowić strukturę DevOps, rozważ użycie struktur, które są już dostępne, aby rozpocząć od zestawu wstępnie zdefiniowanych sprawdzonych rozwiązań:

Definiowanie rozwiązań DevOps dotyczących zarządzania strefami docelowymi platformy Azure

Rozważ następujące rozwiązania devOps dotyczące stref docelowych platformy Azure:

Planowanie podróży implementacji metodyki DevOps

Zdefiniuj i dostosuj swoją podróż implementacji metodyki DevOps do planu wdrożenia chmury w organizacji.

  • Określ, gdzie twój zespół znajduje się dzisiaj w następujących obszarach:
    • Praktyki devOps, które zespół przyjął na potrzeby zarządzania strefami docelowymi platformy Azure.
      • Użyj narzędzi, takich jak ocena możliwości metodyki DevOps, aby ocenić bieżący stan stanu metodyki DevOps twojego zespołu.
    • Bieżąca struktura zespołu, w tym role i obowiązki oraz należące do niego funkcje w chmurze.
    • Jakie umiejętności techniczne ma Twój zespół.
    • Który model operacji w chmurze jest obecnie zgodny z twoim zespołem.
  • Użyj planu wdrożenia chmury w organizacji, aby zdefiniować żądany model dla twojego zespołu.
  • Ustanów iteracyjny plan wdrożenia żądanego modelu w trybie iteracyjnym i przyrostowym, który jest zgodny z osią czasu transformacji organizacji.

Implementowanie żądanych metryk metodyki DevOps

Zidentyfikuj, które metryki będą używane do mierzenia wydajności metodyki DevOps zespołu. Metryki służą do kierowania pożądanymi nawykami w zespole, które łączą się z wynikami biznesowymi. Ustanów metryki, aby umożliwić zespołowi mierzenie wpływu na działania. Uwidocznij kluczowe metryki, ponieważ przejrzystość promuje zaufanie i zwiększa spójność z celami organizacji.

Przykłady metryk, które mierzą wydajność metodyki DevOps w celu zwiększenia wpływu na działalność biznesową, obejmują:

  • Wyniki biznesowe:

    • Użyj celów i kluczowych wyników jako narzędzia, aby przenieść zespoły z dala od "wyjściowego" sposobu myślenia i do "wyniku". Możesz na przykład użyć liczby obciążeń, które poprawiły ocenę zgodności w porównaniu z liczbą zasad wdrożonych na platformie Azure.
    • Zadowolenie klientów lub użytkowników końcowych. Przykłady to Net Promoter Score (NPS), ankiety, wywiady.
    • Rozwój firmy. Przykłady obejmują zwiększenie rentowności, zwiększenie przychodów i nowe pozyskiwanie źródła przychodów.
    • Osoby metryki. Przykłady obejmują wskaźnik promotora netto pracowników (eNPS), wykorzystanie, przechowywanie i zadowolenie.
    • Koszty. Na przykład możesz użyć redukcji kosztów.
  • Wydajność dostarczania oprogramowania:

    • Czas realizacji zmiany, czas potrzebny na poprawkę usterek, nową funkcję lub inną zmianę, aby przejść od pomysłu do wdrożenia do środowiska produkcyjnego.
    • Częstotliwość wdrażania, wdrożenia na dzień zmian kodu w środowisku produkcyjnym.
    • Średni czas przywracania— czas potrzebny na przywrócenie usługi w środowisku produkcyjnym po wystąpieniu zdarzenia.
    • Zmień wartość procentową niepowodzenia, procent zmian w środowisku produkcyjnym (na przykład zmiany konfiguracji), które prowadzą do awarii.
  • Jakości:

    • Współczynnik ucieczki wad, liczba wad zidentyfikowanych przez użytkowników końcowych.
    • Nieplanowana praca lub przeróbka, procent czasu spędzonego w nieplanowanej pracy lub przeróbki.
    • Aktywne usterki— liczba usterek, które nie zostały jeszcze naprawione.
    • Kondycja kodu — procent kodu, który nie został przetestowany jednostkowo.

Definiowanie ekosystemu technologii DevOps

Łańcuch narzędzi DevOps, który chcesz zarządzać cyklem życia stref docelowych platformy Azure, ma wpływ na:

  • Strategie implementowania zasad i praktyk metodyki DevOps
  • Zagadnienia dotyczące zabezpieczeń cyklu życia metodyki DevOps
  • Ogólny projekt architektury zarządzania cyklem życia stref docelowych platformy Azure

Użyj wcześniej zdefiniowanej struktury DevOps, aby zidentyfikować narzędzia do użycia dla każdego z procesów DevOps. Wybierz technologie DevOps, które są najbardziej odpowiednie dla potrzeb zespołów, ale znajdź równowagę, która umożliwia osiągnięcie standaryzacji w całej organizacji, ale unikaj zbyt dużej złożoności lub heterogeniczności w ekosystemach DevOps.

Przykłady technologii DevOps na różnych etapach metodyki DevOps obejmują:

  • Planowanie: Atlassian Jira, Atlassian Trello, Azure Boards, GitHub
  • Ciągła integracja i testowanie: Atlassian Bitbucket, Azure Repos, GitHub Repos, npm, NuGet, Selenium, SmartBear Cucumber, SonarSource SonarQube, Zed Attack Proxy
  • Ciągłe dostarczanie (CD): Atlassian Bamboo, Azure Pipelines, GitHub Actions, Jenkins, Octopus Deploy, Perforce Puppet, RedHat Ansible
    • Infrastruktura jako kod: Bicep, Pulumi, Terraform
    • Bootstrapping: ArgoCD GitOps, Flux GitOps, Progress Chef, PowerShell Desired State Configuration (DSC)
  • Operacje: Azure Automation, Azure Monitor, CISCO Splunk, Grafana, Microsoft Power BI
  • Współpraca i opinie: Atlassian Confluence, witryny typu wiki usługi Azure DevOps, dyskusje w witrynie GitHub, witryny typu wiki usługi GitHub, Microsoft Teams, Slack, Stack Overflow

Na poniższym diagramie przedstawiono przykładową strukturę DevOps z wyborem łańcucha narzędzi usługi Azure DevOps:

Diagram struktury DevOps z wyborem łańcucha narzędzi usługi Azure DevOps.

Na poniższym diagramie przedstawiono przykładową strukturę DevOps z wyborem łańcucha narzędzi Usługi Azure DevOps i GitHub:

Diagram struktury DevOps z wyborem łańcucha narzędzi Usługi Azure DevOps i GitHub.

Następny krok