Rozmýšľali ste niekedy nad tým, čo je to vývoj softvéru? Ako by ste jednou vetou odpovedali na takúto otázku. Ja by som povedal, že je to transformácia požiadaviek zákazníka na funkčný, nasadený softvér. Potrebujete teda zrealizovať dve veci: vyvinúť softvér a dostať ho do prevádzky. Potrebujete DEVelopment aj OPerationS. Je možné, že ste už o tom novom buzzworde DEVOPS počuli. Poďme sa na neho teraz pozrieť s knihou Practical DevOps od Joakima Verona.
Začalo to s Agile. Agilné metódy ako prvé začali tvrdiť, že by ste nemali separovať ľudí, ktorí sa podieľajú na vývoji a majú rôzne profesie od seba. Že je to neefektívne a demotivujúce. A mali pravdu. Ak ste dali do jedného tímu ľudí, ktorí písali kód, písali databázové skripty a testovali (a mnoho iných profesií), tak to všetko začalo ísť akosi ľahšie. Vznikol tím, ktorý bol schopný kompletne dodať softvér (a nikto sa nemôže vyhovárať „to nie my, to oni“). Tento prístup fungoval, ale mal jednu slabinu, agilný tím dodal krabicu so softvérom. Ale zákazník nechce krabicu, chce webstránku alebo aplikáciu, ktorú si spustí a ona proste funguje. A tak prišiel DEVOPS.
DEVOPS je vlastne rozšírenie konceptu, s ktorým prišiel agile a hlavne myšlienky, že rôzne profesie, ktoré pracujú so softvérom, by mali čo najužšie spolupracovať. A hneď aj prináša konkrétny pohľad ako to spraviť. Ako prepojiť ľudí a nástroje a vytvoriť tak jednu veľkú (virtuálnu) montážnu linku, kde na začiatku do nej padajú požiadavky a na konci z nej vypadáva funkcionalita, ktorú je možné okamžite použiť.
Termín DEVOPS je tu s nami už nejakú dobu a na internete o ňom nájdete veľa rôznych materiálov. Jedným (celkom dobrým) takýmto materiálom je ak kniha Practical DevOps.
Autor v úvode knihy začína tým, prečo má zmysel sa o DevOpse baviť a prečo vlastne vznikol (s podobným poznaním, k akému som došiel ja na predchádzajúcich riadkoch). A nasleduje kapitola, kde celý proces vývoja (tzv. pipeline) stručne popíše. Z čoho taká pipeline pozostáva:
- kód, ktorý tvorí softvér, ale môže to byť tiež kód, ktorým sa konfiguruje infraštruktúra zostavovania, testovania alebo prevádzky – teda súbory v repozitári
- systém (jeden alebo viacero serverov), ktorý z kódu zostaví funkčnú aplikáciu. Popritom môže spustiť rôznu sadu automatizovaných testov
- repozitár zostavených artefaktov – do neho ide zostavený softvér pripravený na nasadenie
- systém nasadzovania – kombinácia nejakého softvéru na prácu s balíkmi a softvéru na správu serverov. Po nasadení do testovacieho prostredia sa môžu spustiť ďalšie automatizované testy, tentokrát nad bežiacou inštanciou
- monitorovací systém na sledovanie prevádzky
Súčasťou toho systému sú samozrejme ľudia. Vývojári, testeri, release manažéri a správcovia (a mnoho ďalších). Joakim v jednotlivých nasledujúcich kapitolách postupne rozoberá všetky tieto body. A hlavne to, ako to musí celé spolupracovať.
Tá spolupráca je tu kľúčová a jednotlivé časti by mali byť navrhnuté tak, aby boli ľahko napojiteľné na ostatné (repozitár zdrojových kódov na zostavovací server, ten zase na repozitár zostavených artefaktov a tak ďalej). DEVOPS nie je to tom, že len si kúpite/nakonfigurujete všetky tie veci. Vy ten systém musíte zladiť, aby fungoval ako jeden celok. Stroje aj ľudia.
Joakim robí sprievodcu takýmto svetom, kde napríklad Git repozitár má svoj workflow, pomocou ktorého je možné jednoducho manažovať zmeny v zdrojových kódoch. Zostavovací server je napojený na repozitár, reaguje podľa možnosti okamžite, vykoná všetky potrebné kroky (vrátane spustenia testov) a výsledok uloží do repozitára artefaktov. A potom tu máme správcu balíkov, ktorý tie artefakty vytiahne z repozitára a patrične nasadí. A nad tým všetkým dohliada monitorovací systém.
Autor knihy prechádza týmto všetkom, ukazuje konkrétne príklady použitia softvéru, jeho konfigurácie, aj toho ako riešiť niektoré problémy. V podstate krok po kroku buduje pipelinu tak, že keď skončí a vy pôjdete podľa jeho návodu, dostanete systém, ktorého na vstupe sú zdrojové kódy a na konci nasadený funkčný softvér.