Co to jest usługa Azure Pipelines?

Ukończone

Microsoft Azure Pipelines to usługa w chmurze, której można użyć do automatycznego kompilowania, testowania i wdrażania projektu kodu. Możesz również udostępnić go innym użytkownikom i działa z niemal dowolnym językiem lub typem projektu.

Mara jest podekscytowana replikacją procesu kompilacji zespołu w usłudze Azure Pipelines. Amita, tester, w końcu ma trochę wolnego czasu i chce nadrobić zaległości. Mara decyduje, że teraz jest to świetny czas, aby powiedzieć jej o swoim planie: skonfigurowanie zautomatyzowanego potoku kompilacji dla witryny internetowej Space Game przy użyciu usługi Azure Pipelines.

Kiedy słyszy plan Mary, Amita jest trochę niezdecydowana. Ale ponieważ plan Mary polega na replikacji procesu kompilacji, ale nie zastąpić go, jest również ciekawa. Wie, że proces kompilacji może korzystać z pewnych ulepszeń.

Amita: Brzmi to jak ciekawe ćwiczenie, ale musisz udowodnić punkt DevOps!

Mara: Wiesz już mnie tak dobrze!

Amita: Jakich ulepszeń oczekujesz, zwłaszcza dlatego, że zrobisz to, co już zrobimy?

Mara: Myślę, że przejście do usługi Azure Pipelines przyniesie wiele korzyści. Pamiętaj, że usługa Azure Pipelines to usługa w chmurze. Możemy jej użyć do automatycznego kompilowania i testowania kodu. I będzie również dostępny dla innych. Działa prawie z każdym językiem programowania lub typem projektu.

Nasz serwer kompilacji ma problemy, a nawet aktualizowanie go jest trudne. Ponieważ usługa Azure Pipelines udostępnia serwery kompilacji hostujące i konserwujące przez firmę Microsoft, zawsze ma najnowsze poprawki i aktualizacje zabezpieczeń. Nie będziemy musieli martwić się o konserwowanie serwerów kompilacji.

Ponadto mamy wszelkiego rodzaju skrypty napisane przez różnych ludzi. Nie rozumiemy nawet, jak działają niektóre z nich. Usługa Azure Pipelines zawiera wykaz zadań. Zadanie to spakowany skrypt lub procedura, która została abstrakcyjna z zestawem danych wejściowych. Spróbuję zamapować działania skryptów kompilacji na te zadania. Przynajmniej możemy znormalizować sposób działania i zwiększyć poziom automatyzacji.

Usługa Azure Pipelines współpracuje z wieloma różnymi językami i typami aplikacji. Jeśli chcemy rozwinąć się w tych kierunkach, nie będziemy musieli ponownie stołować.

Amita: Wiem, że to samolubne, ale dlaczego mnie obchodzi? Jednym z moich wielkich problemów jest to, że nigdy nie wiem, kiedy kompilacja jest gotowa do testowania. Czasami ktoś pamięta o zaktualizowaniu arkusza kalkulacyjnego, ale wiele razy zapomina. Wygląda na to, że jestem ostatnią osobą do poznania.

Mara: Prawda, to jest coś, co możemy łatwo naprawić. Potok można skonfigurować w celu automatycznego powiadamiania Użytkownika za pośrednictwem poczty e-mail lub innego powiadomienia, gdy kompilacja jest gotowa. Nigdy nie będziesz musiał czekać na kogoś, aby przypomnieć ci ponownie.

Amita: Dobrze, więc twoim celem jest teraz skompilowanie aplikacji i powiadom mnie, kiedy będzie gotowa?

Mara: Prawda! Oczywiście, mam większe plany. Wiem, że wszyscy będziemy kochać ten pierwszy krok, więc chcę opierać się na nim, aby dać nam prawdziwą ciągłą integrację.

Amita: Daj mi 5-minutowy przebieg ciągłej integracji.

Mara: Pozwólcie, że narysujesz zdjęcie.

Mara przenosi się do tablicy i rysuje potok.

Screenshot of a hand-drawn illustration of a CI pipeline. The Build, Test, and Verify stages act on code. The build artifact is the output.

Mara: To jest mój potok ciągłej integracji. Ciągła integracja to proces automatyzacji tworzenia i testowania kodu za każdym razem, gdy członek zespołu zatwierdza zmiany w kontroli wersji. Wiem, że jeszcze nie przeprowadzamy testów automatycznych, ale dajmy mu czas.

