Łańcuch narzędzi DevOps

Łańcuch narzędzi DevOps to kolekcja narzędzi, które umożliwiają zespołom DevOps współpracę w całym cyklu życia produktu i rozwiązywanie kluczowych kwestii związanych z metodyką DevOps.

Narzędzia łańcucha narzędzi DevOps obejmują działanie jako zintegrowaną jednostkę do planowania, ciągłej integracji, ciągłego dostarczania, operacji, współpracy i opinii. Możesz przejrzeć kilka przykładów technologii DevOps na różnych etapach metodyki DevOps w temacie Definiowanie ekosystemu technologii DevOps.

Zagadnienia dotyczące łańcucha narzędzi DevOps

  • Procesy metodyki DevOps mogą być już używane w całej organizacji podczas wybierania łańcucha narzędzi. Należy znaleźć właściwą równowagę między wdrożeniem technologii odpowiednich dla potrzeb twojego zespołu a celem standaryzacji i uniknięcia heterogenicznych ekosystemów DevOps w całej organizacji.

  • Możesz przyjąć różne rodzaje łańcuchów narzędzi DevOps:

    • All-in-one: Zapewnia kompletne rozwiązanie, które może nie być zintegrowane z innymi narzędziami innych firm. Wszystkie łańcuchy narzędzi mogą być przydatne dla organizacji rozpoczynających swoją podróż devOps. Przykład: pełny stos łańcucha narzędzi usługi Azure DevOps.
    • Dostosowane: Umożliwia zespołom wprowadzanie i łączenie istniejących narzędzi, które znają i które są już używane w szerszym łańcuchu narzędzi DevOps. Integracja jest niezbędna dla tych typów łańcuchów narzędzi, aby uniknąć niepotrzebnego poświęcania czasu na przełączanie się między ekranami, logowaniem się do wielu miejsc i wyzwaniem udostępniania informacji między narzędziami. Przykład: łańcuch narzędzi Azure DevOps i GitHub.
  • Rozważ użycie łańcuchów narzędzi, które są regularnie aktualizowane i które mają dostęp do pomocy za pośrednictwem poczty e-mail lub portalu online. Jest to wymóg dla każdego produktu lub usługi, który znajduje się na krytycznej drodze do rynku.

Planning

  • Rozważ wdrożenie narzędzia obsługującego praktyki ciągłego planowania :
    • Planowanie wydania
    • Identyfikacja epików i funkcji
    • Priorytetyzacja
    • Szacowania
    • Definicja scenariusza użytkownika
    • Uściślenie listy prac
    • Planowanie przebiegu
    • Daily Scrum
    • Przegląd przebiegu
    • Retrospektywny

Ciągła integracja i ciągłe dostarczanie

  • Podczas implementowania ciągłej integracji (CI)/ rozważ wdrożenie narzędzia obsługującego:
    • Systemy kontroli wersji. Wszystko w projekcie musi być zaewidencjonowane w jednym repozytorium kontroli wersji, takie jak Git: kod, testy, skrypty bazy danych, skrypty kompilacji i wdrażania oraz wszystkie inne elementy potrzebne do tworzenia, instalowania, uruchamiania i testowania aplikacji.
    • Strategia rozgałęziania.
    • Automatyczne kompilacje.
  • Wybór repozytorium ma również wpływ na wymagania dotyczące niezależności/rezydencji danych. Jeśli chcesz, aby dane były hostowane lokalnie w kraju/regionie innym niż Stany Zjednoczone, potrzebujesz repozytoriów usługi Azure DevOps, gdy nie można używać repozytoriów GitHub Repos.
  • Aby zminimalizować ilość ręcznej konfiguracji wymaganej do aprowizacji zasobów, rozważ wdrożenie infrastruktury jako kodu (IaC). Infrastruktura IaC umożliwia stosowanie praktyk inżynierii oprogramowania, takich jak testowanie i przechowywanie wersji, dzięki czemu infrastruktura i wdrożenia są zautomatyzowane, spójne i powtarzalne. Zachowaj skrypty i szablony pod kontrolą źródła, podobnie jak w przypadku każdego innego kodu, który utrzymujesz.
  • Wdrażanie narzędzi do skanowania kodu w celu jak najszybszego wykrywania usterek kodu. Uwzględnij kontrole przed wdrożeniem, aby zweryfikować i potwierdzić zmiany przed wdrożeniem (na przykład: "what-if") — funkcja.
  • Narzędzia ciągłej integracji/ciągłego wdrażania przyspieszają czas obrotu produktem. Narzędzia, które umożliwiają równoległe wykonywanie zadań i korzystanie z elastycznej skalowalności w infrastrukturze hostowanej w chmurze, zwiększa wydajność procesu ciągłej integracji/ciągłego wdrażania.
  • Rozważ użycie funkcji narzędzia ciągłej integracji/ciągłego wdrażania, które obsługują miarę wydajności metodyki DevOps. Pulpity nawigacyjne i raportowanie mogą śledzić aspekty procesu programowania, takie jak czas realizacji, czas cyklu, szybkość pracy itd.

