2023-07-20 10:01 Doba čtení: 19 min

Platformové inženýrství vs DevOps: Jak se liší?

Platformní inženýrství a DevOps jsou dvě odlišné oblasti, které se zaměřují na optimalizaci vývojových procesů softwaru. Ačkoli oba směry usilují o efektivnější tvorbu produktů, každý z nich k tomu přistupuje jiným způsobem.

DevOps praktiky pomáhají posilovat spolupráci mezi vývojovými a provozními týmy. Na druhé straně, platformní inženýrství se věnuje tvorbě a údržbě centralizované platformy, kde týmy DevOps mají k dispozici automatizované, samoobslužné a opakovaně použitelné nástroje a pracovní postupy.

V tomto článku prozkoumáme platformní inženýrství a DevOps, včetně jejich funkcí a výhod. Zaměříme se také na rozdíly mezi těmito dvěma disciplínami a jejich budoucí vývoj.

Co je platformní inženýrství

Platformní inženýrství je o navrhování, budování a správě infrastruktury pro vývoj softwaru, s cílem zlepšit uživatelský zážitek a produktivitu vývojářů. Poskytuje sdílené, samoobslužné a opakovaně použitelné nástroje, které jsou vývojářům dostupné z jednoho centrálního místa.

Platformní inženýři se soustředí na vytváření a údržbu základních platforem, nástrojů a procesů, které podporují vývoj softwaru. To přispívá ke zvýšení spolehlivosti a škálovatelnosti vývojové infrastruktury, a tím i k rychlejšímu dodávání softwarových produktů.

V praxi se vývojové procesy, technologie a nástroje vyvíjejí v souladu s růstem a složitostí produktu. Platformní inženýrství zajistí, že vývojové procesy a nástroje se budou průběžně vyvíjet s tím, jak se produkt rozrůstá.

To zahrnuje řešení problémů, jako jsou požadavky na testování, ukládání dat, dodržování regulačních norem a další. Tento přístup zajišťuje, že vše potřebné k splnění nových požadavků je k dispozici s předstihem.

Inženýři platformy obvykle navrhují, vytvářejí a spravují nástroje a pracovní postupy, které vývojáři potřebují k efektivnější práci a rychlejšímu dodávání aplikací. Díky samoobslužnému přístupu mohou vývojáři volně využívat všechny nástroje a možnosti bez závislosti na týmech infrastruktury a provozu.

Například vývojáři nemusí neustále žádat o schválení při spouštění nového pracovního prostředí nebo izolovaného vývojového prostředí. V praxi může schvalovací proces vývoj zpomalit a vést k neefektivnímu vývoji produktu.

Samoobslužný přístup řeší tyto a další problémy a umožňuje vývojářům téměř okamžitě přistupovat k široké škále funkcí a možností.

Jak se platformní inženýrství vyvíjí

Platformní inženýrství vytváří sadu strukturovaných služeb, procesů, nástrojů a dalších zdrojů, které mohou vývojáři softwaru využívat bez nutnosti je přímo spravovat nebo jim hlouběji rozumět. Tato disciplína řeší širokou škálu vývojových potřeb.

S růstem složitosti softwarových aplikací a vývojové infrastruktury je pro většinu vývojářů softwaru obtížné držet krok s množstvím proměnlivých faktorů. Od vývojářů se tak vyžaduje správa infrastruktury, na kterou však nemají dostatečné dovednosti ani zdroje.

Pokud týmy řeší problémy, které přesahují jejich kapacitu, produktivita klesá a pravděpodobnost chyb se zvyšuje. Platformní inženýrství se ukazuje jako efektivní řešení, které může zlepšit uživatelský zážitek vývojářů a zrychlit dodávání produktů. Platforma poskytuje přístup k interním, ověřeným, samoobslužným a opakovaně použitelným nástrojům a pracovním postupům.

Platformní inženýrství vytváří interní vývojovou platformu, kterou mohou vývojáři softwaru používat k tvorbě svých produktů. Platforma zahrnuje veškeré technologie a nástroje, které jsou vzájemně propojeny, a vytvářejí tak centralizovanou sadu samoobslužných nástrojů a procesů.

Tato inženýrská praxe využívá širokou škálu nástrojů, které vývojářům umožňují svobodně si vybírat, co chtějí.

Zdroj obrázku: Platformengineering.org

