DevOps (liitsõna inglise keele sõnadest development ehk arendus ja operations ehk käitus[1]) on tarkvaraarenduse kultuur, mille eesmärk on ühendada tarkvaraarendus (Dev) ja tarkvaraoperatsioonid (Ops). Põhilised DevOpsi liikumise tunnusjooned on automatiseerimine ja jälgimine kõigil tarkvaraarenduse etappidel alates integratsioonist, testimisest ja avaldamisest kuni kasutuselevõtu ja taristu haldamiseni. DevOps pürgib lühemate arendustsüklite, sagedasemate juurutamiste ning töökindlamate ja rohkem ärinõuetega kooskõlas olevate tarkvara versioonide avalikustamiste poole.[2][3][4]

Ajalugu muuda

Termin "DevOps" jõudis avalikkuse ette 2008. aastal Torontos Agile'i konverentsil, kus Andrew Shafer ja Patrick Debois kasutasid seda terminit nende paindliku ehk agiilse taristu teemalises esitluses.[5] Aastast 2009 on termin levinud ja saanud laiema tähelepanu tänu DevOpsi päevadele,[6] mis algasid Belgias ja on nüüdseks levinud ka teistes riikides.

DevOpsi tööriistade komplektid muuda

Kuna DevOps on mõeldud ristfunktsionaalse töösuunana, siis selle asemel, et oleks ainult üks kindel DevOpsi tööriist, kasutatakse pigem mitmeid tööriistade komplekte.[7] Sellised tööriistad peaksid mahtuma järgnevatesse kategooriatesse, mis peegeldavad arendamise ja väljastamise protsessi põhiaspekte:[8][9]

  1. programmeerimine – koodi kirjutamine ja läbivaatus, lähtekoodihaldus;
  2. järgu ehitus – pidevintegratsioon, järgu staatuse haldus;
  3. testimine – pidev testimine mis annab tagasisidet äririskide kohta;
  4. pakkiminetehistehoidla, rakenduse avalikustamise eelne proovimine;
  5. avalikustamine – muutuste haldus, avalikustamise protsessi automatiseerimine;
  6. konfigureerimine – taristu ülesseadmine ja haldamine, taristu kui koodi tööriistad;
  7. seire – rakenduse jõudluse jälgimine, lõppkasutaja kogemused.

Osad kategooriad omavad suuremat tähtsust DevOpsi tööriistade komplektis; eriti pidevintegratsioon (nt Jenkins[10]) ja taristu kui kood (nt Puppet[11]).[12][13]

Suhe teiste lähenemistega muuda

Paindlik ehk agiilne arendus muuda

Vajadus DevOpsi järele tekkis kasvavast agiilse tarkvaraarenduse edust, kuna agiilsest lähenemisest tekkis organisatsioonidel tahtmine tarkvara avalikustada aina kiiremini ja sagedamini. Et ületada sellest tekkinud probleemid, pidid nad võtma kasutusele sellised võtted nagu rakenduse avalikustamise automatsioon, pidevintegratsioon ja pidevvalmidus.[14]

Pidevvalmidus muuda

Pidevvalmidusel (inglise keeles continuous delivery) ja DevOpsi liikumisel on ühiseid eesmärke ning neid kasutatakse tihti koos, aga neil siiski on mõned peened erinevused.[15][16]

Kui pidevvalmidus keskendub tarkvara tarne automatiseermisele, siis DevOps keskendub ka organisatsioonilistele muudatustele mis toetaksid koostööd tarkvara loomisega seotud funktsioonide vahel.

DevOps ja pidevvalmidus jagavad ühist tausta agiilsete meetodite näol.[17]

Eesmärgid muuda

DevOpsi eesmärgid hõlmavad kõiki tarkvara loomise etappe. Nende hulgas on:

  • sagedasemad juurutamised;
  • lühem aeg turule;
  • väiksem rikete protsent uutel avalikustatud tarkvara versioonidel;
  • lühem ettevalmistusaeg rikete parandamisel;
  • kiirem aeg paranemiseni rikete puhul, mis halvavad kogu süsteemi.

Kasutades DevOpsi lähenemist muutuvad lihtsad protsessid paremini programmeeritatavateks ja dünaamilistemaks.[18] DevOps üritab maksimeerida operatsiooni protsesside ennustatavust, tõhusust, turvalisust ja hooldatavust. Väga sagedasti kasutatakse selle saavutamiseks automatiseerimist.

Viited muuda

  1. "DevOps". AKIT - Andmekaitse ja infoturbe leksikon. Vaadatud 19.03.2018.
  2. Loukides, Mike (7. juuni 2012). "What is DevOps?". Vaadatud 19.03.2018.
  3. Samovskiy, Dmitriy (2. märts 2010). "The Rise of DevOps". Fubaredness Is Contagious. Vaadatud 19.03.2018.
  4. Kim, Gene. "DevOps Culture Part 1". Vaadatud 19.03.2018.
  5. Debois, Patrick. "Agile 2008 Toronto". Just Enough Documented Information. Vaadatud 19.03.2018.
  6. Debois, Patrick (2009). "DevOpsDays Ghent". DevopsDays. Vaadatud 19.03.2018.
  7. Gartner Market Trends: DevOps – Not a Market, but Tool-Centric Philosophy That supports a Continuous Delivery Value Chain, 18. veebruar 2015.
  8. Edwards, Damon. "Integrating DevOps tools into a Service Delivery Platform". dev2ops.org. Vaadatud 13.04.2018.
  9. Seroter, Richard. "Exploring the ENTIRE DevOps Toolchain for (Cloud) Teams". infoq.com. Vaadatud 13.04.2018.
  10. Knorr, Eric (21. märts 2016). "Why Jenkins is becoming the engine of devops". infoworld. Vaadatud 19.03.2018.
  11. Gazitt, Omri (11. detsember 2017). "Practicing DevOps at Puppet". puppet. Vaadatud 19.03.2018.
  12. Theakanath, Thomas. "DevOps Stack on a Shoestring Budget". devops.com. Vaadatud 13.04.2018.
  13. "Stronger DevOps Culture with Puppet and Vagrant". Puppet Labs. Originaali arhiivikoopia seisuga 29.01.2016. Vaadatud 19.03.2018.
  14. Best Practices in Change, Configuration and Release Management, Gartner, 14. juuli 2010.
  15. Humble, Jez; Farley, David (2011). Continuous Delivery: reliable software releases through build, test, and deployment automation. Pearson Education Inc. ISBN 978-0-321-60191-9.
  16. Hammond, Jeffrey (9. september 2011). "The Relationship between DevOps and Continuous Delivery". Forrester Research. Forester. Vaadatud 13.04.2018.
  17. Ambler, Scott W. (12. veebruar 2014). "We need more Agile IT Now!". Dr. Dobb’s The world of software Development. San Francisco: UBM.
  18. "What is DevOps?". NewRelic.com. Vaadatud 19.03.2018.