Operacje ciągłe

Ciągłe operacje to nacisk, który pomaga organizacjom zachować ciągłość danych wyjściowych między systemami wewnętrznymi a klientami poprzez nieprzerwane dostarczanie krytycznych usług lub funkcji. Cele operacji ciągłych to:

  • Aby zmniejszyć lub wyeliminować konieczność planowanych przestojów lub przerw, takich jak zaplanowana konserwacja, optymalizacja pojemności i wdrażanie.
  • Aby zwiększyć ogólną niezawodność i odporność systemów w trzech aspektach: z osobami, procesami i narzędziami.

Użyj natywnych dla chmury narzędzi, aby:

  • Monitorowanie kluczowych metryk pod kątem wydajności i dostępności usługi.
  • Uzyskaj doświadczenie cyfrowe i szczegółowe informacje o klientach.
  • Generowanie odpowiedzi opartych na inteligencji dla zdarzeń, odzyskiwania systemu lub skalowania.
  • Automatyzowanie proaktywnej konserwacji i zadań, takich jak wdrażanie lub aktualizacje systemu.
    • Usługa Azure Automation to narzędzie natywne dla chmury, którego można użyć do tworzenia automatyzacji opartej na zdarzeniach w celu diagnozowania i rozwiązywania problemów.

Współpraca i opinie

  • Szybkie sprzężenia zwrotne są w centrum procesu ciągłej integracji/ciągłego wdrażania. Narzędzie ciągłej integracji/ciągłego wdrażania używa opinii do rozwiązywania warunków w logice przepływu pracy ciągłej integracji/ciągłego wdrażania i wyświetla informacje z powrotem do użytkowników, zwykle za pośrednictwem pulpitu nawigacyjnego.

  • Obsługa powiadomień e-mail i integracji z środowiskami IDE lub platformami komunikacyjnymi zapewnia, że możesz być na bieżąco z informacjami o tym, co się dzieje bez konieczności sprawdzania pulpitu nawigacyjnego. Upewnij się, że masz elastyczność konfigurowania otrzymywanych alertów, ponieważ uzyskanie zbyt wielu alertów przekształca je w szum w tle.

  • Każde narzędzie wybrane do współpracy powinno obsługiwać następujące praktyki współpracy:

    • Współpraca kanban
    • Współpraca zawartości typu wiki
    • Współpraca w aplikacji ChatOps
    • Pokój zespołu

Zalecenia dotyczące łańcucha narzędzi DevOps dla stref docelowych platformy Azure

Łańcuchy narzędzi DevOps dla implementacji strefy docelowej platformy Azure powinny uwzględniać wszystkie wcześniej omówione fazy metodyki DevOps:

  • Planning
  • Ciągła integracja/ciągłe wdrażanie (w tym możliwości automatyzacji, takie jak infrastruktura jako kod)
  • Operations
  • Współpraca i opinie

Zapoznaj się ze wskazówkami dotyczącymi wdrażania strefy docelowej i zagadnieniami dotyczącymi wybierania opcji implementacji w temacie Wybieranie wdrożenia strefy docelowej.

