Ślad: • azure_artifacts

Azure Artifacts

Writing /home/grochu/public_html/wiki/data/meta/zajecia/npr/lab/azure_artifacts.meta failed
Unable to save metadata file. Hint: disk full; file permissions; safe_mode setting.
Creating directory /home/grochu/public_html/wiki/data/attic/zajecia/npr/lab failed
Writing /home/grochu/public_html/wiki/data/attic/zajecia/npr/lab/azure_artifacts.1794567297.txt.gz failed
Action unknown: siteexport_addpage
Writing /home/grochu/public_html/wiki/data/meta/zajecia/npr/sidebar.meta failed

View page as slide show

Azure Artifacts

Tworzenie, przechowywanie i udostępnianie pakietów

Czym jest Azure Artifacts?

  • zarządzanie pakietami i zależnościami projektów
  • pozwala publikować, przechowywać i pobierać pakiety w jednym miejscu
  • umożliwia współdzielenie kodu i innych plików między zespołami
  • obsługuje różne formaty pakietów i standardowe narzędzia programistyczne
  • integruje się z potokami Azure Pipelines
  • każda organizacja otrzymuje 2 GiB bezpłatnej przestrzeni Azure Artifacts, większe wykorzystanie może wymagać konfiguracji rozliczeń

Pakiety i zależności

  • pakiet - wersjonowana jednostka udostępniania, np. biblioteka używana przez aplikację
  • zależność - pakiet potrzebny do zbudowania lub uruchomienia projektu
  • menedżer pakietów pobiera wymagane wersje i pomaga zarządzać zależnościami
  • wspólne repozytorium pakietów ułatwia ponowne używanie bibliotek w wielu projektach
  • wersjonowanie pomaga rozróżniać wydania i odtwarzać środowisko projektu

Obsługiwane formaty

  • NuGet - biblioteki dla .NET
  • npm - pakiety JavaScript i Node.js
  • Maven - biblioteki dla projektów Java
  • Python - pakiety dla projektów Python
  • Cargo - pakiety dla projektów Rust
  • Universal Packages - wersjonowane zestawy dowolnych plików

Dostępność formatów może zależeć od wersji Azure DevOps

Kanał pakietów - feed

  • feed - repozytorium służące do przechowywania i udostępniania pakietów
  • jeden feed może zawierać pakiety różnych obsługiwanych formatów
  • feed może mieć zakres projektu lub organizacji
  • ustawienia określają dostęp użytkowników, widoków i potoków
  • można do niego publikować własne pakiety oraz skonfigurować źródła zewnętrzne

Typowy przebieg pracy

  1. utworzenie feedu i nadanie odpowiednich uprawnień
  2. przygotowanie oraz opublikowanie wersji pakietu
  3. skonfigurowanie projektu lub potoku do korzystania z feedu
  4. pobranie pakietu jako zależności aplikacji
  5. budowanie i testowanie aplikacji korzystającej z pakietu
  6. publikacja kolejnych wersji i zarządzanie ich dostępnością

Przykład: wspólna biblioteka

  • zespół tworzy bibliotekę .NET używaną przez kilka aplikacji
  • biblioteka jest publikowana jako pakiet NuGet do feedu organizacji
  • projekty otrzymujące dostęp konfigurują feed jako źródło pakietów
  • każda aplikacja wskazuje potrzebną wersję biblioteki
  • po zmianach zespół publikuje nową wersję, którą aplikacje mogą przyjąć i przetestować

Źródła zewnętrzne - upstream sources

  • feed może udostępniać pakiety z publicznych rejestrów, np. nuget.org, npmjs.com lub Maven Central
  • umożliwia korzystanie z pakietów własnych i zewnętrznych przez jeden feed
  • po zainstalowaniu pakietu ze źródła zewnętrznego jego kopia jest zapisywana w feedzie
  • zapis wymaga roli Feed and Upstream Reader (Collaborator) lub wyższej
  • zachowana kopia pomaga korzystać z pakietu, gdy źródło jest tymczasowo niedostępne

Wersje i widoki feedu

  • wersje pakietu pozwalają odbiorcom wybierać odpowiednie wydanie
  • opublikowanej wersji nie można nadpisać inną zawartością; zmiana wymaga nowej wersji
  • widoki (views) udostępniają wybrane pakiety z feedu
  • domyślne widoki to @Local, @Prerelease i @Release
  • wersję pakietu można promować do widoku, np. po jej przetestowaniu
  • promowania nie można cofnąć przez przeniesienie pakietu z powrotem do poprzedniego widoku

Universal Packages

  • przechowują wersjonowane zestawy plików, także inne niż typowe biblioteki
  • mogą zawierać np. narzędzia, pliki binarne lub zasoby potrzebne projektowi
  • pozwalają udostępniać pliki bez umieszczania ich bezpośrednio w repozytorium Git
  • pakiety można publikować i pobierać w ramach procesu wytwórczego

Integracja z Azure Pipelines

  • potok może pobierać zależności z feedu podczas budowania aplikacji
  • może także przygotować i opublikować nową wersję pakietu
  • pakiety są dostępne w procesach budowania i wydawania
  • tożsamość potoku musi mieć odpowiednie uprawnienia do feedu
  • publikacja wymaga uprawnień wydawcy, a nie tylko odczytu

Uprawnienia i dostęp

  • Feed Reader - przeglądanie i pobieranie pakietów
  • Feed and Upstream Reader (Collaborator) - dodatkowo zapisywanie pakietów ze źródeł zewnętrznych
  • Feed Publisher (Contributor) - dodatkowo publikowanie i promowanie pakietów
  • Feed Owner - zarządzanie feedem, jego ustawieniami i usuwaniem pakietów
  • dostęp należy nadawać zgodnie z potrzebami użytkowników i potoków
  • uprawnienia widoków także wymagają kontroli: dostęp do widoku może umożliwić pobieranie pakietów bez bezpośredniego dostępu do feedu

Dobre praktyki

  • publikuj nowe wersje zamiast próbować zastępować istniejące
  • ograniczaj uprawnienia do publikacji i usuwania pakietów
  • kontroluj źródła zależności oraz kolejność skonfigurowanych źródeł zewnętrznych
  • testuj pakiety przed udostępnieniem ich szerszej grupie odbiorców
  • monitoruj wykorzystanie miejsca i przeglądaj niepotrzebne wersje

Podsumowanie

  • Azure Artifacts pomaga przechowywać i współdzielić wersjonowane pakiety
  • feed może łączyć własne pakiety z zależnościami ze źródeł zewnętrznych
  • widoki i uprawnienia pomagają kontrolować udostępnianie pakietów
  • integracja z Azure Pipelines wspiera pobieranie i publikację pakietów w CI/CD

Źródło i dalsze informacje