Udostępnij za pośrednictwem


Używanie pierścieni wdrażania z wydaniami rozszerzeń

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Dzięki pierścieniom wdrażania można stopniowo wdrażać i weryfikować zmiany w rozszerzeniu w środowisku produkcyjnym, ograniczając jednocześnie wpływ na użytkowników.

Nie zalecamy wdrażania we wszystkich środowiskach produkcyjnych w tym samym czasie, co uwidacznia wszystkich użytkowników w zmianach. Stopniowe wdrażanie uwidacznia użytkowników w miarę upływu czasu, weryfikowanie zmian w środowisku produkcyjnym przy mniejszej liczbie użytkowników.

W poniższej tabeli przedstawiono różnice między obszarami, których dotyczy problem, gdy używasz pierścieni, a nie pierścieni.

Bez pierścieni Obszar Z pierścieniami
Ręczne i podatne na błędy Tworzenie Zautomatyzowane i spójne
Ręczne i podatne na błędy Zwolnij Zautomatyzowane i spójne
Godziny Czas kompilacji (TTB) Sekundy
Dni Czas wydania (TTR) Minuty
Połączenie od użytkownika Wykrywanie problemów Proaktywne
Dni do tygodni Rozwiązywanie problemów Minuty do dni

Aby uzyskać więcej informacji, zobacz Konfigurowanie potoków wydania na potrzeby bezpiecznych wdrożeń.

Wymagania wstępne

  • Przejrzyj potoki ciągłej integracji/ciągłego wdrażania i Zatwierdzenia, aby uzyskać szczegółową dokumentację potoków i funkcji zatwierdzania dla wydań.

Przypisywanie typów użytkowników

Określ, którzy użytkownicy najlepiej nadają się dla każdego typu użytkownika. Przekaż możliwość przekazywania opinii i poziomów ryzyka w każdej warstwie, ponieważ ma kluczowe znaczenie dla ustawienia oczekiwań i zapewnienia sukcesu. W poniższym przykładzie użytkownicy są podzieleni na trzy grupy w środowisku produkcyjnym:

  • Kanarki: dobrowolnie testują funkcje zaraz po ich udostępniu.
  • Wczesnych użytkowników: dobrowolne wersje zapoznawcze, uważane za bardziej wyrafinowane niż kanary bity.
  • Użytkownicy: zużywają produkty, po przejściu przez kanarki i wczesnych użytkowników.

Pierścienie użytkownika

Mapuj topologię

Zamapuj topologię rozszerzenia na model wdrażania pierścieniowego, aby ograniczyć wpływ zmian na użytkowników i dostarczyć wartość. W przypadku naszych rozszerzeń społeczności typu open source używamy głównie wdrożenia opartego na pierścieniu, aby stopniowo uwidaczniać nową wersję kanary, wczesnych użytkowników i użytkowników.

Na poziomie aplikacji kompozycja rozszerzeń usługi Azure DevOps jest łatwa do opracowywania, skalowania i wdrażania niezależnie.

Każde rozszerzenie wykonuje następujące zadania:

  • Ma jeden z większej liczby plików internetowych i skryptów
  • Interfejsy z klientem Core
  • Interfejsy z klientem REST i interfejsami API REST
  • Utrwala stan w pamięci podręcznej lub odpornym magazynie

Progresywne narażenie warstwy aplikacji

Na poziomie infrastruktury rozszerzenia są publikowane w witrynie Marketplace. Po zainstalowaniu rozszerzenia w organizacji jest ono hostowane przez portal usługi Azure DevOps ze stanem utrwalone w usłudze Azure Storage lub w magazynie danych rozszerzenia.

Stopniowe narażenie warstwy infrastruktury

Topologia rozszerzenia doskonale nadaje się do modelu wdrażania pierścieniowego i publikowania rozszerzenia w każdym pierścieniu wdrażania:

  • Prywatna wersja dewelopera pierścienia kanarowego
  • Prywatna wersja zapoznawcza dla pierścienia wczesnego wdrażania
  • Publiczna wersja produkcyjna pierścienia użytkowników

Napiwek

Opublikuj rozszerzenie jako prywatne, aby kontrolować narażenie zaproszonych użytkowników.

Przenoszenie zmian za pośrednictwem pierścieni wdrażania

Zobacz poniższy przykładowy przepływ przenoszenia zmian za pośrednictwem pierścieni wdrażania.

Użyj rozszerzenia Azure DevOps Developer Tools Build Tasks, aby spakować i opublikować rozszerzenia w witrynie Marketplace.

