Doporučení pro standardizaci nástrojů a procesů
Platí pro toto doporučení kontrolního seznamu provozní efektivity architektury Azure Well-Architected Framework:
OE:04 | Optimalizujte procesy vývoje softwaru a kontroly kvality pomocí osvědčených postupů pro vývoj a testování. Pro jednoznačné označení rolí standardizujte postupy napříč komponentami, jako jsou nástroje, správa zdrojového kódu, vzory návrhu aplikací, dokumentace a průvodci styly. |
---|
Související průvodce: Zvýšení rychlosti | sestavování– Použití kontinuální integrace
Tato příručka popisuje doporučení pro definování standardů pro nástroje a procesy vývoje softwaru. Definování konzistentních postupů vede k efektivnímu týmu úloh a vysoce kvalitní práci. Vysoce výkonné týmy používají osvědčené nástroje a procesy pro minimalizaci plýtvání úsilím a potenciálními chybami kódu.
Klíčové strategie návrhu
Prvním krokem optimalizace vývojových postupů je standardizace nástrojů a procesů. Pokud je to možné, místo vývoje interních řešení používejte průmyslově prověřená řešení. Pokud chcete dále optimalizovat své postupy, přijměte nástroje s nízkým kódem a bez kódu. Tyto nástroje vám umožní soustředit se na vaši aplikaci a ušetřit čas. Pro všechny nástroje a procesy, které standardizujete, implementujte školení, aby týmy porozuměly a efektivně je používaly. Pokud chcete definovat standardy, které pomáhají optimalizovat postupy vývoje, zvažte následující doporučení.
Používejte dobře známé a vyspělé nástroje mimo police
Používejte dobře známé a vyspělé nástroje mimo police a standardizujte jejich použití. Vysoce efektivní technické týmy přijímají špičkové nástroje. Tento přístup minimalizuje nutnost vyvíjet řešení pro plánování, vývoj, testování, spolupráci a kontinuální integraci a průběžné doručování (CI/CD). Mnoho podniků dává vývojářům výběr mezi několika nástroji, ale všechny možnosti jsou standardní nástroje pro organizaci a jsou ověřeny interně. Nejdůležitější je zvolit nástroje, které splňují požadavky na vaši úlohu. Off-the-police nástroje by měly poskytovat následující funkce:
Plánování práce a správa backlogů
Správa verzí a úložiště
Kanály CI/CD
Testování, jako je integrace, kouř, syntetický uživatel, simulace, chaos a další testy kvality
Vývoj kódu
V některých případech může jeden nástroj nebo sada nástrojů poskytovat několik funkcí. Ujistěte se, že rozumíte možnostem vašich nástrojů a jejich omezením, aby splňovaly vaše požadavky napříč funkcemi.
Určete, jestli byste měli investovat do drahých nástrojů nebo prémiových verzí nástrojů. V porovnání s funkcemi, které poskytují prémiové nástroje, zvažte čas a úsilí při vývoji vlastních řešení. Zvažte jednorázové náklady a opakované náklady. Ve většině případů nástroje mimo police poskytují vašemu týmu vyšší hodnotu.
Pokud je to praktické, používejte nástroje s nízkými kódy, bez kódu a AI. Nástroje s nízkým kódem a bez kódu šetří zkušeným vývojářům čas tím, že jim umožní snadno připojit funkce místo provádění celého procesu vývoje kódu. Tyto nástroje také umožňují členům týmu úloh, kteří nemusí být vyškoleni vývojáři, aby přispěli k provozu úlohy. Nástroje AI můžou pomoct s vývojem, recenzemi a optimalizací kódu.
Standardizace strategie větvení
Pokud je to možné, zvolte model založený na kufru. Větvení založené na kmenech udržuje vývojový tým úloh synchronizovaný a podporuje průběžné doručování. Definujte zásady větví pro ochranu důležitých větví, jako je hlavní větev. Další informace najdete v tématu Přijetí strategie větvení Gitu a zásad a nastavení větví.
Vyhodnocení metrik pro kvantifikaci efektivity vývoje
Týmy pro vývoj softwaru a kontrolu kvality mohou zlepšit pouze v případě, že mohou kvantifikovat jejich efektivitu. Aby bylo možné kvantifikovat efektivitu, musí identifikovat metriky, které měří rychlost vývojáře, a definovat klíčové ukazatele výkonu. Mezi příklady těchto metrik patří:
Frekvence nasazení: Počet nasazení, která každý vývojář nasadí každý den.
Předstih: Doba, kterou trvá, než se scénář úkolu nebo uživatele dostane z backlogu do produkčního nasazení.
Střední doba řešení: Průměrná doba strávená opravou chyb nebo vad v kódu.
Míra selhání změn: Procento změn, které vedou k selhání.
Aby účastníci a tým úloh mohli snadno sledovat rychlost, vizualizovat klíčové ukazatele výkonu pomocí řídicích panelů nebo jiných nástrojů pro vytváření sestav.
Standardizace psaní, hodnocení a kódu dokumentů v týmu úloh
Standardizujte, jak váš tým úloh píše, kontroluje a dokumentuje kód pomocí průvodce stylem. Standardní styl usnadňuje spolupráci a pomáhá s on-boardingem nových vývojářů. Aby mohli noví vývojáři efektivně pracovat, musí vědět, jak tým úloh funguje. Průvodce stylem s jasně definovanými standardy může usnadnit proces trénování. V průvodci stylem definujte standardy pro vývojové jazyky, knihovny, architektury a další konvence.
Pokud je to praktické, použijte nástroje k vynucení standardů formátování kódu. Visual Studio například nabízí několik nástrojů , které kontrolují styl, kvalitu, udržovatelnost, návrh a další problémy. Pro infrastrukturu jako kód (IaC) můžete použít Checkov nebo Terrascan pro Terraform.
Pokud chcete zajistit konzistenci a vyhnout se potenciálním nejasnostem, průvodce stylem by měl obsahovat standardní zásady vytváření názvů pro artefakty, prostředí, větve, sestavení a spuštění.
Měli byste také nastavit pokyny a standardy pro povolený stupeň rozptylu ve vašich prostředích. Pokud existují nové jazyky, architektury nebo jiné technologie, které členové týmu úloh chtějí přidat do standardního seznamu, implementujte proces použití těchto nástrojů v sandboxu nebo v nižším prostředí. Otestujte jejich životaschopnost a v případě potřeby nahraďte stávající technologie.
Pomocí záznamů rozhodnutí o rozhodnutích o architektuře (ADRS) můžete uchovávat historický záznam o rozhodnutích o návrhu vašeho týmu úloh. Adrs pomáhají vašim týmům udržet si přehled o úloze. Pomáhají také novým členům týmu dozvědět se o rozhodnutích o návrhu, která se provádějí během životního cyklu úlohy. Ujistěte se, že zásady adrs jsou řízené verzemi.
V ADR uveďte:
Konkrétní nástroje a technologie, například pomocí SQL nebo NoSQL, které váš tým zvolí.
Důvody pro rozhodnutí vašeho týmu.
Další možnosti, které byly zvažovány, což pomáhá kontextovat konečné rozhodnutí.
Funkční a nefunkční požadavky, které jsou do rozhodnutí začleněny.
Kontext rozhodovacího procesu, jako je problém, který byl vyřešen.
Implementace standardů pro řešení technického dluhu
Představte si, že technický dluh je úmyslný a nezbytný pro dodávky vašeho týmu úloh. Toto myšlení motivuje váš tým, aby zvážil a vyřešil technický dluh pravidelně, aby se zabránilo akumulace. Řešení technického dluhu jako pravidelného opakovaného úkolu v backlogu
Předpokládejme například, že váš tým je standardizovaný v knihovně. V průběhu času je potřeba přepnout na jinou knihovnu pro nové funkce v úloze. Tento přechod může vést k technickému dluhu. Tyto přechody můžou často opustit tým úloh podporující dvě technologie, protože nemůžou hladce přecházet. Tým úloh musí určit prioritu dokončení přechodu, protože když úloha dosáhne nové funkce, jsou účastníci spokojení a budou méně pravděpodobné, že budou uvažovat o technickém dluhu.
Standardizace způsobu použití správy verzí u artefaktů
Standardizujte způsob, jakým používáte správu verzí u artefaktů a jak se správa verzí vystavuje interně i externě. Například klientské systémy by měly zveřejnit svou spuštěnou verzi v uživatelském rozhraní. Tato technika je užitečná, když tým úloh vyřeší problémy, protože zákazník může snadno komunikovat, kterou verzi používá. Rozhraní REST můžou vystavit verze pro určité komponenty nebo databáze. Ke zveřejnění verze schématu můžete použít konkrétní tabulku v metadatech schématu.
Pomocí vzorů návrhu aplikací osvědčených v oboru zajistěte, aby vaše aplikace byla spolehlivá, výkonná a zabezpečená. Pomocí těchto vzorů můžete ušetřit čas a úsilí v porovnání s vývojem vlastních řešení pro vaši aplikaci. Zvolte vzory, které budou pro vaši úlohu přínosné. Pravidelně kontrolujte vzory návrhu a ujistěte se, že při vývoji úloh používáte správné vzory.
Implementace přístupu posunu doleva k testování
Implementace přístupu doleva posunu k testování provedením testování částí v rané fázi a často v průběhu procesu vývoje. Časté testování v každém vývojovém prostředí pomáhá vývojářům získat důvěru v jejich aplikace. Pokud chcete vytvořit testovací strategii pomocí přístupu posunu doleva, zvažte následující principy:
Pište testy na nejnižší možné úrovni. Upřednostňování testů s nejmenšími externími závislostmi a spouštění testů v rámci sestavení.
Psát testy jednou a spouštět testy všude, včetně produkce. Pište testy, které můžete spouštět v každém vývojovém prostředí, aniž byste museli provádět faktory specifické pro jedno prostředí, jako jsou šifrované tajné kódy nebo konfigurace.
Navrhněte svou úlohu pro testování. Při vývoji aplikace proveďte testovatelnost požadavkem.
Zacházejte s testovacím kódem jako s kódem aplikace. Použijte stejné standardy kvality a vývoje na kód aplikace a testovací kód. Uložte testovací kód společně s kódem aplikace. Vývoj a údržba testovacího kódu pomocí kódu aplikace Pokud chcete zajistit kvalitu testů, zahoďte testy, které nejsou spolehlivé.
Zvažte testování vlastnictví, které je založené na vlastnictví úloh. Váš tým úloh vlastní testování a neměl by spoléhat na ostatní týmy k otestování kódu.
Automatizujte testy co nejvíce. Automatizovaný kód snižuje zátěž týmu úloh a vynucuje konzistentní kvalitu.
Podrobné pokyny k implementaci testovací strategie DevOps najdete v tématu Testování shift vlevo s testy jednotek.
Vyžadovat postupy DevSecOps jako součást standardních provozních postupů. Váš tým úloh by měl rozumět postupům zabezpečení souvisejícím s vývojem softwaru a zajištěním kvality. Tyto postupy musí dodržovat bez výjimky. Další informace najdete v průvodci životním cyklem vývoje zabezpečení.
Implementace standardů pro pojmenování a označování prostředků
Implementace zásad označování a pojmenování je osvědčeným postupem pro správu a uspořádání prostředků Azure. Zásady označování a pojmenování pomáhají identifikovat, klasifikovat a seskupovat prostředky na základě běžných atributů, jako jsou prostředí, aplikace, vlastník nebo nákladové středisko. Umožňují také zabezpečení, automatizaci, vytváření sestav a zásady správného řízení prostředků napříč předplatnými a skupinami prostředků.
Mezi výhody používání standardizovaných konvencí označování a pojmenování patří:
- Poskytují konzistenci a přehlednost pro identifikaci a správu prostředků, což usnadňuje zjišťování a vyhledávání na webu Azure Portal, PowerShellu, rozhraní příkazového řádku a rozhraních API.
- Umožňují filtrování a seskupení prostředků pro účely fakturace, monitorování, zabezpečení a dodržování předpisů.
- Podporují správu životního cyklu prostředků, jako je zřizování, vyřazení z provozu, zálohování a obnovení.
- Jsou nezbytné pro účely zabezpečení. Pokud narazíte na bezpečnostní incident, je důležité rychle identifikovat ovlivněné systémy, funkce, které tyto systémy podporují, a potenciální obchodní dopad.
Další informace o používání zásad vytváření názvů pro cloudové prostředky najdete v tématu Definování zásad vytváření názvů. Další informace o použití značek metadat pro cloudové prostředky najdete v tématu Definování strategie označování.
Usnadnění azure
Azure DevOps je kolekce služeb, které můžete použít k vytvoření efektivního a konzistentního vývojového postupu pro spolupráci. Azure DevOps spojuje následující řešení:
Azure Pipelines poskytuje služby sestavení a vydávání, které podporují CI/CD vašich aplikací.
Azure Boards je webový nástroj pro správu práce, který podporuje agilní postupy, jako je Scrum a Kanban.
Azure Repos je nástroj pro správu verzí, který podporuje systém správy distribuovaných verzí Gitu a systém Správa verzí Team Foundation.
Azure Test Plans je řešení pro správu testů založené na prohlížeči, které poskytuje možnosti potřebné pro plánované ruční testování, testování přijetí uživatelů, průzkumné testování a shromažďování zpětné vazby od zúčastněných stran.
Azure Artifacts slouží k efektivnímu sdílení kódu a správě balíčků vývojářům.
GitHub Actions pro Azure je nástroj, který můžete použít k automatizaci procesů CI/CD. Integruje se přímo s Azure, aby zjednodušila nasazení. Můžete vytvářet pracovní postupy, které sestavují a testují všechny žádosti o přijetí změn do úložiště nebo nasazují sloučené žádosti o přijetí změn do produkčního prostředí.
GitHub Projects je nástroj pro správu práce, který můžete použít k vytváření panelů Kanban, sestav, řídicích panelů a dalších funkcí.
Nástroje s nízkým kódem a bez kódu zahrnují:
Šablony Azure Resource Manageru a Bicep jsou nativní nástroje Azure, které můžete použít k nasazení IaC. Terraform je další nástroj IaC podporovaný v Azure, který můžete použít k nasazení a správě infrastruktury.
Visual Studio je robustní vývojový nástroj, který se integruje s Azure a podporuje mnoho jazyků.
GitHub Copilot je služba AI, která funguje jako párový programátor a poskytuje návrhy stylu automatického dokončování při psaní kódu. Copilot je k dispozici jako rozšíření v sadě Visual Studio a několik dalších vývojových nástrojů.
Azure Load Testing je plně spravovaná služba zátěžového testování, kterou můžete použít ke generování vysokého zatížení simulací provozu pro vaše aplikace bez ohledu na to, kde jsou hostované.
Sladění organizace
Architektura přechodu na cloud pro Azure poskytuje obecné pokyny a doporučení pro označování a pojmenování prostředků Azure a také konkrétní pravidla a příklady pro různé typy prostředků.
Související odkazy
- Přijetí strategie větvení Gitu
- Zásady a nastavení větví
- Vzory návrhu cloudu
- Rychlost vývojáře
- Vývoj strategie pojmenování a označování pro prostředky Azure
- Centrum prostředků DevOps
- Povolení DevSecOps pomocí Azure a GitHubu
- Přehled analýzy zdrojového kódu
- Průvodce životním cyklem vývoje zabezpečení
- Zabezpečení v DevOps (DevSecOps)
- Testování posunu doleva s testy jednotek
- Série videí: Úvod do GitHubu CoPilot
Kontrolní seznam pro efektivitu provozu
Projděte si kompletní sadu doporučení.