Aine foorumitest, erinevatest vestlustest ja kirjatükkidest on hakanud viimaste aastate jooksul läbi jooksma termin DevOps ja kuidas mainitud seltskond on süüdi kõikides maailma hädades, eriti selles kui vast toodangusse minev tarkvara ei taha sinna üldse minna ja see pole kaugeltki arendaja süü, vaid toosama müütiline DevOps on asja vussi keeranud ja keeruliseks ajanud ning üldse kõik pahasti teinud. Lisaks ei suuda DevOps tüüp riistvara ja võrgukindlust garanteerida.
Mida rohkem sellel teemal olen lugenud-kuulnud-näinud, seda rohkem on hakanud see mind häirima. Mõistmiseks, miks, peame liikuma natuke ajas tagasi ja eemale ja lahkama kahte asja:
- Mis on tarkvara elutsükkel?
- Kuidas saab tarkvara kasutajatele kättesaadavaks, ehk siis toodangusse ja kuidas ta seal kättesaadavana püsib?
- Nõuded
- Planeerimine
- Arendus
- Testimine
- Kasutamine/jooksutamine
- Riistvara haldust
- Võrgutaristute haldust
- Uute versioonide toodangusse lubamist
- jne
Olenevalt ettevõttest/meeskonnast, vastutas erinevate etappide eest konkreetne seltskond, kes siis jagunes väga laias laastus kaheks:
- Arendajad
- Administratorid
Toodangusse paneku töörutiin kulges tavaliselt ühelt rollilt teisele tööülesannete ette andmisel (stiilis meie tegime tarkvara valmis, pange teie nüüd üles): Arendajad andsid teada, projektijuht koordineeris, administraatorid tegid. Toimis. Niivõrd-kuivõrd.
Viimasel ajal on keskastme juhtide avaldustesse tekkinud laused stiilis Me peame omale DevOps inimese palkama, kes tegeleks toodangusse panemisega ja pipelinede haldusega.
Mida rohkem ma taolist kuulen, seda nukramaks ma muutun. DevOps ei ole amet. DevOps ei ole roll. DevOps ei ole osakond.
DevOps ei ole Github Actions/Bitbucket pipelines jne.
DevOps on maailmavaade, mille võib kokku võtta ühe lausega: iga seltskond vastutab saba ja sarvedega selle eest, et tema loodud tarkvara saaks valmis kirjutatud, toodangusse pandud ja seisaks seal üleval[2].
Mida see praktikas tähendab? Seda, et igas meeskonnas võiks olla vähemalt üks inimene, kes on ennast kurssi viinud kasutatava taristuga, opsüsteemidega, mustritega kuidas tarkvara saab arendusest toodangusse. Ühes töökohas oli selle rolli nimi väga lakooniline Toodangu eest vastutaja. Ei tehtaks enam osakondade/meeskondadevahelisi ülesandepüstitusi ülaltoodud stiilis. Tarkvara tootnud meeskond paneb selle ka toodangusse ja haldab.
DevOps ei tähenda seda, et me juurutame endale Bamboo või Jenkinsi ja siis üks õnnetuke kusagil osakonnas X rabeleb pipeline'sid teha ja saab kolki iga jumala kord kui ei tööta. Bamboo, Jenkins ja sõbrad on lihtsalt töö lihtsamaks ja kiiremaks tegemise vahendid.
DevOps on võimalik ka kasutades vaid SSH'd ja käsurida. DevOps ei määra, millega me asju teeme, vaid kuidas me asju teeme ja kes mille eest vastutab:
- Adminid vastutavad selle eest, et baastaristu töötaks:
- Riistvara
- Võrk
- Operatsioonisüsteemid
- Abivahendid (a la Kubernetes, CI/CD töövahendid)
- Rakenduste eest vastutavad DevOps mentaliteeti jälgivad meeskonnad (täiesti meelega väldin sõna 'tiim'. See on ääretult kole värdlaen):
- Abivahenditel toimivad protsessid (nö. pipelined)
- Rakenduste logimine ja monitoorimine
- Hädade korral neile reageerimine
- Muu, mis kaasneb tarkvara saadavuse tagamisega
[1] https://www.sciencedirect.com/topics/computer-science/software-lifecycle#
Kommentaarid
Postita kommentaar