Co to jest Azure Artifacts?

Ukończone

W tej lekcji zapoznasz się z krótkim omówieniem sposobu używania usługi Azure Artifacts do bezpiecznego tworzenia pakietów, które mogą być używane przez aplikacje i zarządzania nimi.

Wróćmy do zespołu, gdy zdecydują, czy usługa Azure Artifacts jest odpowiednim sposobem hostowania pakietu .NET.

Mara: Wydaje mi się, że warto hostować nowy pakiet Models w usłudze Azure Artifacts. Wszyscy jesteśmy już częścią organizacji usługi Microsoft Azure DevOps, więc uwierzytelnianie byłoby łatwiejsze niż próba skonfigurowania go w innym menedżerze pakietów.

Andy: Spojrzałem na to przed spotkaniem i wydaje mi się to proste. Zgadzam się z Marą.

Amita: Co to jest usługa Azure Artifacts?

Andy: Azure Artifacts to repozytorium w organizacji usługi Azure DevOps, w którym można zarządzać zależnościami bazy kodu. Usługa Azure Artifacts umożliwia przechowywanie artefaktów i plików binarnych. Zapewnia kontener nazywany źródłem danych dla grup zależności. Deweloperzy, którzy mają dostęp do kanału informacyjnego, mogą łatwo korzystać z pakietów lub publikować je.

Jak mogę utworzyć pakiet i korzystać z niego w potoku?

Tim: Więc jeśli rozumiem dobrze, kod aplikacji używa już pakietów z nuGet. Utworzymy własny pakiet i będziemy hostować go w usłudze Azure Artifacts. Czy możesz wyciągnąć kawałki i jak będą one współpracować? Mam problem z wyobrażeniem sobie całego procesu.

Andy: Na pewno. Zajmijmy się procesem tworzenia pakietu i korzystania z niego w naszym potoku Azure DevOps.

Andy przenosi się do tablicy.

Illustration of a whiteboard diagram showing the steps to create and use a package.

Tworzenie pakietu

Najpierw musimy utworzyć projekt w usłudze Azure Artifacts. Możemy to zrobić za pomocą usługi Azure DevOps.

Następnie utworzymy potok w usłudze Azure Pipelines, który łączy się z repozytorium GitHub dla kodu pakietu. Następnie potok kompiluje kod, pakuje go i wypycha pakiet do usługi Azure Artifacts.

Musimy zaktualizować aplikację, która używa tego pakietu, aby wskazywała utworzony przez nas kanał informacyjny usługi Azure Artifacts.

Następnie aktualizujemy potok, który tworzy naszą aplikację. Aktualizacja pozwala nam użyć naszego kanału informacyjnego usługi Azure Artifacts, aby ściągnąć nową zależność pakietu i skompilować je normalnie.

Zaktualizuj pakiet

Tim: Co zrobić, jeśli ktoś zaktualizuje pakiet?

Andy: Po zaktualizowaniu pakietu przy użyciu nowej funkcji lub poprawki błędów i uruchamiania testów, aby upewnić się, że działa prawidłowo, wprowadź numer wersji pakietu. Następnie zatwierdź zmianę. Potok pakietu widzi zatwierdzenie i tworzy nowy artefakt w usłudze Azure Artifacts z nowym numerem wersji. Nie martw się, stary pakiet o niższym numerze wersji jest nadal dostępny dla aplikacji, które zależą od tej wersji. Dlatego zazwyczaj nie należy do listy pakietów.

Nasza aplikacja może chcieć użyć nowszej wersji pakietu. W takim przypadku zaktualizujemy aplikację w celu odwołania się do nowszej wersji i uruchomimy testy lokalnie, aby upewnić się, że ta nowa wersja działa z naszą aplikacją. Gdy wszystko działa, przesyłamy zmianę aplikacji do potoku. Kompiluje się z nową wersją zależności pakietu.

Amita: Brzmi to jak dobry plan i pomoże też drugiemu zespołowi. Pozwoli to również zachować dryfowanie kodu, jak to ująłeś. Ułatwi to również kontrolę jakości.

