Doporučení pro standardizaci nástrojů a procesů

Platí pro toto doporučení kontrolního seznamu efektivity provozu azure Well-Architected Framework:

OE:04 Optimalizujte procesy vývoje softwaru a zajištění 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 správnými styly.

Související příručka: Zvýšení rychlosti | sestaveníPoužití kontinuální integrace

Tato příručka popisuje doporučení pro definování standardů pro vývojové nástroje a procesy softwaru. Definování konzistentních postupů vede k efektivnímu pracovnímu týmu a vysoce kvalitní práci. Vysoce výkonné týmy používají prověřené nástroje a procesy k minimalizaci zbytečného úsilí a potenciálních chyb kódu.

Klíčové strategie návrhu

Prvním krokem optimalizace postupů vývoje je standardizace nástrojů a procesů. Pokud je to možné, používejte osvědčená řešení místo vývoje interních řešení. Pokud chcete své postupy dále optimalizovat, osvojte si nástroje s minimem kódu a bez kódu. Tyto nástroje vám umožní zaměřit se na aplikaci a ušetřit čas. Pro všechny nástroje a procesy, které standardizujete, implementujte školení, aby je vaše týmy pochopili a efektivně je používali. Pokud chcete definovat standardy, které vám pomůžou optimalizovat postupy vývoje, zvažte následující doporučení.

Používejte známé a vyspělé nástroje, které jsou policové

Používejte známé a vyspělé nástroje a standardizujte jejich použití. Vysoce efektivní technické týmy přijímají nejlepší nástroje ve své třídě. 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 na výběr mezi několika nástroji, ale všechny možnosti jsou standardními nástroji pro organizaci a ověřují se interně. Nejdůležitější je zvolit nástroje, které splňují požadavky pro vaše úlohy. Nástroje, které jsou k dispozici, by měly poskytovat následující funkce:

  • Plánování práce a správa backlogu

  • 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 do prémiových verzí nástrojů. Zvažte čas a úsilí vývoje vlastních řešení v porovnání s funkcemi, které poskytují prémiové nástroje. Zvažte jednorázové náklady oproti opakovaným nákladům. Ve většině případů poskytují vašemu týmu vyšší hodnotu dostupné nástroje.

V případě, že je to praktické, používejte nástroje s minimem kódu, bez kódu a AI. Nástroje s minimem kódu a bez kódu šetří zkušeným vývojářům čas tím, že jim umožňují 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, přispívat k provozu úlohy. Nástroje AI vám můžou pomoct s vývojem, revizemi 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 tým vývoje úloh synchronizovaný a podporuje průběžné doručování. Definujte zásady pro větev pro ochranu důležitých větví, jako je hlavní větev. Další informace najdete v tématech Přijetí strategie větvení Gitu a Zásady a nastavení větvení.

Vyhodnocení metrik pro kvantifikaci efektivity vývoje

Týmy pro vývoj softwaru a kontrolu kvality se můžou zlepšit jenom v případě, že dokážou kvantifikovat svou efektivitu. Aby bylo možné kvantifikovat efektivitu, musí identifikovat metriky, které měří rychlost vývojářů , a definovat klíčové ukazatele výkonu. Příklady těchto metrik:

  • Frekvence nasazení: Počet nasazení, která každý vývojář nasadí každý den.

  • Doba potřebná k přechodu úlohy nebo uživatelského scénáře z backlogu do produkčního nasazení.

  • Střední doba do vyřešení: Průměrná doba strávená opravou chyb nebo vad v kódu.

  • Četnost selhání změn: Procento změn, které způsobí selhání.

Abyste zúčastněným stranám a týmu úloh pomohli snadno sledovat rychlost, vizualizujte klíčové ukazatele výkonu pomocí řídicích panelů nebo jiných nástrojů pro vytváření sestav.

Standardizace způsobu, jakým tým úloh píše, kontroluje a dokumentuje kód

Standardizujte způsob, jakým tým úloh píše, kontroluje a dokumentuje kód pomocí průvodce správným stylem. Standardní styl usnadňuje spolupráci a pomáhá při nasazování nových vývojářů. Aby mohli noví vývojáři pracovat efektivně, musí vědět, jak tým úloh funguje. Průvodce stylem s jasně definovanými standardy může usnadnit proces jejich trénování. V průvodci správným stylem definujte standardy pro vývojové jazyky, knihovny, architektury a další konvence.

Pokud je to praktické, použijte k vynucení standardů formátování kódu nástroje. Sada Visual Studio například nabízí několik nástrojů , které kontrolují styl, kvalitu, udržovatelnost, návrh a další problémy v kódu. Pro infrastrukturu jako kód (IaC) můžete použít Checkov nebo Terrascan pro Terraform.

Aby byla zajištěna konzistence a nedocházelo k případným nejasnostem, měl by průvodce stylem 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é chtějí členové týmu úlohy přidat do seznamu standardních, implementujte proces pro použití těchto nástrojů v sandboxu nebo nižším prostředí. Otestujte jejich životaschopnost a v případě potřeby nahraďte stávající technologie.

Záznamy rozhodnutí o architektuře (ADR) použijte k uchování historických záznamů o rozhodnutích týmu úloh o návrhu. Adrs pomáhají vašim týmům udržet si přehled o úlohách. Pomáhají také novým členům týmu seznámit se s rozhodnutími o návrhu, která se dělají během životního cyklu úlohy. Ujistěte se, že se žádosti o správu verzí řídí.

