Spravované fondy DevOps pro Azure DevOps (Preview)
S radostí oznamujeme verzi Preview spravovaných fondů DevOps, která je navržená tak, aby pomohla vývojovým a platformovým technickým týmům rychle nastavit a spravovat vlastní fondy DevOps.
Kromě toho jsme vylepšili rozhraní API pro odhad využití měřiče pro GitHub Advanced Security, která poskytují nové funkce, které vám pomůžou identifikovat uživatele.
Podrobnosti najdete v poznámkách k verzi.
Pokročilé zabezpečení GitHubu pro Azure DevOps
- Rozhraní API pro pokročilé využití měřiče zabezpečení teď vrací identity uživatelů.
- Kontrola kódu Pokročilého zabezpečení GitHubu pro projekty C# a Java bez sestavení
Azure Pipelines
- Spravované fondy DevOps (Preview)
- Úlohy Azure Pipelines používají Node 20
- Vytvoření oprávnění kanálu buildu
- Exkluzivní kontrola zámku na úrovni fáze
- Informace o šablonách při spuštění kanálu
- Ručně aktivované fáze kanálu YAML
Pokročilé zabezpečení GitHubu pro Azure DevOps
Rozhraní API pro pokročilé využití měřiče zabezpečení teď vrací identity uživatelů.
Abychom vám pomohli identifikovat uživatele rozšířeného zabezpečení, rozhraní API odhadu využití měřiče teď vrací identitu Azure DevOps každého uživatele, včetně jejich zobrazovaného jména, CUID, identifikátoru e-mailu a popisovače identity. Tato funkce je dostupná na úrovních organizace, projektu a úložiště. Pokud chcete použít tento nový koncový bod, syntaxe se podobá existujícím koncovým bodům rozhraní API využití měřiče, které se připojují /details
ke koncovému bodu:
- Na úrovni organizace: GET
https://advsec.dev.azure.com/{organization}/_apis/management/meterUsageEstimate/details?api-version=7.2-preview.1
- Na úrovni projektu: GET
https://advsec.dev.azure.com/{organization}/{project}/_apis/management/meterUsageEstimate/details?api-version=7.2-preview.1
- Na úrovni úložiště: GET
https://advsec.dev.azure.com/{organization}/{project}/_apis/management/repositories/{repository}/meterUsageEstimate/details?api-version=7.2-preview.1
Kontrola kódu Pokročilého zabezpečení GitHubu pro projekty C# a Java bez sestavení
Kontrola kódu pomocí CodeQL zahrnuje spouštění dotazů na databáze, které představují kód v úložišti pro jeden jazyk. Pro zkompilované jazyky, jako jsou C/C++, C#, Go, Java a Swift, to obvykle vyžaduje vytvoření kódu jako první.
CodeQL, modul pro statickou analýzu za GitHub Advanced Security pro Azure DevOps, teď ale může kontrolovat projekty C# a Java bez nutnosti sestavení. Pokud je režim sestavení nastavený na none ( žádný), databáze CodeQL se vygeneruje přímo ze základu kódu a vynechá krok sestavení.
Pro všechny kompilované jazyky je výchozí režim sestavení "ruční". Pro C# a Javu ale můžete změnit režim sestavení na "none".
Režim sestavení můžete nakonfigurovat během instalace AdvancedSecurity-Codeql-Init@1. Podrobné pokyny ke konfiguraci skenování kódu v GitHub Advanced Security pomocí Azure DevOps najdete v tématu Nastavení kontroly kódu.
Úvaha:
Pokud je vybrán žádný a jazyk jiný než podporovaný jazyk, který je v souladu s jazyky C# nebo Java, nemusí úloha kanálu fungovat podle očekávání.
Režim sestavení none v současné době funguje ve spojení s jinými interpretovanými jazyky (např. JavaScript, Python, Ruby).
Platný příklad: C# a JavaScript s režimem sestavení nastaveným na none (JavaScript v interpretovaném jazyce)
Neplatný příklad: C#, JavaScript a Swift s režimem sestavení nastaveným na none (Swift není podporován v režimu sestavení none).
Azure Pipelines
Spravované fondy DevOps (Preview)
Technické týmy excelují, když se můžou soustředit na psaní kódu pro vývoj aplikací a služeb pro své uživatele. V praxi je však značné množství času často vynaloženo na správu jiných úloh, jako je údržba infrastruktury DevOps.
S radostí oznamujeme verzi Public Preview spravovaných fondů DevOps (MDP) – novou funkci Azure DevOps, která je navržená tak, aby pomohla vývojovým a platformovým technickým týmům nasadit vlastní fondy DevOps přizpůsobené jejich jedinečným potřebám. MDP kombinuje flexibilitu agentů škálovací sady s snadnou údržbou spojenou s agenty hostovanými Microsoftem, což týmům umožňuje stanovit konzistenci a osvědčené postupy při optimalizaci výkonu, zabezpečení, dodržování předpisů a efektivity nákladů.
Mezi klíčové výhody spravovaných fondů DevOps patří:
- Hostované vaším jménem: MDP je hostováno a spravováno Microsoftem, přičemž virtuální počítače, které využívají agenty vytvořené a spravované v rámci předplatných Azure vlastněných Microsoftem.
- Čas strávený ve správě: MDP výrazně zkracuje dobu strávenou správou agentů, zejména těch, které jsou založené na místní infrastruktuře nebo ručně udržovaných systémech.
- Specifické fondy: Díky snadnému vytváření nových fondů můžou organizace snadno vytvářet více fondů specifických pro tým nebo úlohy.
- Fakturace DevOps: MDP pomáhá optimalizovat vyúčtování DevOps týmu prostřednictvím mnoha funkcí. Usnadňuje týmům nalezení optimální rovnováhy mezi QoS/výkonem a náklady fondu.
- Škálovatelné: MDP se škáluje na 1 000 agentů v jednom fondu.
Týmy můžou vytvářet fondy s rychlými počátečními imagemi , které obsahují stejný software, který se nachází v agentech hostovaných Microsoftem, nebo s obrázky, které tým vytvořil s požadavky, které jsou pro svůj scénář jedinečné.
Další informace o spravovaných fondech DevOps najdete v našem blogovém příspěvku nebo jeho dokumentaci.
Úlohy Azure Pipelines používají Node 20
Většina úloh kanálu používá Node jako spouštěč. Úloha Azure Pipelines, která jako spouštěč používá NodeJS, teď všechny používají NodeJS 20. Autoři rozšíření úkolů by měli aktualizovat své úkoly tak, aby používali Node 20. Pokyny k upgradu najdete v tématu Jak můžu upgradovat vlastní úlohu na nejnovější uzel?
Vytvoření oprávnění kanálu buildu
Abychom zvýšili zabezpečení kanálu, zavádíme nové oprávnění na Create build pipeline
úrovni kanálů.
Edit build pipeline
Dříve bylo oprávnění nutné k vytvoření nebo úpravě kanálu. To představovalo bezpečnostní riziko, protože všem uživatelům umožnilo vytvářet kanály, aby mohli také upravovat kanály, které nevytvořili. Zabránilo tomu, že by to bylo časově náročné.
Pokud chcete vylepšit prostředí kanálu bez ohrožení zabezpečení, všichni uživatelé a skupiny s Edit build pipeline
oprávněním teď také obdrží Create build pipeline
oprávnění.
Po vytvoření kanálu se autor udělí Edit build pipeline
oprávnění.
V případě lepšího Edit build pipeline
zabezpečení kanálu se můžete rozhodnout odebrat oprávnění ze skupin uživatelů, jako jsou přispěvatelé a čtenáři. Tím se zajistí, že ho ve výchozím nastavení může upravovat jenom tvůrce kanálu.
Poznámka:
Oprávnění upravit kanál buildu nezabrání ostatním v úpravách kanálu YAML. Chrání pouze vlastnosti kanálu před úpravami.
U nových projektů budou mít Create build pipeline
oprávnění také uživatelé a skupiny s Edit build pipeline
oprávněním. V budoucnu se to může změnit.
Exkluzivní kontrola zámku na úrovni fáze
Některé případy použití vyžadují, aby kanál přistupoval ke konkrétnímu prostředku pouze jednou v daném okamžiku. Abychom tento případ podpořili, máme kontrolu výhradního zámku .
Podobná situace nastane, když ke fázi v libovolném okamžiku má přistupovat pouze jedno spuštění kanálu. Pokud máte například fázi, která se nasadí do skupiny prostředků Azure, můžete chtít zabránit souběžné aktualizaci stejné skupiny prostředků několika spuštěním kanálu. V současné době to vyžaduje použití proxy prostředku, jako je prostředí, a umístění kontroly výhradního zámku do tohoto prostředí. Tento přístup může být časově náročný, zvyšuje složitost a zvyšuje úsilí o údržbu.
V tomto sprintu zavádíme podporu pro určení výhradního zámku na úrovni fáze. Pokud máte fázi s ID a zadejte její lockBehavior
vlastnost, zámek se pro tuto fázi vytvoří automaticky. Chování sequential
zůstává konzistentní pro zámky na úrovni prostředků i na úrovni fáze. runLatest
Chování se ale liší, protože zruší runLatest
pouze sestavení pro stejnou větev, ne pro všechny větve kanálu.
Informace o šablonách při spuštění kanálu
Aktualizovali jsme spuštění kanálů – získání rozhraní REST API s informacemi o rozšířených šablonách a zahrnutých do spuštění kanálu.
Představte si například, že máte následující kód kanálu YAML:
extends:
template: template-stages.yml@templates
parameters:
stages:
- stage: deploy
jobs:
- job:
steps:
- template: template-step.yml
Nové rozhraní REST API má následující nové vlastnosti:
"yamlDetails":
{
"extendedTemplates":
[
{
"yamlFile": "template-stages.yml",
"repoAlias": "templates"
}
],
"includedTemplates":
[
{
"yamlFile": "template-step.yml",
"repoAlias": "templates"
}
],
"rootYamlFile":
{
"ref": "refs/heads/main",
"yamlFile": "azure-pipelines.yml",
"repoAlias": "self"
},
"expandedYamlUrl": "https://dev.azure.com/fabrikamfiber/161cfeeb-d9fd-395c-917b-fec46db44fbb/_apis/build/builds/39224/logs/1"
}
Ručně aktivované fáze kanálu YAML
Často dostáváme žádosti o ručně aktivované fáze kanálu YAML. To je užitečné v případech, kdy chcete sjednocený kanál, ale nechcete, aby se vždy spustil do dokončení.
Kanál může například zahrnovat fáze sestavení, testování, nasazení do přípravného prostředí a nasazení do produkčního prostředí. Můžete chtít, aby se všechny fáze spouštěly automaticky s výjimkou produkčního nasazení, které chcete aktivovat ručně, až na to, že jsou připravené.
V tomto sprintu přidáváme podporu pro ručně aktivované fáze kanálu YAML. Pokud chcete tuto funkci použít, musíte tuto vlastnost přidat trigger: manual
do fáze.
Podívejte se na následující příklad kanálu YAML:
stages:
- stage: stage_WUS1
displayName: Deploy WUS1
trigger: manual
jobs:
- job: DeployJob
steps:
- task: AzureCLI@2
inputs:
azureSubscription: 'AzureWIF'
scriptType: 'ps'
scriptLocation: 'inlineScript'
inlineScript: 'Write-host ''hello, world'''
- stage: stage_WUS2
displayName: Deploy WUS2
trigger: manual
jobs:
- job: DeployJob
steps:
- task: AzureCLI@2
inputs:
azureSubscription: 'AzureWIF'
scriptType: 'ps'
scriptLocation: 'inlineScript'
inlineScript: 'Write-host ''hello, world'''
Při spuštění tohoto kanálu je prostředí následující:
Ručně aktivované fáze nemají žádné závislosti a je možné je kdykoli spustit. Spuštění kanálu se dokončí, když se spustí pouze ručně aktivované fáze.
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,
Silviu Andrica