Niezależnie od wybranej metodologii (zacznij od małej i rozwijania lub skali przedsiębiorstwa), istnieje kilka typowych topologii, które przedsiębiorstwa mają tendencję do śledzenia podczas projektowania przepływów pracy i łańcuchów narzędzi DevOps.

  • Pełny stos łańcucha narzędzi usługi Azure DevOps: W przypadku przedsiębiorstw, które są już mocno inwestowane w ekosystem firmy Microsoft, ta topologia pozwala im w pełni wykorzystać natywne integracje między produktami i usługami firmy Microsoft i usprawnić kluczowe procesy.
  • Łańcuch narzędzi Usługi Azure DevOps i GitHub: Ta topologia umożliwia korzystanie z zalet platformy Azure i usługi GitHub w ramach dobrze zintegrowanego rozwiązania.

Łańcuch narzędzi usługi Azure DevOps w pełnym stosie

Diagram łańcucha narzędzi usługi Azure DevOps pełnego stosu.

Etap metodyki DevOps Tools
Planning Usługa Azure Boards oferuje zaawansowane i elastyczne funkcje planowania deweloperom i innym osobom, w tym hierarchiczne listy prac, dostosowywalne tablice Kanban, zaawansowane dostosowywanie procesów, pulpity nawigacyjne zespołu i niestandardowe raportowanie.
Ciągła integracja/ciągłe wdrażanie Usługa Azure Repos umożliwia tworzenie prywatnych repozytoriów Git i obsługuje różnych klientów Usługi Git, strategię rozgałęziania i ochronę. Usługa Azure Repos udostępnia również zlokalizowane miejsce przechowywania danych w chmurze, aby umożliwić zgodność z przepisami europejskimi. Usługa Azure Pipelines umożliwia klientom konfigurowanie zautomatyzowanych potoków ciągłej integracji/ciągłego wdrażania, w tym na potrzeby zaawansowanego raportowania testów i zapewnia zaawansowaną obsługę potoków wieloestowych. Szczegółowe uprawnienia, bramy, kontrole niestandardowe i automatyczne raportowanie wyników testów w usłudze Azure Pipelines ułatwiają wymuszanie najlepszych rozwiązań dotyczących zabezpieczeń, zgodności i bezpiecznego wdrażania w organizacji oraz obsługę równoległych kroków wykonywania i skalowalności. Usługa Azure Artifacts udostępnia kanał informacyjny do przechowywania pakietów oraz przeglądania i weryfikowania każdego pakietu do celów zabezpieczeń, a także zapewnia szczegółową kontrolę uprawnień i inspekcję. Plany testów platformy Azure w usłudze Azure DevOps udostępnia oparte na przeglądarce rozwiązanie do zarządzania testami eksploracyjnymi, ręcznymi i akceptacyjnymi użytkownikami. Użytkownicy planów testów platformy Azure zwykle używają usługi Azure Boards do planowania i zarządzania projektami. Scenariusze użytkowników i inne wymagania można połączyć z przypadkami testowym i dokumentować usterki znalezione w ramach testowania. Wdrażanie rozszerzeń witryny Marketplace dla metodyki DevOps w celu ulepszenia analizy kodu statycznego za pomocą narzędzi takich jak skanery poświadczeń, skanery typu open source, skanery błędów i luk w zabezpieczeniach i nie tylko.
Operations Pulpity nawigacyjne i raportowanie platformy Azure zapewniają niestandardowe raportowanie , które ułatwiają monitorowanie kluczowych metryk wydajności usługi. Diagnostyka Azure i usługa Application Insights to standardowa metoda śledzenia kondycji i stanu zasobów platformy Azure. Usługa Azure Monitor zapewnia scentralizowane monitorowanie i zarządzanie. Usługa Azure Automation może służyć do tworzenia automatyzacji opartej na zdarzeniach w celu diagnozowania i rozwiązywania problemów. Usługa Defender for Cloud DevOps używa konsoli centralnej, aby umożliwić zespołom ds. zabezpieczeń ochronę aplikacji i zasobów z kodu do chmury w środowiskach obejmujących wiele potoków, w tym usługi Azure DevOps i GitHub.
Współpraca i opinie Witryna typu wiki usługi Azure DevOps umożliwia udostępnianie informacji członkom innych zespołów i obsługuje wspólne edytowanie zawartości i struktury. Usługa Azure Boards zapewnia współpracę kanban i obsługę komentarzy i dyskusji w elementach listy prac.

