Základní aspekty implementace platformy

Dokončeno

Technologie platforem je multioborový přístup, který kombinuje softwarové inženýrství, návrh systému a efektivitu provozu a vytváří spolehlivou a škálovatelnou infrastrukturu pro vytváření a nasazování aplikací. Ve své podstatě zahrnuje nejen vytváření robustních platforem, ale také vytváření samoobslužného prostředí, které umožňuje vývojovým týmům a zároveň zajistit soulad s obchodními cíli. Úspěšná technická iniciativa platformy začíná správným týmem a jasně rozumí problému. Tato nadace umožňuje vývoj systémů, které zjednodušují provoz, snižují tření a umožňují vývojářům soustředit se na vytváření aplikací místo správy infrastruktury.

Jakmile je tým na místě, přesune se fokus na automatizaci oblastí s vysokým zatížením, identifikaci ručních opakovaných úloh, které je možné automatizovat, aby se ušetřil čas a snížil počet chyb. Za tímto účelem je zásadní inventář stávajících prostředků, který týmům umožňuje centralizovat nástroje a služby a usnadnit jejich správu a škálování. Další krok se označuje jako zasklení zpevněných cest, které zahrnují vytváření standardních pracovních postupů a prostředí, které zajišťují konzistenci napříč projekty. Potom nasazení prostředí jako služby pomáhá dále zjednodušit procesy, což týmům umožňuje rychle aktivovat prostředí na vyžádání. V tomto okamžiku se primárním cílem stává optimalizace samoobslužných vývojářských prostředí, což vývojářům umožňuje nezávisle spravovat pracovní postupy a zároveň zajistit, aby měli nástroje a podporu potřebné k úspěchu. Tento přístup transformuje způsob interakce vývojových týmů s infrastrukturou, vytvoření agilního a vysoce výkonného prostředí pro vytváření a doručování aplikací.

Diagram znázorňující úlohy přípravy platformy, které se mají provést

Kromě jasně definovaného prováděcího plánu, a nikoli přístupu k návrhu platformy jako jediného, širokého konceptu, může být užitečné ho rozdělit do čtyř hlavních oblastí pro usnadnění procesu implementace:

  • Technické systémy, které zahrnují nástroje a služby, které umožňují vývoj, jako je CI/CD, správa balíčků, cloudová programovací prostředí, skenery kódu a lintery, a také asistenti umělé inteligence (AI), jako je GitHub Copilot.
  • Aplikační platforma, která se skládá z kurátorované volby služeb používaných jako stavební bloky běžně používaných zásobníků aplikací (například Azure Policy, Azure Key Vault, Azure Container Apps nebo Cosmos DB).
  • Šablony aplikací, které poskytují dobře definované šablony specifické pro organizaci, které usnadňují zřizování úloh a odpovídají osvědčeným postupům.
  • Možnosti samoobslužných služeb pro vývojáře, které vývojářům umožňují samostatně spravovat pracovní postupy a zároveň zajistit zásady správného řízení a dodržování předpisů podle standardů organizace.

Začleněním těchto oblastí do strategie implementace snížíte pracnost vývojářů, podpoříte inovace a vytvoříte bezproblémové vývojové prostředí.

Diagram znázorňující strategii implementace, včetně technických systémů, aplikační platformy, šablon aplikací a možností samoobslužných služeb pro vývojáře

Vytvoření týmu

V organizaci technické platformy je podpora správné kultury nezbytná pro dlouhodobý úspěch. Přechod z reaktivní na proaktivní kulturu je klíčový, kde týmy platformy zodpovídnou za vytváření a údržbu nástrojů pro podporu organizace. Tento posun je zásadní pro snížení sila znalostí a přerušení provozu. Úspěch úsilí o přípravu platformy je v souladu s investičními schopnostmi popsanými v modelu schopností platformy, který zdůrazňuje přechod mezi fázemi organizační vyspělosti – od prozatímního až po optimalizaci. V prozatímní fázi společnosti rozpoznávají potřebu přípravy platforem, ale mohou mít plnou soulad mezi vedením a vývojovými týmy. S tím, jak organizace zralí, podporují výkonné nákupy a kulturní posuny více spolupráce, inovativní prostředí, ve kterém jsou týmy platforem zmocněny řídit smysluplnou změnu, což organizacím umožňuje efektivně škálovat.

