Obsah
Každý, kto sa zaujíma o vývoj softvéru, pravdepodobne počul o nedávnej popularite DevOps (skratka pre Development and Operations) a o konkrétnej osobe v tíme, ktorá túto pozíciu zastáva. Verte tomu alebo nie, ale nové názvy pracovných pozícií sa z času na čas objavujú, pretože moderné prístupy k riešeniu problémov, najmä pri tvorivej práci založenej na znalostiach, si vyžadujú ľudí s rôznorodými zručnosťami, ktoré umožňujú, aby modely pracovného postupu, ako sú Agile a Scrum, vôbec existovali. DevOps je presne takýto a táto skratka označuje základný kameň výroby softvéru vo veľkých spoločnostiach, ako je Google alebo Apple, a v menších firmách po celom svete.
Čo je DevOps?
DevOps je kombinácia kultúrnych filozofií, postupov a nástrojov, ktoré zvyšujú schopnosť organizácie dodávať aplikácie a služby vysokou rýchlosťou: vyvíjať a zlepšovať produkty rýchlejším tempom ako organizácie využívajúce tradičné procesy vývoja softvéru a správy infraštruktúry.
Keďže ide o relatívne novú technológiu, DevOps ešte nemá jasnú a presnú definíciu. Rozhodne je to však tak, že DevOps je dvojaká vec: je to určitý súbor postupov a je to osoba, ktorej pracovný názov je DevOps inžinier.
DevOps ako súbor postupov spája dve veci: vývoj softvéru a jeho integráciu (vývoj + prevádzka). V minulosti boli tieto dve strany vývojového cyklu oddelené, pretože vývojári písali kód, zatiaľ čo správcovia systému a testeri ho integrovali, testovali a nasadzovali.
Predtým, ako sa objavili a osvedčili metódy Scrum a Agile, sa na vývoj a nasadzovanie softvéru používal takzvaný vodopádový model. Vodopádový model bol prevzatý z toho, ako sa tradične postupovalo v inžinierstve, najmä vo výrobnom a stavebnom priemysle. Znamenalo to, že vývoj a integrácia boli oddelené procesy, ktoré riešili rôzne tímy s menšou mierou spolupráce. Tento prístup pri vývoji vlastného softvéru sa nepovažoval za efektívny, pretože časté problémy pri nasadzovaní (chyby) si vyžadovali rýchle zmeny (revízie) vývoja.
Jedným z pilierov DevOps ako súboru postupov je jeho úzke prepojenie s celou koncepciou a filozofiou Agile a/alebo Scrum. Tieto metodiky kladú dôraz na kontinuálne dodávanie, ktoré sa uskutočňuje pomocou skrátených pracovných cyklov nazývaných šprinty alebo časté vydávanie pravidelne sa opakujúcich verzií. DevOps spája vývoj a nasadzovanie do jedného kontinuálneho súboru procesov, pričom zdôrazňuje dôležitosť komunikácie, spolupráce a otvorenosti v záujme lepších celkových výsledkov a efektívnejších produktov.
Niektorí tvrdia, že podobne ako Agile alebo Scrum, DevOps je viac než len súbor princípov, je to filozofia a výrobný dizajn, ktorý z metodiky robí hlavný princíp, ktorý je opakujúcim sa cyklom efektívneho vývoja a nasadzovania softvérových produktov.
Pravidlá DevOps
DevOps závisí od rýchlej reakcie na spätnú väzbu, automatizácie rutinných procesov, kontinuálnej integrácie a kontinuálneho dodávania. Mnohí softvéroví inžinieri a špecialisti na zabezpečenie kvality sa pri snahe o podrobnejšie vysvetlenie celého pojmu DevOps odvolávajú na skratku CAMS.
- Kultúra komunikácie a spolupráce
- Automatizácia rutinných procesov
- Meranie KPI
- Zdieľanie vedomostí
Dodržiavanie týchto hlavných zásad umožňuje skutočne vidieť, ako sa projekt robí tehla po tehle efektívne a systematicky bez toho, aby sa pôvodný koncept a myšlienka ako celok stratili z dohľadu. Tým sa zaručuje, že samotný proces umožňuje zavádzať zmeny za pochodu a zároveň vytvárať to, čo bolo pôvodne plánované.
Model DevOps
DevOps je určitý model dodávky, ktorý je základom agilnej metodiky Agile/Scrum. Pozostáva z vývoja, testovania, monitorovania a vydávania s neustálou komunikáciou medzi členmi tímu.
Plánovanie
Práca je rozdelená do krátkych cyklov - šprintov. Je to jeden zo základných princípov riadenia projektov typu Scrum/Agile. Kladie dôraz na časté vydávanie krátkodobých verzií každé 2 týždne. Tento prístup umožňuje byť flexibilný a sústrediť sa najprv na najdôležitejšie úlohy, aby sa čo najrýchlejšie vytvoril funkčný prototyp (ktorý sa dá testovať). Plánovanie zvyčajne zahŕňa načrtnutie 2 šprintov dopredu, ale so zameraním na najbližší z nich.
Nepretržité doručovanie
CD spája vývoj, testovanie a nasadenie do jedného pracovného procesu. Funguje nasledovne:
- inžinieri denne odovzdávajú malé časti kódu
- zabezpečenie kvality (testeri) ho testujú automaticky pomocou nástrojov ako Selenium alebo Ranorex
- chyby sa nahlasujú späť vývojárom.
- systémy na správu verzií (VCS) zaznamenávajú zmeny
- kód, ktorý prešiel testami, je integrovaný do jedného zdieľaného úložiska na serveri s Jenkins alebo GitLab CI
- kód je nasadený na produkciu na verejnom serveri pomocou Chef, Puppet alebo Azure Resource Manager.
- kód je k dispozícii veľkému počtu používateľov na testovanie nových funkcií.
- priebežné monitorovanie s cieľom odhaliť problémy a posúdiť všeobecnú kvalitu, analyzovať spätnú väzbu od používateľov a tímu
Inžinier DevOps
Inžinier DevOps nie je len dobrý odborník. Je to prirodzený líder, ktorý dokáže robiť viac úloh naraz a myslí na ľudí (klientov a členov tímu) rovnako ako na kód. DevOps inžinier je človek, ktorého prínos môže veľmi pravdepodobne rozhodnúť o osude projektu. Stará sa o to, aby bol projekt harmonicky koordinovaný s kontinuálnou integráciou a úspešným testovaním. Je ako projektový manažér na strane vývoja projektu. Na rozdiel od vedúcich tímov je však na ňom, aby rozhodol, ako a kedy začať testovanie alebo integráciu nových funkcií, aké techniky použiť atď.
Výhody prenájmu špecialistu DevOps
Existuje niekoľko zásadných výhod, ktoré sú spojené s prenájmom určitého odborníka na pozíciu DevOps. Patria medzi ne okrem iného:
- Rýchly postup projektu
- Lepšie delegovanie úloh
- Zvýšená kvalita softvéru
- Zlepšenie komunikácie v tíme
Celkovo možno povedať, že najatie DevOps vášmu projektu určite neuškodí. Nie náhodou sa touto zásadou riadia uznávané technologické giganty, pretože pri vývoji softvéru záleží na každej maličkosti. A s princípom DevOps v hre a inžinierom DevOps vo vašom tíme sa úspešnosť zvyšuje bez toho, aby ste museli platiť príliš veľa nákladov navyše.