Łańcuch narzędzi Usługi Azure DevOps i GitHub

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

Etap metodyki DevOps Tools
Planning Usługa Azure Boards udostępnia stabilne i skalowalne rozwiązanie do planowania, zarządzania repozytorium, wizualizacji danych i hierarchicznej organizacji elementów roboczych. Integruje się z usługą GitHub, dzięki czemu można łączyć elementy robocze i zatwierdzenia usługi GitHub. Umożliwia również wybranie idealnego przepływu pracy, niezależnie od tego, czy jest to prosty, wbudowany przepływ pracy, czy niestandardowy przepływ pracy, który tworzysz za pomocą zaawansowanego i elastycznego aparatu dostosowywania usługi Azure Boards. Gdy musisz wizualizować dane, usługa Azure Boards ułatwia tworzenie i konfigurowanie niestandardowych pulpitów nawigacyjnych oraz monitorowanie postępu w całym cyklu życia projektu.
Ciągła integracja/ciągłe wdrażanie Użyj wersji GitHub Enterprise (GHE) usługi GitHub, która obejmuje repozytorium GitHub, usługę GitHub Advanced Security (GHAS) i usługę GitHub Advanced Security dla usługi Azure DevOps. Usługa GHAS obejmuje kodQL, skanowanie kodu, skanowanie wpisów tajnych i przegląd zależności. GHE oferuje również codespaces , środowisko IDE w chmurze, którego można użyć do tworzenia kodu i które mogą zastąpić program Visual Studio Code, który organizacje zwykle obejmują scenariusze usługi Azure DevOps w pełnym stosie. Za pomocą funkcji GitHub Actions można zautomatyzować przepływy pracy niekompilowane, jeśli repozytoria znajdują się w usłudze GitHub. Jeśli masz bardziej złożone scenariusze, w których musisz uzyskać dostęp do kodu spoza usługi GitHub lub wymagać scentralizowanego zarządzania szablonami przepływów pracy i potokami kompilacji, należy wdrożyć usługę Azure Pipelines. W przypadku usługi Azure Boards można zintegrować usługę Azure Pipelines z repozytoriami GitHub. Aby dowiedzieć się więcej na temat integracji usług Azure DevOps i GitHub, zobacz Praca z usługami Azure DevOps i GitHub. GitHub Packages to usługa pakietu oprogramowania, która umożliwia prywatną lub publiczną obsługę własnych pakietów. Usługa GitHub oferuje obsługę rejestru kontenerów na potrzeby hostowania obrazów platformy Docker lub OCI. Aby publikować, instalować lub usuwać pakiety, potrzebujesz tokenów dostępu i zachować bezpieczeństwo zarządzania cyklem życia pakietu. Aby zautomatyzować pakiety, można zintegrować pakiety GitHub z funkcjami GitHub Actions, interfejsami API usługi GitHub i elementami webhook, aby tworzyć przepływy pracy devOps, które obejmują kod, ciągłą integrację i wdrożenia w jednym interfejsie.
Operations Usługa GitHub Insights udostępnia raporty analityczne na podstawie danych z wystąpienia serwera GitHub Enterprise Server, które ułatwiają zrozumienie i ulepszenie procesu dostarczania oprogramowania. W przypadku diagnostyki i zarządzania strefą docelową użyj usług platformy Azure zalecanych w scenariuszu Pełnego stosu usługi Azure DevOps .
Współpraca i opinie Dyskusje w usłudze GitHub umożliwiają udostępnianie pytań, pomysłów, konwersacji, żądań dotyczących komentarzy (RFC), planowania zasobów i anonsów. Usługa Azure Boards umożliwia łatwe tworzenie i konfigurowanie niestandardowych pulpitów nawigacyjnych oraz monitorowanie postępu w cyklach życia projektu. Przyjęcie aplikacji Microsoft Teams w celu uzyskania pełnego środowiska współpracy zespołowej.