Udostępnij za pośrednictwem


Integrowanie potoków ciągłej integracji/ciągłego wdrażania w usłudze DevTest Labs i DevOps

DevOps to metodologia tworzenia oprogramowania, która integruje programowanie oprogramowania (Dev) z operacjami systemowymi (Ops). System dostarcza nowe funkcje oprogramowania, aktualizacje i poprawki zgodne z celami biznesowymi.

Metodologia metodyki DevOps obejmuje również:

  • Projektowanie nowych funkcji na podstawie celów, wzorców użycia i opinii klientów.
  • Naprawianie, odzyskiwanie i wzmacnianie systemu w przypadku wystąpienia problemów.

Jednym ze składników metodologii DevOps jest potok ciągłej integracji i ciągłego dostarczania (CD). Potok ciągłej integracji/ciągłego wdrażania przenosi informacje, kod i zasoby z zatwierdzenia kontroli źródła za pomocą serii kroków w celu utworzenia systemu. Kroki obejmują kompilację, testowanie i wydanie.

Można użyć Azure DevTest Labs w potokach ciągłej integracji/ciągłego wdrażania. W tym artykule omówiono używanie usługi DevTest Labs w potokach kompilacji i wydania ciągłej integracji/ciągłego wdrażania w środowisku przedsiębiorstwa.

Zalety usługi DevTest Labs w przepływach pracy devops

Laboratorium powinno skupić się na zespole pracującym w obszarze funkcji. Ten wspólny fokus umożliwia szybsze zmiany, ograniczając wszelkie negatywne skutki do mniejszej grupy. Zmiany lub problemy występują w środowisku laboratoryjnym bez wpływu na inne elementy.

Wspólne skupienie się na udostępnianiu zasobów specyficznych dla obszaru, takich jak narzędzia, skrypty i szablony usługi Azure Resource Manager (ARM). Deweloperzy mogą używać udostępnionych zasobów do tworzenia maszyn wirtualnych ze wszystkimi potrzebnymi kodami, narzędziami i konfiguracją. Szablony usługi ARM tworzą maszyny wirtualne laboratorium i środowiska laboratoryjne z odpowiednimi zasobami platformy Azure. Szablony tworzą zasoby dynamicznie lub tworząc obrazy podstawowe z dostosowaniami.

Rozważmy na przykład scenariusz, w którym produkt jest autonomicznym systemem instalowanym na maszynie klienta. Usługa DevTest Labs może tworzyć maszyny wirtualne laboratorium, które mają zainstalowane oprogramowanie klienta, artefakty i konfiguracje, na potrzeby szybkiego testowania kodu pętli wewnętrznej.

Poniżej przedstawiono niektóre korzyści wynikające z używania laboratoriów w przepływach pracy metodyki DevOps:

  • Ukierunkowany dostęp: Korzystanie z laboratorium jako składnika kojarzy określony ekosystem z ograniczonymi osobami. Zazwyczaj do zespołu lub grupy działającej w obszarze wspólnym lub określonej funkcji przypisano do nich laboratorium.

  • Replikacja infrastruktury w chmurze: Deweloper może szybko skonfigurować ekosystem deweloperów, który zawiera maszynę wirtualną dewelopera z kodem źródłowym i narzędziami. Deweloper może również utworzyć środowisko, które jest niemal identyczne z konfiguracją produkcyjną, w celu szybszego opracowywania pętli wewnętrznej.

  • Środowiska przedprodukcyjne: Laboratorium w potoku ciągłej integracji/ciągłego wdrażania może jednocześnie uruchamiać kilka różnych środowisk przedprodukcyjnych lub maszyn na potrzeby testowania asynchronicznego. W laboratorium można wdrażać różne infrastruktury pomocy technicznej i tworzyć agentów oraz zarządzać nimi.

Korzystanie z laboratoriów w potokach ciągłej integracji/ciągłego wdrażania

Potok ciągłej integracji/ciągłego wdrażania jest krytycznym składnikiem DevOps. Potok integruje kod z żądania ściągnięcia dewelopera z istniejącym kodem i wdraża kod w ekosystemie produkcyjnym. W przypadku integracji z usługą DevTest Labs nie wszystkie zasoby muszą znajdować się w laboratorium. Można na przykład skonfigurować hosta serwera Jenkins poza laboratorium, aby uzyskać bardziej trwały zasób. Oto kilka konkretnych przykładów integracji laboratoriów z potokiem ciągłej integracji/ciągłego wdrażania.

Kompilacja

Potok kompilacji tworzy pakiet składników do testowania i przekazywania do wydania. Dynamicznie kompilowanie infrastruktury umożliwia większą kontrolę. Laboratoria mogą być częścią potoku kompilacji jako lokalizacje dla agentów kompilacji i innych zasobów pomocy technicznej. Usługa DevTest Labs może ograniczyć dostęp do laboratorium, co zwiększa bezpieczeństwo agentów kompilacji i zmniejsza możliwość przypadkowego uszkodzenia.

Mając możliwość posiadania wielu środowisk w laboratorium, każda kompilacja może być uruchamiana asynchronicznie. Identyfikator kompilacji jest częścią informacji o środowisku, które jednoznacznie identyfikują zasoby w określonej kompilacji.

Testowanie

Potok ciągłej integracji/ciągłego wdrażania może zautomatyzować tworzenie zasobów usługi DevTest Labs, takich jak maszyny wirtualne i środowiska na potrzeby zautomatyzowanego i ręcznego testowania. Potok używa artefaktów informacji o kompilacji lub formuł do tworzenia maszyn wirtualnych z różnymi niestandardowymi konfiguracjami testów.

Release

Proces wydania może użyć usługi DevTest Labs do weryfikacji przed wdrożeniem kodu. Proces jest podobny do testowania. Zasoby produkcyjne nie powinny być wdrażane w usłudze DevTest Labs.

Dostosowywanie

Usługa Azure Pipelines, składnik Azure DevOps Services, ma istniejące zadania do manipulowania maszynami wirtualnymi i środowiskami w określonych laboratoriach. Usługa Azure Pipelines to jeden ze sposobów zarządzania potokiem ciągłej integracji/ciągłego wdrażania. Laboratorium można zintegrować z dowolnym systemem obsługującym wywoływanie interfejsów API REST, wykonywanie skryptów programu PowerShell lub przy użyciu interfejsu wiersza polecenia platformy Azure.

Niektórzy menedżerowie potoków ciągłej integracji/ciągłego wdrażania mają istniejące wtyczki typu open source, które mogą zarządzać zasobami platformy Azure i usługi DevTest Labs. Może być konieczne użycie niestandardowego skryptu w celu dopasowania do potrzeb potoku. Podczas wykonywania zadania użyj jednostki usługi z odpowiednią rolą, zwykle Współautor, aby uzyskać dostęp do laboratorium.

Następne kroki