Nový widget sprint burndownu a vylepšené zabezpečení kanálů – Aktualizace Sprintu 160
V aktualizaci Sprintu 160 Pro Azure DevOps jsme přidali nový widget pro burndown sprintu, který podporuje vypálení podle bodů scénáře, počet úkolů a sčítání vlastních polí. Navíc jsme vylepšili zabezpečení kanálů omezením rozsahu přístupových tokenů.
Další informace najdete v následujícím seznamu funkcí .
Co je nového v Azure DevOps
Funkce
Azure Repos:
Azure Pipelines:
- Uživatelské prostředí vícefázových kanálů
- Orchestrace strategie nasazení testovacích hodnot v prostředí pro Kubernetes
- Zásady schvalování pro kanály YAML
- ACR jako prostředek kanálu první třídy
- Metadata prostředků kanálů jako předdefinované proměnné
- Sledovatelnost kanálů a prostředků ACR
- Zjednodušená autorizace prostředků v kanálech YAML
- Vylepšené zabezpečení kanálů na základě omezení rozsahu přístupových tokenů
- Vyhodnocení kontroly artefaktů
- Podpora Markdownu v chybových zprávách automatizovaných testů
- Diagnostika časových plánů cronu v YAML
- Aktualizace úlohy nasazení šablony ARM
- Zabezpečení na úrovni projektu pro připojení ke službám
- Fond Ubuntu 18.04
- Nasazení testovacích hodnot založené na rozhraní Service Mesh Interface v úloze KubernetesManifest
- ReviewApp v prostředí
Azure Artifacts:
- Aktualizované prostředí pro připojení k informačnímu kanálu
- Veřejné informační kanály jsou teď obecně k dispozici s podporou protisměru
- Vytváření informačních kanálů s rozsahem projektu z portálu
Generování sestav:
Wiki:
Azure Repos
Správa zásad větvení mezi úložišti
Zásady větví jsou jednou z výkonných funkcí Azure Repos, které pomáhají chránit důležité větve. I když možnost nastavit zásady na úrovni projektu existuje v rozhraní REST API, nebylo pro ni žádné uživatelské rozhraní. Správci teď můžou nastavit zásady pro určitou větev nebo výchozí větev ve všech úložištích v projektu. Správce může například vyžadovat dva minimální kontrolory pro všechny žádosti o přijetí změn provedené v každé hlavní větvi v každém úložišti v projektu. Funkci Přidat ochranu větví najdete v nastavení projektu Úložiště.
Azure Pipelines
Uživatelské prostředí vícefázových kanálů
Pracujeme na aktualizovaném uživatelském prostředí pro správu kanálů. Díky těmto aktualizacím jsou kanály moderní a konzistentní se směrem Azure DevOps. Kromě toho tyto aktualizace spojují klasické kanály buildů a kanály YAML s více fázemi do jediného prostředí. V novém prostředí jsou například zahrnuty následující funkce; zobrazení a správa více fází, schvalování spuštění kanálu, možnost posouvání celých protokolů, zatímco kanál stále probíhá, a stav kanálu pro každou větev.
Děkujeme všem, kteří vyzkoušeli nové prostředí. Pokud jste to ještě nezkoušeli, povolte ve funkcích Preview kanály s více fázemi . Další informace o kanálech s více fázemi najdete v dokumentaci zde .
Díky vaší zpětné vazbě jsme vyřešili následující informace v posledních dvou aktualizacích.
- Zjistitelnost zobrazení složek
- Přeskakování v zobrazení protokolů
- Snadno zobrazit protokoly z předchozích a aktuálních úkolů i v případě, že probíhá spuštění.
- Usnadnění navigace mezi úlohami při kontrole protokolů
Poznámka:
V další aktualizaci plánujeme tuto funkci ve výchozím nastavení zapnout pro všechny uživatele. Stále budete mít možnost odhlásit se z verze Preview. Po několika týdnech bude tato funkce obecně dostupná.
Orchestrace strategie nasazení testovacích hodnot v prostředí pro Kubernetes
Jednou z klíčových výhod průběžného doručování aktualizací aplikací je schopnost rychle odesílat aktualizace do produkčního prostředí pro konkrétní mikroslužby. Díky tomu můžete rychle reagovat na změny obchodních požadavků. Prostředí bylo zavedeno jako prvotřídní koncept, který umožňuje orchestraci strategií nasazení a usnadňuje nulové výpadky. Dříve jsme podporovali strategii runOnce , která postupně provedla kroky. Díky podpoře kanárské strategie ve vícefázových kanálech teď můžete snížit riziko tím, že pomalu zavádíte změnu na malou podmnožinu. Jakmile budete mít větší jistotu v nové verzi, můžete ji začít zavádět na více serverů ve vaší infrastruktuře a směrovat do ní více uživatelů.
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...
Kanárská strategie pro Kubernetes nejprve nasadí změny s 10% pody následovanými 20 % při monitorování stavu během postRouteTraffic. Pokud vše půjde dobře, zvýší se na 100 %.
Zásady schvalování pro kanály YAML
V kanálech YAML sledujeme konfiguraci schválení řízenou vlastníkem prostředku. Vlastníci prostředků konfigurují schválení prostředku a všechny kanály, které používají pozastavení prostředku ke schválení před zahájením fáze, kdy prostředek spotřebovávají. Vlastníci aplikací založených na SOX obvykle omezují žadatele nasazení na schvalování vlastních nasazení.
Teď můžete použít pokročilé možnosti schválení ke konfiguraci zásad schválení, jako je například žadatel, a vyžadovat schválení od podmnožina uživatelů a vypršení časového limitu schválení.
ACR jako prostředek kanálu první třídy
Pokud potřebujete použít image kontejneru publikovanou v ACR (Azure Container Registry) jako součást kanálu a aktivovat kanál při každém publikování nové image, můžete použít prostředek kontejneru 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
Kromě toho je možné získat přístup k meta-datům obrázků ACR pomocí předdefinovaných proměnných. Následující seznam obsahuje proměnné ACR, které jsou k dispozici pro definování prostředku kontejneru ACR ve vašem kanálu.
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
Metadata prostředků kanálů jako předdefinované proměnné
Do kanálu jsme přidali předdefinované proměnné pro prostředky kanálů YAML. Tady je seznam dostupných proměnných prostředků kanálu.
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
Sledovatelnost kanálů a prostředků ACR
Zajišťujeme úplnou sledovatelnost E2E, když se kanály a prostředky kontejneru ACR používají v kanálu. Pro každý prostředek využívaný kanálem YAML můžete trasovat potvrzení, pracovní položky a artefakty.
V zobrazení souhrnu spuštění kanálu můžete vidět:
Verze prostředku, která aktivovala spuštění. Kanál se teď dá aktivovat po dokončení jiného spuštění kanálu Azure nebo při nasdílení image kontejneru do ACR.
Potvrzení, která kanál využívá. Můžete také zjistit rozpis potvrzení podle jednotlivých prostředků využívaných kanálem.
Pracovní položky , které jsou přidružené ke každému prostředku spotřebovanému kanálem.
Artefakty, které jsou k dispozici pro použití spuštěním.
V zobrazení nasazení prostředí můžete zobrazit potvrzení a pracovní položky pro každý prostředek nasazený do prostředí.
Zjednodušená autorizace prostředků v kanálech YAML
Prostředek je cokoli, co používá kanál, který je mimo kanál. Prostředky musí být před jejich používáním autorizované. Dříve při použití neautorizovaných prostředků v kanálu YAML došlo k chybě autorizace prostředků. Museli jste autorizovat prostředky ze souhrnné stránky neúspěšného spuštění. Kanál navíc selhal, pokud používal proměnnou odkazovanou na neoprávněný prostředek.
Teď usnadňujeme správu autorizací prostředků. Místo selhání spuštění bude spuštění čekat na oprávnění k prostředkům na začátku fáze, která prostředek spotřebovávají. Vlastník prostředku může zobrazit kanál a autorizovat prostředek ze stránky Zabezpečení.
Vylepšené zabezpečení kanálů na základě omezení rozsahu přístupových tokenů
Každá úloha spuštěná v Azure Pipelines získá přístupový token. Přístupový token používají úlohy a vaše skripty k volání zpět do Azure DevOps. Pomocí přístupového tokenu například získáme zdrojový kód, nahrajeme protokoly, výsledky testů, artefakty nebo provedeme volání REST do Azure DevOps. Pro každou úlohu se vygeneruje nový přístupový token a po dokončení úlohy vyprší jeho platnost. V této aktualizaci jsme přidali následující vylepšení.
Zabránění přístupu tokenu k prostředkům mimo týmový projekt
Doteď byl výchozí rozsah všech kanálů kolekcí týmových projektů. Rozsah můžete změnit tak, aby byl týmový projekt v klasických kanálech buildu. Neměli jste ale tento ovládací prvek pro klasické verze nebo kanály YAML. V této aktualizaci zavádíme nastavení organizace, které vynutí každou úlohu, aby získala token v oboru projektu bez ohledu na to, co je v kanálu nakonfigurované. Přidali jsme také nastavení na úrovni projektu. Teď bude mít každý nový projekt a organizace, které vytvoříte, toto nastavení automaticky zapnuté.
Poznámka:
Nastavení organizace přepíše nastavení projektu.
Zapnutí tohoto nastavení v existujících projektech a organizacích může způsobit selhání určitých kanálů, pokud kanály přistupují k prostředkům mimo týmový projekt pomocí přístupových tokenů. Pokud chcete zmírnit selhání kanálu, můžete explicitně udělit účtu služby Sestavení projektu přístup k požadovanému prostředku. Důrazně doporučujeme zapnout tato nastavení zabezpečení.
Odebrání určitých oprávnění pro přístupový token
Ve výchozím nastavení udělujeme přístupovým tokenům řadu oprávnění, jedním z těchto oprávnění je sestavení fronty. V této aktualizaci jsme odebrali toto oprávnění pro přístupový token. Pokud vaše kanály potřebují toto oprávnění, můžete ho explicitně udělit účtu služby sestavení projektu nebo účtu služby sestavení kolekce projektů v závislosti na tokenu, který používáte.
Vyhodnocení kontroly artefaktů
Teď můžete definovat sadu zásad a přidat vyhodnocení zásad jako kontrolu prostředí pro artefakty imagí kontejneru. Při spuštění kanálu se spuštění pozastaví před zahájením fáze, která používá prostředí. Zadaná zásada se vyhodnotí na základě dostupných metadat nasazené image. Kontrola proběhne, když je zásada úspěšná a označí fázi jako neúspěšnou, pokud se kontrola nezdaří.
Podpora Markdownu v chybových zprávách automatizovaných testů
Markdown teď podporujeme v chybových zprávách pro automatizované testy. Chybové zprávy pro testovací běh i výsledek testu můžete snadno formátovat, abyste zlepšili čitelnost a usnadnili řešení potíží se selháním ve službě Azure Pipelines. Podporovanou syntaxi Markdownu najdete tady.
Diagnostika časových plánů cronu v YAML
Viděli jsme stabilní nárůst použití syntaxe cron pro zadávání plánů v kanálech YAML. Při poslechu vaší zpětné vazby jsme slyšeli, že pro vás bylo obtížné zjistit, jestli služba Azure Pipelines správně zpracovala vaši syntaxi. Dříve byste museli čekat na skutečný čas naplánovaného spuštění a ladit problémy s plánem. Abychom vám pomohli s diagnostikou chyb větve nebo syntaxe, přidali jsme novou nabídku akcí pro kanál. Naplánovaná spuštění v nabídce Spustit kanál vám poskytne náhled nadcházejících několika naplánovaných spuštění kanálu, které vám pomůžou diagnostikovat chyby s plány cron.
Aktualizace úlohy nasazení šablony ARM
Dříve jsme nefiltrovali připojení služby v úloze nasazení šablony ARM. To může způsobit selhání nasazení, pokud vyberete připojení služby s nižším rozsahem k provádění nasazení šablon ARM do širšího rozsahu. Teď jsme přidali filtrování připojení služeb pro filtrování připojení služby s nižším rozsahem na základě zvoleného oboru nasazení.
Zabezpečení na úrovni projektu pro připojení ke službám
V této aktualizaci jsme přidali zabezpečení na úrovni centra pro připojení služeb. Teď můžete přidávat nebo odebírat uživatele, přiřazovat role a spravovat přístup na centralizované místo pro všechna připojení služeb.
Fond Ubuntu 18.04
Azure Pipelines teď podporuje spouštění úloh na Ubuntu 18.04. Aktualizovali jsme fond Azure Pipelines hostovaný Microsoftem tak, aby zahrnoval image Ubuntu-18.04. Když teď ve svých kanálech YAML odkazujete na ubuntu-latest
fond, bude to znamenat ubuntu-18.04
a ne ubuntu-16.04
. V úlohách můžete i nadále cílit na 16.04 obrázků pomocí explicitního použití ubuntu-16.04
.
Nasazení testovacích hodnot založené na rozhraní Service Mesh Interface v úloze KubernetesManifest
Dříve, když byla v úloze KubernetesManifest zadána kanárová strategie, úloha by vytvořila základní a kanárské úlohy, jejichž repliky se rovnaly procentu replik použitých pro stabilní úlohy. To nebylo úplně stejné jako rozdělení provozu až do požadovaného procenta na úrovni požadavku. Abychom to vyřešili, přidali jsme podporu pro kanárná nasazení založená na rozhraní Service Mesh do úlohy KubernetesManifest.
Abstrakce rozhraní Service Mesh umožňuje konfiguraci plug-and-play s poskytovateli služeb, jako jsou Linkerd a Istio. Teď úloha KubernetesManifest odebere tvrdou práci mapování objektů TrafficSplit SMI na stabilní, standardní a kanárské služby během životního cyklu strategie nasazení. Požadované procento rozdělení provozu mezi stabilní, směrný plán a kanár jsou přesnější, protože procento rozdělení provozu je řízeno požadavky v rovině sítě služeb.
Následuje ukázka průběžného nasazování založeného na SMI.
- 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'
ReviewApp v prostředí
ReviewApp nasadí všechny žádosti o přijetí změn z úložiště Git do dynamického prostředku prostředí. Revidujícím se můžete podívat, jak tyto změny vypadají a jak fungují s dalšími závislými službami, než se sloučí do hlavní větve a nasadí do produkčního prostředí. Díky tomu budete moci snadno vytvářet a spravovat prostředky aplikace pro kontrolu a využívat výhod všech možností sledovatelnosti a diagnostiky funkcí prostředí. Pomocí klíčového slova reviewApp můžete vytvořit klon prostředku (dynamicky vytvořit nový prostředek na základě existujícího prostředku v prostředí) a přidat nový prostředek do prostředí.
Následuje ukázkový fragment kódu YAML pro použití aplikace reviewApp v prostředích.
jobs:
- deployment:
environment:
name: smarthotel-dev
resourceName: $(System.PullRequest.PullRequestId)
pool:
name: 'ubuntu-latest'
strategy:
runOnce:
pre-deploy:
steps:
- reviewApp: MasterNamespace
Azure Artifacts
Aktualizované prostředí pro připojení k informačnímu kanálu
Dialog Připojit k informačnímu kanálu je vstupním oknem k používání Azure Artifacts; Obsahuje informace o tom, jak nakonfigurovat klienty a úložiště pro nabízení a vyžádání balíčků z informačních kanálů v Azure DevOps. Aktualizovali jsme dialogové okno, abychom přidali podrobné informace o nastavení a rozšířili jsme nástroje, pro které poskytujeme pokyny.
Veřejné informační kanály jsou teď obecně k dispozici s podporou protisměru
Veřejná verze Preview veřejných informačních kanálů obdržela skvělé přijetí a zpětnou vazbu. V této aktualizaci jsme rozšířili další funkce na obecnou dostupnost. Teď můžete veřejný informační kanál nastavit jako nadřazený zdroj z privátního kanálu. Konfigurační soubory můžete snadno udržovat tak, že budete moct upstreamovat jak do, tak z privátních informačních kanálů a informačních kanálů v oboru projektu.
Vytváření informačních kanálů s rozsahem projektu z portálu
Když jsme vydali veřejné informační kanály, vydali jsme také informační kanály s oborem projektu. Doteď je možné kanály s vymezeným projektem vytvořit prostřednictvím rozhraní REST API nebo vytvořením veřejného informačního kanálu a následným otáčením projektu do soukromého. Teď můžete informační kanály s oborem projektu vytvářet přímo na portálu z libovolného projektu, pokud máte požadovaná oprávnění. Můžete také zjistit, které informační kanály jsou projektové a které jsou v nástroji pro výběr informačního kanálu vymezené organizací.
Sestavy
Widget Sprint Burndown se vším, co jste žádali
Nový widget Sprint Burndown podporuje vypalování podle bodů scénáře, počtu úkolů nebo součtu vlastních polí. Můžete dokonce vytvořit burndown sprintu pro funkce nebo náměty. Widget zobrazuje průměrné zvýšení počtu burndownů, procento dokončení a zvýšení rozsahu. Můžete nakonfigurovat tým a zobrazit burndowny sprintů pro více týmů na stejném řídicím panelu. Díky všem tomuto skvělému zobrazení vám umožníme změnit jeho velikost až na 10x10 na řídicím panelu.
Pokud ho chcete vyzkoušet, můžete ho přidat z katalogu widgetů nebo úpravou konfigurace existujícího widgetu Sprint Burndown a zaškrtnutím políčka Vyzkoušet novou verzi .
Poznámka:
Nový widget používá Analýzu. Starší verzi Sprint Burndownu jsme zachovali v případě, že nemáte přístup k analýzám.
Wiki
Synchronní posun při úpravách stránek wikiwebu
Úpravy stránek wikiwebu jsou teď jednodušší díky synchronnímu posouvání mezi podoknem úprav a podoknem náhledu. Posouvání na jedné straně se automaticky posune na druhou stranu a namapuje odpovídající oddíly. Synchronní posouvání můžete zakázat pomocí přepínacího tlačítka.
Poznámka:
Stav synchronního přepínače posouvání se uloží na uživatele a organizaci.
Návštěvy stránek wikiwebu
Teď můžete získat přehled o návštěvách stránek wikiwebu. Rozhraní REST API umožňuje přístup k informacím o návštěvě stránky za posledních 30 dnů. Tato data můžete použít k vytváření sestav pro stránky wikiwebu. Kromě toho můžete tato data ukládat do zdroje dat a vytvářet řídicí panely, abyste získali konkrétní přehledy, jako jsou nejobsáhlější stránky.
Na každé stránce se také zobrazí agregovaný počet návštěv stránek za posledních 30 dnů.
Poznámka:
Návštěva stránky je definována jako zobrazení stránky daným uživatelem v 15minutovém intervalu.
Další kroky
Poznámka:
Tyto funkce se budou zavádět během následujících dvou až tří týdnů.
Přejděte na Azure DevOps a podívejte se na ně.
Jak poskytnout zpětnou vazbu
Rádi bychom slyšeli, co si o těchto funkcích myslíte. Pomocí nabídky nápovědy můžete nahlásit problém nebo poskytnout návrh.
Můžete také získat rady a své otázky zodpovězené komunitou ve službě Stack Overflow.
Díky,
Jeff Beehler