Technický tým platformy vyžaduje různorodou sadu technických dovedností a myšlení zaměřené na produkt, které umožňuje vytvářet a škálovat spolehlivé, efektivní a zabezpečené interní vývojářské platformy. Očekává se, že inženýři platformy budou mít zkušenosti v několika klíčových oblastech, včetně orchestrace kontejnerů (například Kubernetes), kanálů CI/CD (například GitHub Actions, Azure Pipelines) a monitorovacích nástrojů (například Azure Monitor, Prometheus, Grafana). Pro automatizaci zřizování infrastruktury je důležité odborné znalosti nástrojů infrastruktury jako kódu (IaC), jako je Terraform a Bicep. Technici platformy by navíc měli být obeznámeni s psaním kódu ve skriptovacích jazycích, jako je Python, PowerShell nebo Bash, aby umožnili automatizaci a integraci napříč systémy. I když může být talentový fond pro inženýry platforem náročný, úspěšný tým by měl kombinovat odborné znalosti z různých prostředí, jako je vývoj softwaru, SRE (Site Reliability Engineering) a provoz IT.

Automatizace oblastí s vysokým zatížením

Automatizace vysoce toilových oblastí obvykle představuje první zpevněnou cestu na cestě, která vývojářům umožňuje samoobslužné funkce. Pokud ho chcete implementovat, začněte tím, že identifikujete časté procesy, náchylné k chybám nebo procesy náročné na práci, zejména ty, které jsou svázané s ručními nebo servisními operacemi. Dále vyhodnoťte faktory, jako je frekvence procesů, složitost a auditovatelnost, a určete prioritu cílů automatizace. Implementace infrastruktury jako kódu (IaC) v kanálech průběžného doručování (CD) nejen zjednodušuje nasazování aplikací, ale také umožňuje dynamické zřizování sdílené infrastruktury a nástrojů. Používejte flexibilní platformy CI/CD, jako jsou GitHub Actions a Azure DevOps nebo řešení GitOps, jako jsou Flux a Argo CD, abyste snížili kritické body a posílili týmy.

Přechod na vzor "Vše jako kód" (EaC) v průběhu času vytvoří zabezpečenou a opakovatelnou automatizační architekturu s využitím centralizovaných úložišť Git pro šablony a konfigurace IaC (včetně šablon Bicep a Azure Resource Manageru, souborů manifestu Terraformu a grafů Helm). Tato úložiště spravovaná provozním týmem umožňují vývojářům odesílat žádosti o přijetí změn, které se před sloučením bezpečně kontrolují a auditují. Stejné nástroje CI/CD pak můžou zřizovat a konfigurovat jakoukoli infrastrukturu, nástroje nebo služby – bez ohledu na to, jestli jsou specifické pro aplikaci nebo sdílené. Tento přístup podporuje škálovatelnost, samoobslužnou integraci vývojářů a bezproblémovou integraci s procesy zásad správného řízení a zajišťuje, aby technologie platforem odpovídala cílům organizace a současně podporovala provozní flexibilitu.

Přístup "Vše jako kód" se týká reprezentace téměř jakéhokoli prostředku nebo procesu jako souboru v zabezpečeném úložišti Git. Robustní funkce zabezpečení Gitu, jako je historie potvrzení, řízení přístupu, žádosti o přijetí změn a ochrana větví, zajišťují transparentnost, umožňují kontroly spolupráce a před integrací změn vynucují automatizované kontroly. V kombinaci se systémy CI/CD to vytváří všestrannou, auditovatelnou a zabezpečenou architekturu pro správu infrastruktury, nástrojů a procesů.

Inventář a centralizace

S růstem organizací se objem a složitost jejich technických prostředků rozšiřuje, což často vede k duplikaci úsilí, osamocených projektů a plýtvání zdroji. Centralizace inventáře a sledování prostředků je kritickým krokem při navrhování platforem k řešení těchto problémů. Inventarizační systém umožňuje týmům sledovat a spravovat prostředky, jako je kód, rozhraní API, kontejnery, virtuální počítače, oprávnění a další. Tento proces nejen zlepšuje zásady správného řízení, ale také podporuje opakované použití a zlepšuje zjistitelnost a umožňuje týmům pracovat efektivněji a efektivněji.