Do automatického řešení sporů patří:

  • Konkrétní nástroje a technologie, například sql nebo NoSQL, které si váš tým zvolí.

  • Důvody pro rozhodnutí vašeho týmu

  • Další možnosti, které byly zvažovány, což pomáhá kontextualizovat konečné rozhodnutí.

  • Funkční a nefunkční požadavky, které jsou zohledněny při rozhodování.

  • Kontext rozhodovacího procesu, jako je problém, který byl vyřešen.

Implementace standardů pro řešení technického dluhu

Osvojte si, že technický dluh je záměrný a nezbytný pro dodávky vašeho týmu úloh. Toto myšlení motivuje váš tým k pravidelnému zvažování a řešení technického dluhu, aby se zabránilo kumulaci. Technický dluh vyřešte jako pravidelně se opakující úkol v backlogu.

Předpokládejme například, že váš tým je standardizovaný na knihovně. Postupem času budete muset přepnout na jinou knihovnu, abyste v úloze měli nové funkce. Tento přechod může vést k technickému dluhu. Přechody, jako je tento, můžou často opustit tým úloh podporující dvě technologie, protože jejich přechod není zcela plynulý. Tým úloh musí určit prioritu dokončení přechodu, protože když úloha dosáhne nové funkce, jsou zúčastněné strany spokojené a s menší pravděpodobností zvažují technický dluh.

Standardizace způsobu použití správy verzí u artefaktů

Standardizujte způsob použití správy verzí na artefakty a způsob interního a externího zveřejnění správy verzí. Například klientské systémy by měly v uživatelském rozhraní zveřejnit svou spuštěnou verzi. Tato technika je užitečná, když tým úloh řeší problémy, protože zákazník může snadno sdělit, kterou verzi používá. Rozhraní REST můžou zpřístupnit 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í osvědčených vzorů návrhu aplikací zajistíte, že vaše aplikace bude spolehlivá, výkonná a zabezpečená. Pomocí těchto vzorů ušetříte čas a úsilí v porovnání s vývojem vlastních řešení pro vaši aplikaci. Zvolte vzory, které budou pro vaše úlohy 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 shift-left k testování

Implementujte k testování přístup založený na posunu vlevo tím, že testování jednotek provedete v rané fázi a často v průběhu celého 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 s přístupem s posunem doleva, zvažte následující principy:

  • Pište testy na nejnižší možné úrovni. Upřednostňování testů s nejmenším množstvím externích závislostí a spouštění testů v rámci sestavení

  • Testy pište jednou a spouštějte je všude, včetně produkčního prostředí. Pište testy, které můžete spouštět v každém vývojovém prostředí bez zohlednění faktorů specifických pro jedno prostředí, jako jsou šifrované tajné kódy nebo konfigurace.

  • Navrhněte úlohu pro testování. Při vývoji aplikace si nastavte testovatelnost jako požadavek.

  • Zacházet s testovacím kódem jako s kódem aplikace. Použijte stejné standardy kvality a vývoje pro 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 vlastnictví testu, které je založené na vlastnictví úloh. Váš tým úloh vlastní testování a neměl by se při testování kódu spoléhat na jiné týmy.

  • Co nejvíce automatizujte testy. Automatizovaný kód snižuje zatížení vašeho týmu úloh a vynucuje konzistentní kvalitu.

Podrobné pokyny k implementaci testovací strategie DevOps najdete v tématu Testování posunu 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ů

Osvědčeným postupem pro správu a uspořádání prostředků Azure je implementace zásad označování a pojmenování. Zásady označování a vytváření názvů pomáhají identifikovat, klasifikovat a seskupovat prostředky na základě společ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 vytváření názvů patří:

  • Poskytují konzistenci a přehlednost pro identifikaci a správu prostředků a usnadňují zjišťování a vyhledávání v Azure Portal, PowerShellu, rozhraní příkazového řádku a rozhraních API.
  • Umožňují filtrování a seskupování 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 dojde k incidentu zabezpečení, 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í konvencí vytváření názvů pro cloudové prostředky najdete v tématu Definování zásad vytváření názvů. Další informace o tom, jak použít značky metadat u cloudových prostředků, 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í spolupráce, efektivního a konzistentního vývojového postupu. Azure DevOps obsahuje následující řešení:

    • Azure Pipelines poskytuje služby sestavení a vydání pro podporu CI/CD vašich aplikací.

    • Azure Boards je webový nástroj pro správu práce, který podporuje agilní postupy, jako jsou Scrum a Kanban.

    • Azure Repos je nástroj pro správu verzí, který podporuje distribuovaný systém správy verzí Git 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 funkce potřebné pro plánované ruční testování, testování přijetí uživatelem, průzkumné testování a shromažďování zpětné vazby od zúčastněných stran.

    • Azure Artifacts umožňuje vývojářům efektivně sdílet kód a spravovat balíčky.

  • GitHub Actions pro Azure je nástroj, který můžete použít k automatizaci procesů CI/CD. Integruje se přímo s Azure, aby se zjednodušila nasazení. Můžete vytvořit pracovní postupy, které sestavují a testují každou žádost o přijetí změn do úložiště, nebo můžete nasadit 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ů Kanbanu, sestav, řídicích panelů a dalších funkcí.

  • Mezi nástroje s nízkým kódem a bez kódu patří:

  • Šablony Azure Resource Manager a Bicep jsou nativní nástroje Azure, které můžete použít k nasazení IaC. Terraform je další nástroj IaC podporovaný 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 dvojice programátorů a při psaní kódu poskytuje návrhy stylu automatického dokončování. Copilot je k dispozici jako rozšíření v sadě Visual Studio a několika dalších vývojových nástrojích.

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

Kontrolní seznam provozní efektivity

Projděte si kompletní sadu doporučení.