Po vytvoření platforma tvoří standardní cestu, kterou mohou týmy DevOps používat při vytváření svých produktů. Nabízí samoobslužnou infrastrukturu, kde si vývojáři mohou vytvářet vývojové prostředí s nástroji, které potřebují, bez nutnosti čekat na schválení.

Obecně lze platformní inženýrství chápat jako další fázi DevOps, která může velkým společnostem pomoci vyvinout samoobslužné a opakovaně použitelné konfigurace a standardy, které následně nabízejí jako interní produkty. Platformní inženýrství představuje krok vpřed v DevOps a umožňuje vývojářům snadno dodržovat postupy DevOps, i když se může lišit mezi jednotlivými organizacemi.

Výhody interních vývojových platforem

Platformní inženýrství nabízí širokou škálu výhod a společnosti by se neměly vyhýbat jeho implementaci. Mezi hlavní výhody patří:

  • Zrychlení dodávání softwarových aplikací, což umožňuje podnikům včas realizovat obchodní hodnotu.
  • Poskytování opakovaně použitelných nástrojů se samoobslužnými funkcemi a automatizovanými infrastrukturními operacemi, což zlepšuje produktivitu a uživatelské zkušenosti vývojářů, standardní postupy DevOps a bezpečný a škálovatelný vývojový proces.
  • Zrychlení vývoje softwaru. Výsledné interní vývojové platformy nabízejí automatizované procesy a samoobslužnou infrastrukturu, která pomáhá snižovat plýtvání časem a byrokracii, a tím zvyšovat produktivitu.
  • Zvýšení míry specializace a zaměření: Umožňuje vývojářům soustředit se na vývoj (což je jejich hlavní odbornost); v praxi jsou CI/CD procesy, infrastruktura a distribuované nasazení komplexní systémy, které vyžadují vysoce specializované dovednosti. S platformním inženýrstvím však vývojáři nemusí těmto systémům rozumět a mohou se soustředit na vývoj softwaru místo toho, aby se snažili porozumět základní infrastruktuře.

Co je DevOps

DevOps je přístup, který se snaží zvýšit frekvenci a efektivitu vydávání softwaru. Eliminuje bariéry mezi týmy a zároveň podporuje jejich spolupráci.

Tato metoda vývoje softwaru využívá automatizační nástroje a postupy, nepřetržité monitorování, integraci, nepřetržité dodávání, testování, správu konfigurace a správu incidentů k podpoře různých procesů v rámci CI/CD potrubí.

Vývojáři spolupracují s provozním týmem na zkrácení doby potřebné k sestavení a pomáhají společnostem rychle a často uvádět na trh nové produkty a funkce.

Konečným cílem přístupu DevOps je automatizovat a zkrátit zpětnou vazbu a cyklus vývoje softwaru. Zefektivňuje fáze vývoje softwaru, jako je plánování, tvorba, sestavování, konfigurace, monitorování a ověřování.

Výhody postupů DevOps

DevOps poskytuje širokou škálu výhod. Některé z nich zahrnují:

  • Rychlejší vývoj a nasazení softwaru a funkcí
  • Vylepšené a stabilní pracovní prostředí
  • Vyšší kvalita produktů
  • Nepřetržité dodávky softwarových produktů a funkcí
  • Lepší, spolehlivější a rychlejší techniky řešení problémů
  • Snížení nákladů na vývoj softwaru

Platformní inženýrství vs. DevOps

Níže jsou uvedeny některé z klíčových rozdílů mezi platformním inženýrstvím a DevOps.

Platformní inženýrství DevOps
Platformní inženýrství vytváří interní vývojovou platformu, která minimalizuje potřebu koordinace. Postupy DevOps mají za cíl zlepšit koordinaci a spolupráci mezi vývojáři a provozními týmy.
Tým DevOps si často vybírá nástroje, které jim pomohou dosáhnout jejich cílů. Vytváří samoobslužnou platformu pro nástroje, procesy a pracovní postupy DevOps. Disciplína, která týmům DevOps poskytuje škálovatelnou, centralizovanou samoobslužnou platformu pro jejich pracovní postupy a nástroje.
Zlepšuje spolupráci mezi vývojovými a provozními týmy. Organizace může implementovat platformní inženýrství pouze po úspěšném nasazení prostředí DevOps.
Společnosti začínají s DevOps před implementací platformního inženýrství, a nikoli naopak. Definuje ověřené a osvědčené nástroje a pracovní postupy, které by týmy DevOps měly používat na základě potřeb vývojářů.
Podílí se na fázích vývoje a životního cyklu operací, jako je plánování, kódování, sestavování, testování, provoz, monitorování, nasazení a vydání softwaru a funkcí. Pracuje a podporuje interní týmy.
Přímo vydává softwarové produkty a funkce zákazníkům a dalším externím uživatelům. Nepracuje na obchodních projektech, ale vytváří a udržuje platformu, kterou týmy DevOps vyžadují.
Podílí se pouze na fázích nasazení, provozu a monitorování životního cyklu DevOps. Týmy DevOps mohou brát a pracovat na obchodních projektech při vývoji svého softwaru.

