Sdílet prostřednictvím


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:

Azure Artifacts:

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ě.

Správa zásad napříč úložišti

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 .

Uživatelské prostředí pro kanály s více fázemi

Díky vaší zpětné vazbě jsme vyřešili následující informace v posledních dvou aktualizacích.

  1. Zjistitelnost zobrazení složek
  2. Přeskakování v zobrazení protokolů
  3. Snadno zobrazit protokoly z předchozích a aktuálních úkolů i v případě, že probíhá spuštění.
  4. Usnadnění navigace mezi úlohami při kontrole protokolů

Možnosti zahrnuté v novém prostředí

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'
      postRouteTaffic:
        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 Kuberenetes 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í.

Zásady schválení pro kanály YAML

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.

    Verze prostředku, která aktivovala spuštění

  • Potvrzení, která kanál využívá. Můžete také zjistit rozpis potvrzení podle jednotlivých prostředků využívaných kanálem.

    Potvrzení, která kanál využívá.

  • 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.

    Artefakty, které jsou k dispozici pro spuštění.

V zobrazení nasazení prostředí můžete zobrazit potvrzení a pracovní položky pro každý prostředek nasazený do prostředí.

Potvrdí 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í.

Zjednodušená autorizace prostředků v kanálech YAML

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ří.

Vyhodnocení kontroly artefaktů

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.

Podpora Markdownu v automatických testovacích chybových zprávách

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.

Diagnostika plánů cron v YAML

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.

Zabezpečení na úrovni projektu pro 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.

Widget Sprint Burndown

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.

Synchronní posouvání pro úpravy stránek wikiwebu

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ů.

Návštěvy stránek wikiwebu

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.

Vytvoření návrhu

Můžete také získat rady a své otázky zodpovězené komunitou ve službě Stack Overflow.

Díky,

Jeff Beehler