Potok definiuje proces ciągłej integracji dla aplikacji. Składa się z kroków nazywanych zadaniami . Można go traktować jako skrypt definiujący sposób uruchamiania kroków kompilacji, testowania i wdrażania. Spróbuję zamapować nasze skrypty na zadania.

Potok jest uruchamiany po przesłaniu zmian kodu. Potok można skonfigurować do automatycznego uruchamiania lub uruchomić go ręcznie. Potok łączy się z repozytorium źródłowym, takimi jak GitHub, Bitbucket lub Subversion. Jednym z naszych zadań dla tego przebiegu jest rozpoczęcie korzystania z usługi GitHub. W związku z tym użyjemy usługi GitHub dla tego projektu.

Agent kompilacji kompiluje lub wdraża kod. Po uruchomieniu kompilacji lub wdrożenia system rozpoczyna co najmniej jedno zadania. Agent to instalowane oprogramowanie, które uruchamia jedno zadanie kompilacji lub wdrożenia naraz. Ponieważ używamy usługi Azure Pipelines, możemy użyć agenta hostowanego przez firmę Microsoft. W przypadku agentów hostowanych przez firmę Microsoft konserwacja i uaktualnienia są dla nas obsługiwane. Za każdym razem, gdy uruchamiamy potok, uzyskamy nową maszynę wirtualną. Istnieje kilka obrazów maszyn wirtualnych do wyboru, w tym Ubuntu 22.04, które są używane.

Ostatnim produktem potoku jest artefakt kompilacji . Artefakt należy traktować jako najmniejszą skompilowana jednostkę, którą musimy przetestować lub wdrożyć aplikację. Na przykład artefakt może być:

  • Aplikacja Java lub .NET spakowana do pliku jar lub zip .
  • Biblioteka języka C++ lub JavaScript.
  • Maszyna wirtualna, chmura lub obraz platformy Docker.

To wszystko. Wiem, że możemy to zrobić.

Amita: Brzmi świetnie. Zobaczmy, co musisz zrobić, aby go pracować i jak długo to trwa. Możesz dać nam wszystkie pokazy.

Mara: Zrobi!

Zarządzanie agentami kompilacji

Teraz, gdy ty i zespół zapoznamy się z usługą Azure Pipelines, porozmawiajmy nieco więcej o agentach kompilacji. Agent kompilacji to oprogramowanie instalowane, które uruchamia jedno zadanie kompilacji lub wdrożenia naraz. Aby skompilować kod lub wdrożyć oprogramowanie, potrzebujesz co najmniej jednego agenta. W miarę dodawania większej liczby kodu i osób będziesz potrzebować więcej niż jednego agenta. Istnieją dwie główne kategorie agentów.

  • Agenci hostowani przez firmę Microsoft są agentami zarządzanymi przez firmę Microsoft, a konserwacje i uaktualnienia są dla Ciebie obsługiwane. Za każdym razem, gdy uruchamiasz potok, otrzymujesz nowego agenta dla każdego zadania w potoku. W tym module po wybraniu lokalnego środowiska programistycznego przy użyciu agenta hostowanego przez firmę Microsoft uruchamiasz potok w agencie hostowanym przez firmę Microsoft. Aby uruchamiać potoki na agencie hostowanym przez firmę Microsoft, organizacja musi mieć co najmniej jedno zadanie równoległe hostowane przez firmę Microsoft. Sprawdź liczbę zadań równoległych hostowanych przez firmę Microsoft, aby upewnić się, że masz co najmniej jedno zadanie równoległe hostowane przez firmę Microsoft. Jeśli liczba zadań równoległych hostowanych przez firmę Microsoft wynosi zero (nowe organizacje usługi Azure DevOps zwykle mają zero zadań równoległych), możesz zażądać bezpłatnego przyznania. Proces zatwierdzania bezpłatnej dotacji zwykle trwa od 2 do 3 dni roboczych.

  • Agenci self-hosted to agenci , którzy są przez Ciebie zarządzani. Maszyny wirtualne lub kontenery można skonfigurować, instalując oprogramowanie agenta i żądane narzędzia oraz rejestrując agentów w usłudze Azure DevOps. W tym module po wybraniu środowiska programistycznego GitHub Codespaces przy użyciu własnego agenta używasz własnego agenta uruchomionego w kontenerze usługi GitHub Codespaces. Samodzielne hostowanie agenta w kontenerze Usługi GitHub Codespaces nie jest typowym scenariuszem produkcyjnym, ale zapewnia środowisko do ukończenia tego modułu szkoleniowego.

Sprawdź swoją wiedzę

1.

Który z nich jest przykładem artefaktu kompilacji?