Obvykle se kombinace nástrojů v interní vývojové platformě může lišit mezi jednotlivými prostředími.

Typické nástroje pro platformní inženýrství:

  • Kubernetes
  • Crossplane
  • GitLab CI
  • Backstage
  • ArgoCD

Nástroje DevOps zlepšují spolupráci, automatizaci a další procesy, které zvyšují kvalitu produktů a rychlost dodání. Díky dostupnosti nástrojů a odborných znalostí mnoho organizací přijalo DevOps. V praxi týmy využívají sadu nástrojů v různých kombinacích.

Mezi oblíbené nástroje patří:

  • Jenkins
  • Docker
  • Puppet
  • Gradle
  • CircleCI
  • Buddy
  • Git
  • Github
  • Chef
  • Kubernetes
  • Ansible
  • Terraform

Platformní inženýrství se objevuje, když DevOps dospívá a rozšiřuje se

V současnosti se platformní inženýrství stává relevantní, protože DevOps dospívá a rozšiřuje se. Zdá se, že tato disciplína představuje další fázi ve vývoji DevOps. Jelikož se DevOps neustále vyvíjí a dosahuje své zralosti, zdá se, že vývoj platformy bude dalším logickým krokem. S tím, jak se rozšiřuje, se objevují nové výzvy a příležitosti.

Platformní inženýrství poskytuje samoobslužné a opakovaně použitelné procesy a nástroje, takže vývojáři nemusí neustále hledat nové způsoby, jak věci dělat. V ideálním případě to znamená, že nemusí vytvářet nové nástroje, ale mohou používat to, co se osvědčilo. Praktiky DevOps obvykle sledují určitou cestu k zralosti.

Model vyspělosti DevOps ukazuje celou cestu vývoje DevOps. Model vyspělosti DevOps pomáhá identifikovat tři věci:

  • Posouzení současného stavu a schopností postupů DevOps.
  • Identifikaci slabých míst, která vyžadují zlepšení.
  • Definici kroků, které je třeba podniknout k dosažení cílových cílů DevOps.

Organizace může posoudit své schopnosti z hlediska kultury a strategie, automatizace, struktury a procesů a nakonec i spolupráce a sdílení.

V ideálním případě model vyspělosti DevOps zahrnuje následujících pět transformačních kroků:

  • Počáteční fáze: Zahrnuje rozdělení tradičních vývojových sil na vývojářské a provozní týmy.
  • Řízená fáze: Změna myšlení vývojových týmů s cílem zaměřit se na agilní vývojové postupy. Tato fáze také zahrnuje nasazení počáteční automatizace operací a podporu spolupráce mezi týmy Dev a Ops.
  • Definovaná fáze: Cesta transformace začíná pomocí definovaných procesů a automatizovaných postupů.
  • Měřená fáze: Vyhodnocování a neustálé zlepšování procesů a automatizovaných pracovních postupů.
  • Optimalizovaná fáze: Organizace nyní může vidět výhody DevOps a řešit případné nedostatky za účelem zlepšení efektivity.

S tím, jak DevOps dospívá a rozšiřuje se, dostává se do měřených a optimalizovaných fází, kdy organizace začíná analyzovat postupy a nástroje. To zahrnuje kontrolu, jak týmy používají nástroje pro řešení stejného problému a poskytuje příležitost identifikovat problematické oblasti a neefektivitu.

K optimalizaci systémů mohou organizace využívat platformní inženýrství k vytváření samoobslužných opakovaně použitelných nástrojů, které mohou obsluhovat z centrálního místa. Tím umožní týmům přístup ke stejným nástrojům a procesům namísto vytváření vlastních.