Centralizované inventáře hrají zásadní roli při zlepšování zásad správného řízení označováním a uspořádáním prostředků. Správné označování zajišťuje, že jsou prostředky přidružené k příslušným vlastníkům nebo týmům, což usnadňuje správu životního cyklu a pochopení potenciálního dopadu změn. Lepší zjistitelnost je další klíčovou výhodou, protože snižuje technické rozrůstání tím, že pomáhá týmům najít a znovu použít stávající prostředky, což brání zbytečnému duplikování úsilí. Centralizace inventarizací pomáhá organizacím optimalizovat prostředky tím, že identifikuje a čistí zastaralé nebo zbytečné prostředky, což vede ke snížení plýtvání a zvýšení úspor nákladů.

Různé nástroje podporují sledování inventáře a majetku, přičemž každý z nich poskytuje různé aspekty technického ekosystému. Prostředí nasazení Azure (ADE) například nabízí způsob, jak sledovat složitou infrastrukturu vytvořenou prostřednictvím infrastruktury jako kódu (IaC). Podobně Azure API Center umožňuje vývojářům efektivně zjišťovat a spravovat rozhraní API. Registry balíčků, jako jsou GitHub Packages nebo Azure Artifacts, nabízejí další hodnotu vylepšením zabezpečení dodavatelského řetězce a správou schválených balíčků a sad SDK.

Aby organizace dále zlepšily výhody inventarizačních systémů, mohou vytvořit relační vazby mezi prostředky a vytvořit komplexnější pohled na jejich ekosystém. Například mapování vztahů mezi definicí rozhraní API, jeho úložištěm kódu, přidruženými prostředími a zásadami správného řízení umožňují týmům spravovat prostředky s větší přesností.

Blaze zpevněné cesty

Analogie "zpevněná cesta" v oblasti přípravy platforem vyjadřuje rovnováhu mezi podporou inovací a poskytováním standardizovaných pokynů. Týmy můžou zpočátku provádět různé neformální cesty k dosažení svých cílů, experimentovat s různými nástroji a pracovními postupy. Týmy platforem v průběhu času sledují nejúčinnější a široce přijímané přístupy a převedou je na "zpevněné cesty" – optimalizované pracovní postupy, které jsou efektivní, uživatelsky přívětivé a přesvědčivé pro týmy, které mohou přijmout.

Tento proces, často popsaný jako "zpevněné cesty" , zahrnuje identifikaci běžných vzorů v týmových pracovních postupech a jejich transformaci na standardizovaná a škálovatelná řešení. Tyto cesty bezproblémově integrují požadavky na zabezpečení, osvědčené postupy architektury a dodržování předpisů a nabízejí bezproblémové a spolehlivé prostředí. Vývojáři těží z sníženého kognitivního zatížení, konzistentních rozhraní API pro integraci, modulárních funkcí, které je možné podle potřeby kombinovat a předvídatelný výkon, který odpovídá provozním cílům.

Model schopností platformy hraje v tomto procesu klíčovou roli a pomáhá organizacím určit, kdy přejít z neformálních cest na zpevněné. Identifikuje oblasti vyžadující standardizaci a poskytuje přehled o tom, jak efektivně škálovat tyto postupy. Tento strukturovaný přístup zajišťuje, že inovace se neutlumí a současně se soustředí na kvalitu, dodržování předpisů a výkon.

Přístup ke zpevněným cestám podporuje osvědčené postupy, aniž by byl příliš preskriptivní. Podporuje příspěvky komunity, což týmům umožňuje spolupracovat a tvarovat platformu a zároveň udržovat flexibilitu pro jedinečné případy použití. Díky vyvážení inovací a standardizace tato metodologie podporuje prostředí, ve kterém můžou týmy excelovat a současně zajistit konzistentní splnění požadavků organizace.

Diagram znázorňující zpevněnou cestu s nepodporovanou CI a CD

Diagram znázorňující zpevněnou cestu s zastaralou CI a CD

Nasazení prostředí jako služby