Pierścienie rozszerzeń

  1. Deweloper z projektu rozszerzenia Widżet odliczania zatwierdza zmianę w repozytorium GitHub .
  2. Zatwierdzenie wyzwala kompilację ciągłej integracji.
  3. Nowa kompilacja wyzwala wyzwalacz ciągłego wdrażania, który automatycznie uruchamia wdrożenie środowiska Kanaries .
  4. Wdrożenie Kanaries publikuje rozszerzenie prywatne w witrynie Marketplace i udostępnia je wstępnie zdefiniowanym organizacjom. Zmiana ma wpływ tylko na kanarki .
  5. Wdrożenie kanarne wyzwala wdrożenie środowiska wczesnego wdrażania. Brama zatwierdzania przed wdrożeniem wymaga, aby każdy z autoryzowanych użytkowników zatwierdził wydanie. Zatwierdzenie przed wdrożeniem dla środowiska wczesnego wdrażania
  6. Wdrożenie wczesnego wdrażania publikuje prywatne rozszerzenie na platformie handlowej i udostępnia je wstępnie zdefiniowanym organizacjom. Zmiana dotyczy zarówno kanarków, jak i wczesnych użytkowników.
  7. Wdrożenie wczesnego wdrażania wyzwala wdrożenie środowiska Użytkownicy. Bardziej rygorystyczna brama zatwierdzania przed wdrożeniem wymaga, aby wszyscy autoryzowani użytkownicy zatwierdzali wydanie. Zatwierdzenie przed wdrożeniem dla środowiska użytkownika
  8. Wdrożenie Użytkownicy publikuje rozszerzenie publiczne w witrynie Marketplace. Na tym etapie zmiana ma wpływ na wszystkie osoby, które zainstalowały rozszerzenie w swojej organizacji.
  9. Kluczem jest uświadomienie sobie, że efekt wzrasta, gdy zmiana przechodzi przez pierścienie. Uwidacznianie zmian w kanariach i wczesnych użytkowników daje dwie możliwości weryfikacji zmian i poprawek krytycznych usterek przed wydaniem do środowiska produkcyjnego.

Monitorowanie problemów

Monitorowanie i alerty mogą pomóc w wykrywaniu i rozwiązywaniu problemów. Określ, jaki typ danych jest ważny, na przykład: problemy z infrastrukturą, naruszenia i użycie funkcji. Skoncentruj się na alertach z możliwością działania, aby uniknąć ignorowania ich i braku problemów z wysokim priorytetem.

Napiwek

Zacznij od widoków wysokiego poziomu danych, wizualnych pulpitów nawigacyjnych, które można obserwować z daleka i przechodzenia do szczegółów zgodnie z potrzebami. Regularnie sprzątaj widoki i usuwaj cały hałas. Pulpit nawigacyjny wizualizacji opowiada lepszą historię niż wiele wiadomości e-mail z powiadomieniami, często filtrowanych i zapomnianych według reguł poczty e-mail.

Użyj funkcji Team Project Health i innych rozszerzeń, aby utworzyć przegląd potoków, czasów prowadzenia i cyklu oraz zebrać inne informacje. Na przykładowym pulpicie nawigacyjnym widać, że istnieje 34 pomyślnych kompilacji, 21 pomyślnych wydań, 1 wydanie zakończone niepowodzeniem i 2 wersje w toku.

Pulpit nawigacyjny wysokiego poziomu w usłudze Azure DevOps

Czy istnieje zależność od flag funkcji?

L.p. Czasami może być konieczne wdrożenie pewnych funkcji w ramach wydania, ale nie jest początkowo widoczne dla użytkowników. Flagi funkcji zapewniają szczegółową kontrolę nad funkcjami uwzględnionym w zmianie. Jeśli na przykład nie masz pewności co do funkcji, możesz użyć flag funkcji, aby ukryć tę funkcję w jednym lub wszystkich pierścieniach wdrażania. Możesz włączyć wszystkie funkcje w pierścieniu kanarków i dostosować podzestaw dla wczesnych użytkowników i użytkowników produkcyjnych, jak pokazano na poniższej ilustracji.

Flagi funkcji

Aby uzyskać więcej informacji, zobacz Progresywne eksperymentowanie z flagami funkcji.

Często zadawane pytania

Pyt.: Jak sprawdzić, czy można wdrożyć zmianę w następnym pierścieniu?

1: Należy mieć spójną listę kontrolną dla użytkowników zatwierdzających wydanie.

Pyt.: Jak długo czekasz, zanim wypchniesz zmianę do następnego pierścienia?

Nie ma stałego czasu trwania ani okresu "ochładzania". Zależy to od tego, jak długo trwa pomyślne ukończenie wszystkich weryfikacji wersji.

Pyt.: Jak zarządzać poprawką?

1: Model wdrażania pierścieniowego umożliwia przetwarzanie poprawki tak jak każda inna zmiana. Szybciej napotkasz problem, tym szybciej można wdrożyć poprawkę bez efektu w pierścieniach podrzędnych.

Pyt.: Jak radzić sobie ze zmiennymi obejmującymi udostępnione środowiska wydania?

1: Zapoznaj się ze zmiennymi wydania domyślnego i niestandardowego.

Pyt.: Jak można zarządzać wpisami tajnymi używanymi przez potok?

1: Aby chronić klucze kryptograficzne i inne wpisy tajne używane przez potoki, zobacz Azure Key Vault.