Může platformní inženýrství ovládnout DevOps?

Platformní inženýrství je v podstatě implementací postupů a konceptů DevOps, nikoli jeho náhradou. Obecně je cílem DevOps využívat procesy, nástroje a rámce spolupráce pro zlepšení kvality softwaru a životního cyklu vývoje. Využívá různé postupy a nástroje pro zefektivnění vývoje, monitorování a správy.

Platformní inženýrství spočívá ve spojení těchto procesů, nástrojů a osvědčených postupů s cílem vytvořit opakovaně použitelné, samoobslužné služby a nástroje, které mohou využívat různé týmy v rámci celé organizace.

Platformní inženýrství v podstatě zvyšuje produktivitu vývojářů zajištěním konzistence a efektivity. Praxe poskytuje snadno použitelnou platformu pro vývoj a tvorbu produktů. Platforma nabízí samoobslužné opakovaně použitelné nástroje s automatizovanými infrastrukturními procesy.

Vývojáři mají přístup k opakovaně použitelným konfigurovatelným komponentám a službám. V ideálním případě platforma nabízí výhody, jako jsou standardizované výrobní komponenty, nástroje a automatizované procesy.

Pokud například každý produktový tým chce implementovat službu správy tajných klíčů, vznikne v organizaci mnoho různých mechanismů. Místo toho, aby každý tým vytvářel vlastní mechanismus, může platforma poskytnout službu a nabízet ji z centrálního místa.

To přináší výhody, jako je standardní produkt, opětovná použitelnost a snížení časové ztráty. Výsledkem je dosažení opakovatelnosti, která je jedním ze základních prvků modelu DevOps Maturity.

Budoucnost platformního inženýrství a DevOps

Budoucnost platformního inženýrství i DevOps vypadá nadějně. Současné implementace platformního inženýrství již přinášejí různé výhody a ty se budou s vývojem a dospíváním disciplíny zvyšovat.

Díky tomu bude i nadále usnadňovat práci týmů DevOps a dá jim tak příležitost soustředit se více na tvorbu aplikací místo toho, aby se snažily porozumět infrastruktuře a produkčnímu prostředí.

I když se primárně zaměřuje na běhové prostředí, jako je infrastruktura (Kubernetes atd.), softwarový release kanál a další základy, nabízí také další sekundární funkce, jako je správa certifikátů a tajných klíčů, praktiky chaosového inženýrství, automatické zotavení po havárii a pravděpodobně zahrne další s tím, jak se bude vyvíjet.

Některé společnosti se mohou rozhodnout pokračovat v DevOps bez platformního inženýrství. Časem se však mohou stát nekonkurenceschopnými, zejména pokud mají několik týmů DevOps, které používají různé mechanismy k provádění stejného úkolu.

Platformní inženýrství podporuje standardizaci životního cyklu vývoje a jeho využití pravděpodobně poroste s tím, jak se bude vyvíjet a začleňovat další oblasti nad rámec nástrojů a procesů. Bude se neustále měnit s vývojem procesů, postupů, technologií a dalších částí této disciplíny.

Za účelem zvýšení efektivity a kvality produktů by organizace měly zvážit platformní inženýrství, které týmům nabízí přístup ke standardním samoobslužným produktům z centralizovaného místa. Tím se urychlí vývoj a zároveň se zlepší obchodní hodnota a výnosy. Společnost Gartner předpovídá, že přibližně 80 % společností bude mít do roku 2026 vytvořené týmy pro vývoj platforem.

Závěr

Platformní inženýrství je nově vznikající a užitečná disciplína pro zlepšování procesů dodávání softwaru bez obětování bezpečnosti, efektivity a kvality. Vývoj automatizuje a zjednodušuje poskytování a správu zdrojů, což vývojářům umožňuje rychleji dodávat kvalitní software a funkce a přinášet tak svým zákazníkům hodnotu.

Obecně lze říci, že platformní inženýrství je efektivní způsob, jak rozšířit a uvolnit výhody DevOps.

Můžete si také přečíst o automatizaci DevOps.

Petra Kovářová
Autor
Czechia

Sleduje mobilní technologie, Android/iOS a praktické návody pro uživatele.

Předchozí článek
12 bezplatných aplikací pro identifikaci rostlin pro Android k dekódování zeleného světa
Další článek
11 způsobů, jak se zotavit z problémů s doručováním e-mailů