Nowy widżet postępu przebiegu i ulepszone zabezpieczenia potoków — aktualizacja przebiegu 160
W aktualizacji Przebiegu 160 usługi Azure DevOps dodaliśmy nowy widżet postępu przebiegu, który obsługuje spalanie według punktów scenariuszy, liczby zadań i sumowania pól niestandardowych. Dodatkowo ulepszono zabezpieczenia potoków dzięki ograniczeniu zakresu tokenów dostępu.
Aby uzyskać więcej informacji, zapoznaj się z poniższą listą funkcji .
Co nowego w usłudze Azure DevOps
Funkcje
Azure Repos:
Azure Pipelines:
- Interfejs użytkownika potoków wieloetapowych
- Orkiestracja strategii wdrażania kanarkowego w środowisku na potrzeby platformy Kubernetes
- Zasady zatwierdzania dla potoków YAML
- Usługa ACR jako zasób potoku pierwszej klasy
- Metadane zasobu potoku jako wstępnie zdefiniowane zmienne
- Możliwość śledzenia potoków i zasobów usługi ACR
- Uproszczona autoryzacja zasobów w potokach YAML
- Ulepszenie zabezpieczeń potoków dzięki ograniczeniu zakresu tokenów dostępu
- Ocena sprawdzania artefaktów
- Obsługa języka Markdown w komunikatach o błędach testów automatycznych
- Diagnozowanie harmonogramów programu cron w języku YAML
- Aktualizacje zadania wdrażania szablonu usługi ARM
- Zabezpieczenia na poziomie projektu dla połączeń usługi
- Pula systemu Ubuntu 18.04
- Wdrożenia kanarkowe na podstawie interfejsu siatki usług w ramach zadania KubernetesManifest
- Aplikacja ReviewApp w środowisku
Azure Artifacts:
- Zaktualizowane połączenie ze środowiskiem źródeł danych
- Publiczne źródła danych z obsługą strumienia wychodzącego są teraz publicznie dostępne
- Tworzenie źródeł danych w zakresie projektu z poziomu portalu
Raportowanie:
Wiki:
Azure Repos
Administracja zasadami gałęzi między repozytoriami
Zasady gałęzi to jedna z zaawansowanych funkcji usługi Azure Repos, które ułatwiają ochronę ważnych gałęzi. Chociaż możliwość ustawiania zasad na poziomie projektu istnieje w interfejsie API REST, nie było dla niego interfejsu użytkownika. Teraz administratorzy mogą ustawić zasady w określonej gałęzi lub domyślnej gałęzi we wszystkich repozytoriach w projekcie. Na przykład administrator może wymagać dwóch minimalnych recenzentów dla wszystkich żądań ściągnięcia wysyłanych do każdej gałęzi głównej w każdym repozytorium w projekcie. Funkcję Dodaj ochronę gałęzi można znaleźć w obszarze Ustawienia projektu repozytoriów.
Azure Pipelines
Interfejs użytkownika potoków wieloetapowych
Pracujemy nad zaktualizowanym środowiskiem użytkownika w celu zarządzania potokami. Te aktualizacje sprawiają, że potoki są nowoczesne i spójne z kierunkiem usługi Azure DevOps. Ponadto te aktualizacje łączą klasyczne potoki kompilacji i wieloetapowe potoki YAML w jedno środowisko. Na przykład następujące możliwości są uwzględniane w nowym środowisku; wyświetlanie wielu etapów i zarządzanie nimi, zatwierdzanie przebiegów potoku, możliwość przewijania w dziennikach, gdy potok jest nadal w toku, oraz kondycja poszczególnych gałęzi potoku.
Dziękuję wszystkim, którzy próbowali nowego doświadczenia. Jeśli nie próbowano tego zrobić, włącz potoki wieloetapowe w funkcjach w wersji zapoznawczej. Aby dowiedzieć się więcej na temat potoków wieloetapowych, zobacz dokumentację tutaj .
Dziękujemy za twoją opinię, omówiliśmy następujące kwestie w dwóch ostatnich aktualizacjach.
- Możliwość odnajdywania widoku folderów.
- Skok w widoku dzienników.
- Łatwo wyświetlaj dzienniki z poprzednich i bieżących zadań nawet wtedy, gdy przebieg jest w toku.
- Ułatwia przechodzenie między zadaniami podczas przeglądania dzienników.
Uwaga
W następnej aktualizacji planujemy domyślnie włączyć tę funkcję dla wszystkich użytkowników. Nadal będziesz mieć możliwość rezygnacji z wersji zapoznawczej. Kilka tygodni później funkcja zostanie ogólnie udostępniona.
Orkiestracja strategii wdrażania kanarkowego w środowisku na potrzeby platformy Kubernetes
Jedną z kluczowych zalet ciągłego dostarczania aktualizacji aplikacji jest możliwość szybkiego wypychania aktualizacji do środowiska produkcyjnego dla określonych mikrousług. Dzięki temu można szybko reagować na zmiany wymagań biznesowych. Środowisko zostało wprowadzone jako pierwszoklasowa koncepcja umożliwiająca orkiestrację strategii wdrażania i ułatwianie wydania bez przestojów. Wcześniej obsługiwaliśmy strategię runOnce , która wykonała kroki po sekwencyjnie. Dzięki obsłudze strategii kanarowej w potokach wieloetapowych można teraz zmniejszyć ryzyko, powoli wdrażając zmianę w małym podzestawie. Gdy zyskujesz większą pewność co do nowej wersji, możesz zacząć wdrażać ją na większej infrastruktury serwerów i kierować do niej więcej użytkowników.
jobs:
- deployment:
environment: musicCarnivalProd
pool:
name: musicCarnivalProdPool
strategy:
canary:
increments: [10,20]
preDeploy:
steps:
- script: initialize, cleanup....
deploy:
steps:
- script: echo deploy updates...
- task: KubernetesManifest@0
inputs:
action: $(strategy.action)
namespace: 'default'
strategy: $(strategy.name)
percentage: $(strategy.increment)
manifests: 'manifest.yml'
postRouteTraffic:
pool: server
steps:
- script: echo monitor application health...
on:
failure:
steps:
- script: echo clean-up, rollback...
success:
steps:
- script: echo checks passed, notify...
Strategia kanargu dla platformy Kubernetes najpierw wdroży zmiany z 10% zasobnikami, a następnie 20% podczas monitorowania kondycji podczas pracy po usłudze PostRouteTraffic. Jeśli wszystko pójdzie dobrze, będzie promować się do 100%.
Zasady zatwierdzania dla potoków YAML
W potokach YAML stosujemy konfigurację zatwierdzania kontrolowanego przez właściciela zasobu. Właściciele zasobów konfigurują zatwierdzenia zasobu i wszystkich potoków, które używają wstrzymania zasobu do zatwierdzania przed rozpoczęciem etapu zużywania zasobu. Właściciele aplikacji opartych na protokole SOX często ograniczają osoby żądające wdrożenia od zatwierdzania własnych wdrożeń.
Teraz możesz użyć zaawansowanych opcji zatwierdzania, aby skonfigurować zasady zatwierdzania, takie jak osoba żądająca nie powinna zatwierdzać, wymagać zatwierdzenia z podzestawu użytkowników i limitu czasu zatwierdzania.
Usługa ACR jako zasób potoku pierwszej klasy
Jeśli musisz użyć obrazu kontenera opublikowanego w usłudze ACR (Azure Container Registry) w ramach potoku i wyzwolić potok za każdym razem, gdy nowy obraz został opublikowany, możesz użyć zasobu kontenera usługi ACR.
resources:
containers:
- container: MyACR #container resource alias
type: ACR
azureSubscription: RMPM #ARM service connection
resourceGroup: contosoRG
registry: contosodemo
repository: alphaworkz
trigger:
tags:
include:
- production
Ponadto dostęp do metadanych obrazów usługi ACR można uzyskać przy użyciu wstępnie zdefiniowanych zmiennych. Poniższa lista zawiera zmienne usługi ACR dostępne do zdefiniowania zasobu kontenera usługi ACR w potoku.
resources.container.<Alias>.type
resources.container.<Alias>.registry
resources.container.<Alias>.repository
resources.container.<Alias>.tag
resources.container.<Alias>.digest
resources.container.<Alias>.URI
resources.container.<Alias>.location
Metadane zasobu potoku jako wstępnie zdefiniowane zmienne
Dodaliśmy wstępnie zdefiniowane zmienne dla zasobów potoków YAML w potoku. Oto lista dostępnych zmiennych zasobów potoku.
resources.pipeline.<Alias>.projectName
resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID
Możliwość śledzenia potoków i zasobów usługi ACR
Zapewniamy pełną możliwość śledzenia E2E, gdy potoki i zasoby kontenera usługi ACR są używane w potoku. Dla każdego zasobu używanego przez potok YAML można śledzić zatwierdzenia, elementy robocze i artefakty.
W widoku podsumowania przebiegu potoku można zobaczyć:
Wersja zasobu, która wyzwoliła przebieg. Teraz potok można wyzwolić po zakończeniu innego uruchomienia potoku platformy Azure lub wypchnięciu obrazu kontenera do usługi ACR.
Zatwierdzenia, które są używane przez potok. Możesz również znaleźć podział zatwierdzeń przez każdy zasób używany przez potok.
Elementy robocze skojarzone z poszczególnymi zasobami używanymi przez potok.
Artefakty, które są dostępne do użycia przez przebieg.
W widoku wdrożeń środowiska można zobaczyć zatwierdzenia i elementy robocze dla każdego zasobu wdrożonego w środowisku.
Uproszczona autoryzacja zasobów w potokach YAML
Zasób jest używany przez potok, który znajduje się poza potokiem. Zasoby muszą być autoryzowane, zanim będą mogły być używane. Wcześniej w przypadku korzystania z nieautoryzowanych zasobów w potoku YAML wystąpił błąd autoryzacji zasobu. Musisz autoryzować zasoby ze strony podsumowania przebiegu, który zakończył się niepowodzeniem. Ponadto potok nie powiódł się, jeśli używa zmiennej, która odwoływała się do nieautoryzowanego zasobu.
Teraz ułatwiamy zarządzanie autoryzacjami zasobów. Zamiast kończyć się niepowodzeniem przebiegu, przebieg będzie czekać na uprawnienia do zasobów na początku etapu zużywającego zasób. Właściciel zasobu może wyświetlić potok i autoryzować zasób na stronie Zabezpieczenia.
Ulepszenie zabezpieczeń potoków dzięki ograniczeniu zakresu tokenów dostępu
Każde zadanie uruchamiane w usłudze Azure Pipelines otrzymuje token dostępu. Token dostępu jest używany przez zadania i skrypty do wywołania z powrotem do usługi Azure DevOps. Na przykład użyjemy tokenu dostępu, aby uzyskać kod źródłowy, przekazać dzienniki, wyniki testów, artefakty lub wykonać wywołania REST do usługi Azure DevOps. Nowy token dostępu jest generowany dla każdego zadania i wygasa po zakończeniu zadania. Dzięki tej aktualizacji dodaliśmy następujące ulepszenia.
Uniemożliwianie tokenowi uzyskiwania dostępu do zasobów spoza projektu zespołowego
Do tej pory domyślnym zakresem wszystkich potoków była kolekcja projektów zespołowych. Zakres może być projektem zespołowym w klasycznych potokach kompilacji. Nie masz jednak tej kontroli dla klasycznych potoków wydania ani YAML. Dzięki tej aktualizacji wprowadzamy ustawienie organizacji, aby wymusić na każdym zadaniu uzyskanie tokenu o zakresie projektu niezależnie od tego, co zostało skonfigurowane w potoku. Dodaliśmy również ustawienie na poziomie projektu. Teraz każdy nowy projekt i utworzona organizacja automatycznie będą miały włączone to ustawienie.
Uwaga
Ustawienie organizacji zastępuje ustawienie projektu.
Włączenie tego ustawienia w istniejących projektach i organizacjach może spowodować niepowodzenie niektórych potoków, jeśli potoki uzyskują dostęp do zasobów spoza projektu zespołowego przy użyciu tokenów dostępu. Aby wyeliminować błędy potoku, możesz jawnie udzielić dostępu konta usługi Project Build Do żądanego zasobu. Zdecydowanie zalecamy włączenie tych ustawień zabezpieczeń.
Usuwanie niektórych uprawnień dla tokenu dostępu
Domyślnie udzielamy wielu uprawnień do tokenu dostępu. Jednym z tych uprawnień jest kompilacja kolejki. Dzięki tej aktualizacji usunęliśmy to uprawnienie do tokenu dostępu. Jeśli potoki potrzebują tego uprawnienia, możesz jawnie przyznać je kontu usługi kompilacji projektu lub kontu usługi kompilacji kolekcji projektów w zależności od używanego tokenu.
Ocena sprawdzania artefaktów
Teraz możesz zdefiniować zestaw zasad i dodać ocenę zasad jako sprawdzenie środowiska dla artefaktów obrazu kontenera. Po uruchomieniu potoku wykonanie jest wstrzymywane przed rozpoczęciem etapu korzystającego ze środowiska. Określone zasady są oceniane względem dostępnych metadanych dla wdrażanego obrazu. Sprawdzanie jest sprawdzane, gdy zasady zakończyły się powodzeniem i oznacza etap jako niepowodzenie, jeśli sprawdzanie zakończy się niepowodzeniem.
Obsługa języka Markdown w komunikatach o błędach testów automatycznych
Teraz obsługujemy język Markdown w komunikatach o błędach na potrzeby testów automatycznych. Możesz łatwo sformatować komunikaty o błędach zarówno dla przebiegu testu, jak i wyniku testu, aby zwiększyć czytelność i ułatwić rozwiązywanie problemów z awarią w usłudze Azure Pipelines. Obsługiwaną składnię języka Markdown można znaleźć tutaj.
Diagnozowanie harmonogramów programu cron w języku YAML
Zaobserwowaliśmy stały wzrost użycia składni cron do określania harmonogramów w potokach YAML. Podczas nasłuchiwania opinii słyszeliśmy, że trudno ci było ustalić, czy usługa Azure Pipelines prawidłowo przetworzyła składnię. Wcześniej trzeba było poczekać na rzeczywisty czas zaplanowanego uruchomienia w celu debugowania problemów z harmonogramem. Aby ułatwić diagnozowanie błędów gałęzi/składni, dodaliśmy nowe menu akcji dla potoku. Zaplanowane uruchomienia w menu Uruchamianie potoku zapewnią podgląd nadchodzących kilku zaplanowanych uruchomień potoku, aby ułatwić diagnozowanie błędów z harmonogramami cron.
Aktualizacje zadania wdrażania szablonu usługi ARM
Wcześniej nie filtrowaliśmy połączeń usług w zadaniu wdrażania szablonu usługi ARM. Może to spowodować niepowodzenie wdrożenia, jeśli wybierasz połączenie usługi o niższym zakresie w celu wykonania wdrożeń szablonów usługi ARM w szerszym zakresie. Teraz dodaliśmy filtrowanie połączeń usług w celu filtrowania połączeń usług o niższym zakresie na podstawie wybranego zakresu wdrożenia.
Zabezpieczenia na poziomie projektu dla połączeń usługi
Dzięki tej aktualizacji dodaliśmy zabezpieczenia na poziomie centrum dla połączeń usług. Teraz możesz dodawać/usuwać użytkowników, przypisywać role i zarządzać dostępem w scentralizowanym miejscu dla wszystkich połączeń usługi.
Pula systemu Ubuntu 18.04
Usługa Azure Pipelines obsługuje teraz uruchamianie zadań w systemie Ubuntu 18.04. Zaktualizowaliśmy pulę usługi Azure Pipelines hostowaną przez firmę Microsoft w celu uwzględnienia obrazu Ubuntu-18.04. Teraz, gdy odwołujesz się do ubuntu-latest
puli w potokach YAML, będzie to oznaczać ubuntu-18.04
, a nie ubuntu-16.04
. Nadal można kierować obrazy w wersji 16.04 w zadaniach, jawnie.ubuntu-16.04
Wdrożenia kanarkowe na podstawie interfejsu siatki usług w ramach zadania KubernetesManifest
Wcześniej, gdy strategia kanaryczna została określona w zadaniu KubernetesManifest, zadanie tworzyłoby obciążenia bazowe i kanary, których repliki były równe procentowi replik używanych na potrzeby stabilnych obciążeń. Nie było to dokładnie takie samo, jak dzielenie ruchu do żądanej wartości procentowej na poziomie żądania. Aby rozwiązać ten problem, dodaliśmy obsługę wdrożeń kanarowych opartych na interfejsie usługi Service Mesh do zadania KubernetesManifest.
Abstrakcja interfejsu usługi Service Mesh umożliwia konfigurację plug-and-play z dostawcami siatki usług, takimi jak Linkerd i Istio. Teraz zadanie KubernetesManifest zabiera ciężką pracę mapowania obiektów SMI TrafficSplit do stabilnych, bazowych i kanarowych usług w cyklu życia strategii wdrażania. Żądany procent podziału ruchu między stabilnym, bazowym i kanarowym jest dokładniejszy, ponieważ podział ruchu procentowego jest kontrolowany na żądaniach na płaszczyźnie siatki usług.
Poniżej przedstawiono przykład wykonywania wdrożeń kanarowych opartych na protokole SMI w sposób stopniowy.
- deployment: Deployment
displayName: Deployment
pool:
vmImage: $(vmImage)
environment: ignite.smi
strategy:
canary:
increments: [25, 50]
preDeploy:
steps:
- task: KubernetesManifest@0
displayName: Create/update secret
inputs:
action: createSecret
namespace: smi
secretName: $(secretName)
dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
deploy:
steps:
- checkout: self
- task: KubernetesManifest@0
displayName: Deploy canary
inputs:
action: $(strategy.action)
namespace: smi
strategy: $(strategy.name)
trafficSplitMethod: smi
percentage: $(strategy.increment)
baselineAndCanaryReplicas: 1
manifests: |
manifests/deployment.yml
manifests/service.yml
imagePullSecrets: $(secretName)
containers: '$(containerRegistry)/$(imageRepository):$(Build.BuildId)'
postRouteTraffic:
pool: server
steps:
- task: Delay@1
inputs:
delayForMinutes: '2'
Aplikacja ReviewApp w środowisku
ReviewApp wdraża każde żądanie ściągnięcia z repozytorium Git w zasobie środowiska dynamicznego. Recenzenci mogą zobaczyć, jak te zmiany wyglądają, a także pracować z innymi usługami zależnymi przed scaleniem ich z gałęzią główną i wdrożoną w środowisku produkcyjnym. Ułatwi to tworzenie zasobów aplikacji i zarządzanie nimi oraz korzystanie ze wszystkich funkcji śledzenia i diagnostyki funkcji środowiska. Używając słowa kluczowego reviewApp , możesz utworzyć klon zasobu (dynamicznie utworzyć nowy zasób na podstawie istniejącego zasobu w środowisku) i dodać nowy zasób do środowiska.
Poniżej przedstawiono przykładowy fragment kodu YAML dotyczący używania funkcji reviewApp w środowiskach.
jobs:
- deployment:
environment:
name: smarthotel-dev
resourceName: $(System.PullRequest.PullRequestId)
pool:
name: 'ubuntu-latest'
strategy:
runOnce:
pre-deploy:
steps:
- reviewApp: MasterNamespace
Azure Artifacts
Zaktualizowane połączenie ze środowiskiem źródeł danych
Okno dialogowe Łączenie z kanałem informacyjnym to wejście do korzystania z usługi Azure Artifacts; Zawiera informacje na temat konfigurowania klientów i repozytoriów w celu wypychania i ściągania pakietów z kanałów informacyjnych w usłudze Azure DevOps. Zaktualizowaliśmy okno dialogowe, aby dodać szczegółowe informacje o konfiguracji i rozwinąć narzędzia, dla których udostępniamy instrukcje.
Publiczne źródła danych z obsługą strumienia wychodzącego są teraz publicznie dostępne
Publiczna wersja zapoznawcza publicznych kanałów informacyjnych otrzymała świetne przyjęcie i opinie. W tej aktualizacji rozszerzyliśmy dodatkowe funkcje do ogólnej dostępności. Teraz możesz ustawić publiczne źródło danych jako źródło nadrzędne z prywatnego źródła danych. Pliki konfiguracji można łatwo przechowywać, zapewniając możliwość transmisji strumieniowej zarówno do kanałów informacyjnych prywatnych, jak i z kanałów informacyjnych o zakresie projektu.
Tworzenie źródeł danych w zakresie projektu z poziomu portalu
Po udostępnieniu publicznych kanałów informacyjnych udostępniliśmy również kanały informacyjne o zakresie projektu. Do tej pory źródła danych o zakresie projektu można tworzyć za pośrednictwem interfejsów API REST lub przez utworzenie publicznego źródła danych, a następnie włączenie prywatnego projektu. Teraz możesz tworzyć źródła danych o zakresie projektu bezpośrednio w portalu z dowolnego projektu, jeśli masz wymagane uprawnienia. Możesz również zobaczyć, które źródła danych są projektami i które są objęte zakresem organizacji w selektorze kanału informacyjnego.
Raportowanie
Widżet Sprint Burndown ze wszystkim, o co prosiłeś
Nowy widżet Postępu przebiegu obsługuje wypalanie według punktów scenariuszy, liczby zadań lub sumowania pól niestandardowych. Możesz nawet utworzyć przebieg dla funkcji lub epików. Widżet wyświetla średnie spalenie, procent ukończenia i zwiększenie zakresu. Możesz skonfigurować zespół, umożliwiając wyświetlanie przepaleń przebiegu dla wielu zespołów na tym samym pulpicie nawigacyjnym. Dzięki tym wszystkim doskonałym informacjom do wyświetlenia możemy zmienić jego rozmiar do 10x10 na pulpicie nawigacyjnym.
Aby go wypróbować, możesz dodać go z katalogu widżetów lub edytując konfigurację istniejącego widżetu Sprint Burndown i zaznaczając pole Wypróbuj nową wersję teraz .
Uwaga
Nowy widżet korzysta z usługi Analytics. Zachowaliśmy starsze funkcje Przebiegu Burndown na wypadek, gdy nie masz dostępu do analizy.
Witryna Wiki
Synchroniczne przewijanie na potrzeby edytowania stron wiki
Edytowanie stron typu wiki jest teraz łatwiejsze dzięki synchronicznej przewijaniu między edycją a okienkiem podglądu. Przewijanie po jednej stronie spowoduje automatyczne przewinięcie drugiej strony, aby zamapować odpowiednie sekcje. Możesz wyłączyć synchroniczne przewijanie za pomocą przycisku przełącznika.
Uwaga
Stan przełącznika przewijania synchronicznego jest zapisywany dla użytkownika i organizacji.
Liczba odwiedzin stron wiki
Teraz możesz uzyskać szczegółowe informacje na temat wizyt stron typu wiki. Interfejs API REST umożliwia dostęp do informacji o odwiedzinach strony w ciągu ostatnich 30 dni. Te dane umożliwiają tworzenie raportów dla stron typu wiki. Ponadto możesz przechowywać te dane w źródle danych i tworzyć pulpity nawigacyjne, aby uzyskać szczegółowe informacje, takie jak najczęściej wyświetlane strony.
Na każdej stronie będzie również widoczna zagregowana liczba wizyt na stronie z ostatnich 30 dni.
Uwaga
Wizyta strony jest definiowana jako widok strony przez danego użytkownika w 15-minutowym interwale.
Następne kroki
Uwaga
Te funkcje będą wdrażane w ciągu najbliższych dwóch do trzech tygodni.
Przejdź do usługi Azure DevOps i przyjrzyj się.
Jak przekazać opinię
Chcielibyśmy usłyszeć, co myślisz o tych funkcjach. Użyj menu Pomocy, aby zgłosić problem lub podać sugestię.
Możesz również uzyskać porady i odpowiedzi na pytania społeczności w witrynie Stack Overflow.
Dzięki,
Jeff Beehler