Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Azure DevOps Terraform QA FTW
.net stack 11 let kentico 8 let devops 2,5 roku Jiří Kovář
2
temp environment v azure spravovane terraformem a instrumentovane azure devops
narazili jsme na limity a jak jsme je prekonali abych dokazal vysvetlit, musim rict neco o nas
3
Brno, 250 zamestnancu, sprava content, tvorba webu, , hlavni trh USA,
2 produkty, budu mluvit jen o Cloudu
4
Kentico Cloud Headless Content as a Service ~60 lidí v developmentu
2 DevOps Test automation 2 DevOps Azure, CI/CD, IaC a konfigurace
5
Architektura řešení
6
Jak vyvíjíme a vydáváme
builds per commit CD release per commit do mastera PRV per commit do PR HF per commit do release branche
7
Temp environmenty Infrastruktura Konfigurace Deployment Testy Destroy
8
Infrastruktura Azure a Fastly CDN Znovupoužitelné moduly
6 různých environmentů (QA, PROD, UI tests, OnDemand, 2 druhy INT testů) Jen potřebný subset Adekvátně naškálovaná Unikátní názvy (a Terraform workspaces) 12ctka je super 11cka mela dost nedostatku
9
Konfigurace - KeyVault
Zdroje: Terraform (klíče typu „connection strings“) Statické klíče (JSON file) Top Secret KeyVault pro produkci Přístup všech strojů do KeyVaultu Zabezpečený a kontrolovaný zápis do KeyVaultu z agentů Jmenna konvence
10
Konfigurace - KeyVault
11
Deployment Data driven deployment
Terraform -> KeyVault -> Azure DevOps Paralelizace Temp prostředí až 18 services Production 29 services (6min) Suffix – v dobe konfigurace nevim kam se bude deployovat
12
Deployment
13
Integrace pouštění testů
Čtení informací o prostředí z KeyVaultu (URLs, connection strings,...) Paralelizace Na více agentů (až 6) V rámci agentů Rychlost = Cena (UI testy sériově 6h, nyní 30min) Opakované pokusy Raději 3x zkusit na jednom prostředí, než si myslet že to byla náhoda a vytvářet ho znovu
14
Použití temp environmentů
Hlavní release (1-3x temp prostředí) Per commit do masteru Automatická detekce změněných artifactů Hotfix (3x temp prostředí) Na schválení Validace pull requestu (1-3 temp prostředí podle repozitáře) On demand prostředí pro různé účely Bez testů – když lokální vývoj nestačí
15
Statistiky za měsíc (jen testy)
~900 Temp prostředí ~7000 Azure Web Apps (compute) ~2200 Cosmos DB accounts (~2x tolik databází) ~3300 Storages ~850 SQL DBs <$800 USD (a to jsme teprve začali optimalizovat – Azure předpověd – $417)
16
Celkový dopad temp prostředí
Commity validované všemi testy Per commit do mastera Před mergováním pull requestu (pokud DEV uzná za vhodné) Před vydáváním hotfixu (pokud DEV uzná za vhodné) Možnost vytvořit si on demand prostředí pro moje branche Automatická správá persistentních prostředí a jejich konfigurací Snadné rozšiřování infrastruktury a deploymentů Stabilnější master Ušetřené peníze (DEV ~$1200)
17
MS Teams blame bot
18
Závěr 2 DevOps engineeři (+ pomoc) 1,5 roku Dříve Nyní TeamCity
Azure DevOps Manuální správa Azure a CDN Terraform Manuální správa settingů KeyVault Prostředí v Azure jen pro mastera On demand prostředí Agregované pouštění INT a UI testů Per commit Manuální testování hotfixů Automatické temp prostředí Obtížné pouštění INT a UI testů před mergem Pull Request Validation temp environmenty Notifikace em bez detailů a contextu MS Teams blame bot shrnující výsledky
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.