devops

Na ceste za DevOps

devops

Na ceste za 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 pri DevOps potrebné, aby mali títo ľudia medzi sebou silné spojenie a doká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šetci zdieľali svoje poznatky o produkte 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 svoju zná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ímu musí pochopiť, prečo jeho firma implementuje DevOps a č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é a nahradené novými, aby mohli fungovať tak, ako pri DevOps majú. Procesy by totiž nemali stáť v ceste ľuďom, ktorí sa snažia robiť veci rýchlejšie a efektívnejšie.

 

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

 

Na skrátenie príliš dlhého obdobia medzi jednotlivými cyklami vývoja a vydávania produktu sa zaviedla agilná metodológia (agile). Tie skracujú obdobia medzi fázami a vďaka tomu vidí klient výsledky už na konci každého šprintu (fázy). Takto skrátené cykly vedú k efektívnejšiemu plánovaniu a lepš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 v ruke s agile a pomá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ň a nielen 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 a samotný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á k dispozícií množstvo nástrojov, ktoré musia spĺňať mnoho požiadaviek, plniť si svoju prácu na 100% a navzájom dokonale spolupracovať. Medzi takéto technológie patria nástroje na budovanie automatizácie, automatické testovacie sady, virtualizácia a technológie kontajnerov, nástroje na nasadenie (deployment), nástroje na monitorovanie a mnoho ďalších.

 

devops automatizacia
                                                                                 Automatizácia | DevOps 

______________________________________________________________________

Prečítajte si aj článok ↓
Aké sú 3 hlavné cesty, ktorými možno využiť DevOps?