DevOps 101 s Atlassian- základní stavební kameny

05.06.2017 | Obecné informace o pojmu DevOps, o vzniku a o tom, k čemu tento koncept slouží

Před pěti lety Marc Andreesen prohlásil, že software sžírá svět.
Koneckonců- jaká společnost se v dnešní době nezabývá software?

DevOps není pouze prací jednotlivce, je o spoluúčasti všech.

Co je to DevOps?

Fakta v bodech:

  • Moderní automobily dnes obsahují stovky milionů řádků kódu – to je mnohem víc než celý Facebook od Marka Zuckerberga  (cca 9,2 milionů na samotných stránkách)
  • Dokonce i proces doručování pizzy přešel na technologie- díky pokročilým mobilním aplikacím pro zadávání objednávek a sledování dodávek spol. Dominos Pizza zvýšil své pracovní síly o IT o 240%.
  • Nike proměňuje svojí obuv na plně integrovanou platformu tím, že propojuje boty s aplikacemi pro Fitness a životní styl. 

Zkrátka model old-school developmentu se již nedrží- zejména vzhledem k velkým poptávkám a velkému růstu v odvětví. Vývoj a operativní týmy pracují tradičně oddělené- a to je překážkou ve schopnosti rychle reagovat. Jako odpověď na tento diskutabilní vztah vzniklo DevOps- ozdobné označení pro jednoduchou myšlenku- zajištění lepší kooperace mezi operativními týmy a vývojem. DevOps podporuje lepší komunikaci a spolupráci aby procesy jako vývoj a testování, ale i release management fungoval pružněji, rychleji a spolehlivěji.

Místo dodávání velkých a neplánovaných vydání (např. jednou za 3-9 měsíců), jako je tomu u velkých společností, DevOps zaujímá postup k neustálému a pravidelnému release managementu ve formě malých přírůstkových aktualizací- tzn. přináší malá vylepšení pravidelně a neustále- často i několikrát denně.

Výsledky jsou oproti tradičnímu způsobu neočekávaně obrovské- ty přinášejí:

  • 30x častější nasazování
  • 60% vyšší míru úspěšnosti změn
  • 60x méně bugů
  • 160x rychlejší recovery proces

Společnosti, které praktikují myšlenky DevOps mají dvakrát větší pravděpodobnost, že překročí své cíle v oblasti ziskovosti a podílu na trhu.
(Puppet Labs’ 2015 State of DevOps Report)

Tyto výsledky nejsou omezeny pouze na velké podniky s týmy za miliardu dolarů. Můžete jich dosáhnout i vy sami, bez ohledu na to jak velký je tým. Faktorem č. 1 je týmová spolupráce. V Atlassian je klíčem k rychlejším a kvalitnějším verzím silný vztah mezi týmy dev a ops a správné nástroje a procesy na jejich podporu.

Takže jak je tomu u Atlassian a jak jsme začali?

Klíčem #1 úspěchu je týmová práce

DevOps a Atlassian

U některých distributorů „velkých krabicových řešení“ mají skutečně významné podněty nálepky „týmová kooperace“ a „spolupráce“ anebo „týmové vztahy“- ty naznačují potřebu pomoci několika lidí, aby posunuly produkt z nákupní police do pomyslného nákupního vozíku a ten směrem kupředu.

Tento tzv. „team-lift“ je vlastně analogie myšlenky DevOps- není to o člověku, ale o lidech a o kolektivu- a přesně o tom celé DevOps je.

U Atlassian, využíváme vlastní produkty, abychom porozuměli individuálním potřebám a nabídli další testování před vypuštěním produktu do světa mezi naše zákazníky.

Ve zkratce- my krmíme naše vlastní produkty.

Ukážeme si pokrytí jednotlivých kroků, ale i to, jak využíváme každé řešení.

Pro začátek si pojďme ukázat proces, který připomíná zamotaný preclík.

  1. Nejprve plánujeme funkce, které poskytneme našim zákazníkům. Software Confuence a JIRA používáme k lepší organizaci zpětné vazby od zákazníků a k souhrnu požadavků. Vytváříme Issues v JIRA a sledujeme stories  a epicy, které definujeme pro každý projekt zvlášť
  2. Poté sestavujeme software- tzn. že píšeme kód a provádíme testy. Bitbucket umožňuje vytvářet větev pro každou novou funkci, kterou potřebujeme vytvořit, ale také nám umožňuje psát kód paralelně, můžeme využít pull requesty a to umožňuje rychlejší code-review, dále v Bitbucket využíváme inline komentáře- abychom je viděli přímo u kódu
  3. Neustále integrujeme nové rozšíření a funkce zpět do master větve určené pro deploy. Bamboo je nám pomocníkem- automatizuje buildy, testy ale i release management dle našich požadavků. Vskutku urychluje proces od vývoje až do fáze předání- také jsme si oblíbili kombinaci společně využívat Docker a Bamboo, to přináší ještě o něco rychlejší proces.
  4. JIRA software release hub nám také umožňuje plnou viditelnost napříč větvemi, buildy, pull-requesty, ale také upozorňuje na deploy, takže můžeme dělat release s důvěrou a jistotou.
  5. Jakmile nasadíme novou funkci do produkce, je čas ji spustit a provozovat. V Atlassian jsou naši vývojáři plně zodpovědní za funkce, které vytvářejí, díky tomu JIRA Service Desk pomáhá rychleji sledovat a řešit problémy. Confluence využíváme ke správě běhu veškerých informací- knih, článků knowladge-base a dokumentaci.
  6. Poskytujeme našim vývojovým týmům nepřetržitou zpětnou vazbu (prostřednictvím zpráv, Issues atd.), Abychom mohli našim zákazníkům plánovat nové verze, opravovat chyby a poskytovat rychlejší a spolehlivější software. A díky JIRA Service Desk máme možnost vyžádat si zpětnou vazbu od zákazníků- a to jak od interních, tak i externích uživatelů

Super věc, kterou milujeme: Když vývojář zadá pull-request na code-review, Bitbucket automaticky aktualizuje stav Jira issue, které se k této úpravě vztahuje

V průběhu celého životního cyklu, HipChat je pomyslnou solí pro náš preclík. Přidává další vrstvu spolupráce na vrcholu našich procesů a technologií tím, že umožňuje našim týmům sledovat problémy a incidenty, ať už jsou kdekoli, prostřednictvím desktopů, mobilních aplikací a dokonce i wearables.

Tak, toto jsou základy DevOps.


Pro další informace o novinkách Atlassian a JIRA sledujte web www.myJIRA.cz.

Diskutujeme také na LinkedIn ve skupině Atlassian komunita CZ & SK.

V případě dotazů se obraťte na atlassian_zavináč_onlio.com nebo na tel. +420222744766


Pavel Novák,
Java Developer

Zdroje:

https://www.quora.com/How-many-lines-of-code-is-Facebook 

https://www.clearvision-cm.com/wp-content/uploads/2017/04/devops-ebook-final.pdf 
(„DevOps, Promote the philosophy across your organization“, Atlassian)

Zpět