Nasazení prostředí jako služby je navržené tak, aby umožňovalo zabezpečené, standardizované a automatizované zřizování infrastruktury. Klíčovým principem tohoto přístupu je zachování identit a tajných kódů tak, aby k nim vývojáři přistupovali přímo. To vynucuje zásady správného řízení a současně zajišťuje, aby aktualizace infrastruktury zůstaly zabezpečené. Například prostředí nasazení Azure (ADE) tento model ilustruje tím, že podporuje oddělení rolí a centralizaci správy šablon IaC.

S ADE, inženýry platformy a provozními týmy společně vytvářejí a spravují katalog šablon pro konkrétní typy prostředí. Tyto šablony, doplněné o předem nakonfigurovaná nastavení, integrují spravované identity a řídí přístup na základě rolí. Vývojáři pak můžou pomocí kanálů CI/CD zřizovat infrastrukturu prostřednictvím nástrojů, jako je Azure CLI nebo Azure Developer CLI, aniž by potřebovali přímý přístup k citlivým přihlašovacím údajům nebo podkladovému předplatnému. Toto oddělení zajišťuje dodržování předpisů a zabezpečení při zachování produktivity vývojářů.

Diagram znázorňující pracovní postup Inženýr platformy s katalogem Dev Center, mapováním typů prostředí, portálem a kanály automatizovaného nasazení

I když se ADE nepoužívá, můžete použít stejné principy obecněji, protože infrastruktura jako kód (IaC) je zdroj obsahu ze zabezpečených, neměnných umístění a správy tajných kódů automatizovaná a izolovaná. Díky tomu, že těmto postupům umožní inženýrská platforma týmům nasadit konzistentní prostředí a současně udržovat organizační zásady správného řízení a provozní efektivitu.

Optimalizace prostředí samoobslužného vývojáře

Bezproblémové samoobslužné vývojářské prostředí je zásadní pro úspěch přípravy platforem, ale dosažení toho často vyžaduje, aby se uživatelé se schůzkou, kde jsou. Každá role – vývojáři, provoz a další – se přiklánějí ke konkrétním nástrojům a prostředím, které definují jejich pracovní postupy. Aby nové zkušenosti získaly přijetí, je důležité sladit s těmito stávajícími "centry závažnosti". Praktický přístup zahrnuje plánování více uživatelských rozhraní přizpůsobených nástrojům, které už se používají, což týmům umožňuje začít s jednoduchými vylepšeními, prokázat jejich hodnotu a vyvíjet se směrem k sofistikovanějším řešením, jak vznikají.

Místo vytváření úplně nových prostředí zvažte vylepšení a integraci existujících nástrojů. Platformy, jako jsou editory, integrovaná vývojová prostředí (IDE), sady DevOps, nástroje rozhraní příkazového řádku a prostředí s nízkými kódy, mají často modely rozšiřitelnosti, které umožňují přizpůsobení a rozšíření s minimální režií. Tento přístup snižuje údržbu, používá známé uživatelské prostředí a urychluje přechod. Například webová rozšíření IDE, jako jsou rozšíření integrovaného vývojového prostředí (IDE) vytvořená pro VS Code nebo vscode.dev, poskytují flexibilní výchozí bod kompatibilní s webem, který se dá škálovat na místní vývojová prostředí. Podobně rozhraní ChatOps v nástrojích, jako jsou Microsoft Teams nebo Slack, nabízejí intuitivní způsoby aktivace pracovních postupů automatizace a integraci s platformami CI/CD.

Pro organizace, které potřebují centralizované rozhraní, může investice do vlastního portálu pro vývojáře poskytovat dlouhodobé výhody, ale vyžaduje pečlivé plánování a prostředky. Řešení jako Backstage.io, sada nástrojů původně vyvinutá společností Spotify, nabízejí vysoce přizpůsobitelné portály, které můžou integrovat moduly plug-in a nástroje třetích stran a vytvářet dynamické centrum zaměřené na vývojáře. Bez ohledu na to, jestli začínáte s jednoduchými řešeními, jako jsou Power Pages , nebo vytváříte komplexní portál, je cílem zajistit škálovatelné uživatelsky přívětivé prostředí, které vývojářům umožní zajistit soulad s potřebami organizace.