Uwzględnij strategię przechowywania wersji w potoku kompilacji

W przypadku korzystania z potoku kompilacji pakiety wymagają wersji, zanim będą mogły być używane i testowane. Jednak dopiero po przetestowaniu pakietu możesz znać jego jakość. Ponieważ wersje pakietów nigdy nie powinny być zmieniane, wcześniejsze wybranie określonej wersji staje się trudne.

Usługa Azure Artifacts kojarzy poziom jakości z każdym pakietem w swoich kanałach informacyjnych i rozróżnia wersje wstępne i wydania. Usługa Azure Artifacts oferuje różne widoki na liście pakietów i ich wersji, które oddzielają je na podstawie ich poziomu jakości. Takie podejście dobrze sprawdza się w przypadku semantycznego przechowywania wersji, co jest przydatne do przewidywania intencji określonej wersji. Usługa Azure Artifacts używa również deskryptora do uwzględnienia dodatkowych metadanych ze źródła danych usługi Azure Artifacts. Typowym zastosowaniem widoków jest udostępnianie wersji pakietów, które zostały przetestowane, zweryfikowane lub wdrożone, ale wstrzymać pakiety nadal w ramach programowania i nie są gotowe do użytku publicznego.

Źródła danych w usłudze Azure Artifacts domyślnie mają trzy różne widoki. Te widoki są dodawane w momencie utworzenia nowego kanału informacyjnego. Trzy widoki to:

  • Wydanie: @release widok zawiera wszystkie pakiety, które są uznawane za oficjalne wersje.
  • Wersja wstępna@prerelease: widok zawiera wszystkie pakiety, które mają etykietę w numerze wersji.
  • Lokalny: @local widok zawiera wszystkie pakiety wersji i wersji wstępnej oraz pakiety pobrane ze źródeł nadrzędnych.

Za pomocą widoków można ułatwić konsumentom zestawienia pakietów filtrowanie między wydaniami i nieopublikowanymi wersjami pakietów. Zasadniczo poglądy umożliwiają konsumentowi podjęcie świadomej decyzji o wyborze spośród wydanych pakietów lub rezygnacji z wersji wstępnych określonego poziomu jakości.

Zabezpieczenia pakietów w usłudze Azure Artifacts

Zapewnienie bezpieczeństwa pakietów jest równie ważne, jak zapewnienie bezpieczeństwa pozostałej części kodu. Jednym z aspektów zabezpieczeń pakietów jest zabezpieczenie dostępu do źródeł danych pakietów (gdzie źródło danych w usłudze Azure Artifacts jest miejscem przechowywania pakietów). Ustawienie uprawnień do kanału informacyjnego umożliwia udostępnianie pakietów tylu lub tylu osobom, ile wymaga scenariusz.

Uprawnienia kanału informacyjnego

Kanały informacyjne mają cztery poziomy dostępu: Właściciele, Współautorzy, Współpracownicy i Czytelnicy. Każdy poziom dostępu ma określony zestaw uprawnień. Na przykład właściciele mogą dodawać dowolny typ tożsamości — osoby, zespoły i grupy — do dowolnego poziomu dostępu. Domyślnie usługa kompilacji kolekcji projektów jest współpracownikiem, a zespół projektu jest czytelnikiem.

Konfigurowanie potoku w celu uzyskania dostępu do klasyfikacji zabezpieczeń i licencji

Istnieje kilka narzędzi dostępnych od innych firm, które ułatwiają ocenę zabezpieczeń i licencji używanych pakietów oprogramowania.

Niektóre z tych narzędzi skanują pakiety w miarę ich dołączania do potoku kompilacji lub ciągłego wdrażania. Podczas procesu kompilacji narzędzie skanuje pakiety i przekazuje błyskawiczne opinie. Podczas procesu ciągłego wdrażania narzędzie używa artefaktów kompilacji i wykonuje skanowania. Dwa przykłady takich narzędzi to Mend Bolt i Black Duck. Usługa Azure DevOps umożliwia dołączanie skanowania do potoku przy użyciu zadań kompilacji.