Na ceste za DevOps

Viktor
Viktor Šulák
Jun 27, 2018
3 min read
devops

DevOps nie je len súhrn nástrojov, ktoré môžete použiť na dosiahnutie vyššej efektívnosti. Je to kultúrne hnutie, ktoré ovplyvňuje všetky aspekty tvorby produktov a vedie organizácie k inováciám a zmenám, ktoré ich môžu posunúť dopredu.

Existujú 3 hlavné oblasti, ktoré sa musia zosúladiť, aby bolo možnéDevOps aj reálne implementovať v organizácií. A práve na týchto troch pilieroch -ľudia, procesy a technológie - je postavený DevOps.

Ľudia

Každý produkt sa viaže na ľudí, ktorí ho vytvárajú, a preto je priDevOps potrebné, aby mali títo ľudia medzi sebou silné spojenie adokázali spolu dobre pracovať. Nie je možné, aby tím programátorov bojoval s operačným tímom a ten so sieťovým tímom. Je dôležité, aby všetcizdieľali svoje poznatky oprodukte a zabezpečili tak, že práca bude plynule prechádzať z jedného tímu na druhý až ku poslednej osobe - klientovi. DevOps ako myšlienkové hnutie začalo v roku 2009, kedy John Allspaw a Paul Hammond odprezentovali svojuznámu reč “10 nasadení za deň, spolupráca vývojárov a prevádzkarov vo Flickri”. Obaja v nej opísali to, ako ich tímy spolu úzko spolupracovali a tak vytvorili funkčný a úspešný produkt za veľmi krátky čas.

Každý člen tímumusí pochopiť, prečo jeho firmaimplementuje DevOpsa čo to pre neho vlastne znamená. Pre tím vývojárov (Dev) to znamená viac práce, pretože viac virtualizácie v infraštruktúre znamená, že majú viac práce s programovaním prostredia. Neznamená to však, že prevádzkový tím (Ops) tak stráca svoju prácu. Práve naopak, tento tím musí s programátormi pracovať ešte intenzívnejšie ako kedykoľvek predtým a spoločne usmerňovať vývoj produktu.

Oddelenie zabezpečenia kvality (QA) musí tiež úzko spolupracovať s tímom vývojárov s cieľom zabezpečiť, aby automatizované testy prebehli úspešne po tom, čo programátor vložil kód do VCS (Version Control System). Takýto typ testov sa môže aplikovať pri akejkoľvek fáze produktu, závisí od potreby a samotného testu.

devops

Procesy

Staré procesy vo firme musia byť upravené anahradené novými, aby mohli fungovať tak, ako pri DevOps majú. Procesy by totiž nemali stáť vceste ľuďom, ktorí sa snažia robiť veci rýchlejšie aefektívnejšie.

Model vodopádu (waterfall) je skvelým príkladom procesov, ktoré by mali byť nahradené. Vminulosti sa na úvodnom stretnutí sklientom sa zadefinoval produkt, ktorý sa vyvíjal niekoľko mesiacov bez akýchkoľvek zmien anakoniec tak klient dostal verziu produktu v1.0, ktorá spĺňala požiadavky zadefinované aaktuálne dávno pred dokončením. Vsúčasnosti sa trh mení príliš rýchlo na to, aby bolo niečo takéto správne avýsledný produkt úspešný.

Na skrátenie príliš dlhého obdobia medzi jednotlivými cyklami vývoja avydávania produktu sa zaviedla agilná metodológia (agile). Tie skracujú obdobia medzi fázami avďaka tomu vidí klient výsledky už na konci každého šprintu (fázy). Takto skrátené cykly vedú kefektívnejšiemu plánovaniu alepšiemu formovaniu produktu. Vykonávanie zmien produktu, ktorý je už hotový je výrazne náročnejšie a drahšie.

Lean metodológia pracuje ruka vruke sagile apomáha urýchľovať vývoj softvéru, pretože vraví vývojárom, že treba pridať funkcionalitu až keď je to nevyhnutné, aby zbytočne nedochádzalo k plytvaniu zdrojov.

Niektorí hovoria, že DevOps nahrádza agile, ale nie je to úplne pravda. DevOps ako taký je síce postavený na rovnakých myšlienkach, snaží sa ich ale tlačiť do ešte väčšieho extrému. Produkt sa vydáva aj niekoľko desiatok/stoviek krát za deň anielen každé dva týždne ako je to pri agilných metódach.Agile stále môžeme použiť na stupeň pred DevOps procesom, ktorý predstavuje rozhranie medzi biznisom asamotným vývojom.

devops agile
DevOps & Agile

Technológia

DevOps vo veľkej miere závisí na technológiách, keďže sa snaží automatizovať toho čo najviac. Každý krok procesu automatizácie má kdispozícií množstvo nástrojov, ktoré musia spĺňať mnoho požiadaviek, plniť si svoju prácu na 100% anavzájom dokonale spolupracovať. Medzi takéto technológie patria nástroje na budovanie automatizácie, automatické testovacie sady, virtualizácia atechnológie kontajnerov, nástroje na nasadenie (deployment), nástroje na monitorovanie amnoho ďalších.

devops automatizacia
Automatizácia | DevOps