Miks on DevOps oluline, mida see tÀhendab IT-spetsialistidele, meetodite, raamistikute ja tööriistade kirjeldus.

Palju on juhtunud sellest ajast, kui termin DevOps IT-maailmas populaarseks sai. Arvestades, et suur osa ökosĂŒsteemist on avatud lĂ€htekoodiga, on oluline ĂŒle vaadata, miks see algas ja mida see tĂ€hendab IT-karjÀÀri jaoks.
Mis on DevOps
Kuigi ei ole ĂŒhtset definitsiooni, pean DevOps'i tehniliseks struktuuriks, mis vĂ”imaldab koostööd arendustiimide ja operatiivteamide vahel, et kiirendada koodi juurutamist tootmis keskkondades, kui see on korduv ja automatiseeritud. JĂ€rgmises artiklis kĂ€sitleme seda vĂ€idet lĂ€hemalt.
SÔna "DevOps" on sÔnade "arendus" (development) ja "operatsioonid" (operations) kombinatsioon. DevOps aitab suurendada rakenduste ja teenuste tarnimise kiirus. See vÔimaldab organisatsioonidel tÔhusalt teenindada oma kliente ja muuta end konkurentsivÔimelisemaks turul. Lihtsamalt öeldes on DevOps kooskÔla arenduse ja IT-operations vahel, mille tulemuseks on tÔhusam koostöö ja suhtlemine.
DevOps tĂ€hendab kultuuri, kus koostöö arendustiimide, operatiivsete töötajate ja Ă€ritegelaste vahel on ÀÀrmiselt oluline aspekt. See ei puuduta ainult tööriistu, sest DevOps toob organisatsioonile pidevalt kasu ja klientidele. Tööriistad on ĂŒks selle tugisammas, koos inimeste ja protsessidega. DevOps suurendab organisatsioonide vĂ”imet pakkuda kvaliteetseid lahendusi lĂŒhikeses ajaraamis. Samuti automatiseerib DevOps kĂ”iki protsesse, alates ehitusest kuni rakenduste vĂ”i toodete juurutamiseni.
DevOps'i arutelu keskendub suhetele arendajate, eluks vajalikku tarkvara kirjutavate inimeste ja operatiivsete töötajate vahel, kes vastutavad selle tarkvara toetamise eest.
Arendajate vÀljakutsed
Arendajad rakendavad tavaliselt innukalt ja sooviga uusi lÀhenemisviise ja tehnoloogiaid organisatsioonide probleemide lahendamiseks. Siiski seisavad nad silmitsi teatud probleemidega:
- KonkurentsivÔimeline turg loob suurt survet toote Ôigeaegseks toimetamiseks.
- Nad peavad hoolitsema tootmiskÔlbliku koodi haldamise ja uute vÔimaluste rakendamise eest.
- VĂ€ljalaske tsĂŒkkel vĂ”ib olla pikk, seetĂ”ttu peab arendustiim tegema enne rakenduste juurutamist mitu eeldust. Sellises stsenaariumis on vaja rohkem aega probleemide lahendamiseks, mis tekivad tootmis- vĂ”i testkeskkonnas.
Probleemid, millega operatsioonigrupp silmitsi seisab
Operatsioonigruppide ajalooline fookus on IKT teenuste stabiilsusel ja usaldusvÀÀrsusel. SeetĂ”ttu pĂŒĂŒavad operatsioonimeeskonnad saavutada stabiilsust, muutes ressursse, tehnoloogiaid vĂ”i lĂ€henemisviise. Nende ĂŒlesannete hulka kuuluvad:
- Ressursside jaotamise juhtimine nÔudluse suurenedes.
- Projekti muutuste vÔi seadistuste töötlemine, mis on vajalikud tootmises rakendamiseks.
- Probleemide diagnoosimine ja lahendamine, mis on seotud tootmisega pÀrast rakenduste iseseisvat juurutamist.
Kuidas DevOps lahendab arenduse ja operatsioonide probleeme
Kuna suur hulk rakenduse funktsioone korraga vĂ€lja anda, pĂŒĂŒavad ettevĂ”tted vĂ€lja selgitada, kas nad saavad vĂ€lja tuua vĂ€ikse arvu funktsioone oma klientidele, kasutades vĂ€ljalaskete seeriat. See lĂ€henemine toob kaasa mitmeid eeliseid, nagu paremad tarkvara kvaliteet, kiirem tagasiside klientidelt jne. See omakorda tagab kĂ”rge kliendi rahulolu. Nende eesmĂ€rkide saavutamiseks peavad ettevĂ”tted:
- VÀhendama uusversioonide vÀljaandmisprotsentide arvu
- Suurendama vÀljalaskefrekventsi
- Saavutama kiirema taastumisaegade keskmise, kui rakenduse uusversioon vÀljastatakse.
- KĂ€rpima parandustele kuluvat aega
DevOps tĂ€idab kĂ”ik need ĂŒlesanded ja aitab tagada sujuva tarnimise. Organisatsioonid kasutavad DevOps'i, et saavutada selliseid jĂ”udlustasemeid, mis veel paar aastat tagasi olid mĂ”eldamatud. Nad teevad kĂŒmneid, sadu ja isegi tuhandeid vĂ€ljalaskeid pĂ€evas, tagades samal ajal maailmatasemel usaldusvÀÀrsuse, stabiilsuse ja turvalisuse. ja nende mĂ”jude kohta tarkvaradeleverimisele).
DevOps pĂŒĂŒab lahendada mitmesuguseid probleeme, mis tulenevad mineviku metoodikate kasutamisest, sealhulgas:
- Arendajate ja operaatorite töö isoleeritus
- Testimine ja juurutamine eraldiseisvate etappidena, mis viiakse lĂ€bi pĂ€rast projekteerimist ja kokkupanemist ning nĂ”uavad rohkem aega kui kokkupanekutsĂŒklid.
- Liialdatud ajakulu testimisele, juurutamisele ja projekteerimisele, selle asemel et keskenduda pÔhiteenuste loomisele
- Koodi kÀsitsi juurutamine, mille tagajÀrjeks on vead tootmises
- Arendamis- ja operaatorigruppide töögraafikute erinevus, mis viib tÀiendavate viivitusteni

DevOps, Agile ja traditsioonilise IT vastasseis
DevOps'i arutatakse sageli seoses teiste IT-praktikatega, eriti paindliku ja juga IT-infrastruktuuriga.
Agile on komplekti pÔhimÔtteid, vÀÀrtusi ja tarkvaraarenduse meetodeid. NÀiteks kui teil on idee, mida soovite tarkvaraks muuta, saate kasutada Agile'i pÔhimÔtteid ja vÀÀrtusi. Kuid see tarkvara vÔib töötada ainult arenduse vÔi testimise keskkonnas. Teil on vaja lihtsat ja turvalist viisi, kuidas kiiresti ja jÀrjekindlalt tarkvara tootmiskeskkonda viia, ja tee sinna viib DevOpsi tööriistade ja meetodite kaudu. Paindlik tarkvaraarenduse metoodika keskendub arendusprotsessidele, samas kui DevOps vastutab arendamise ja juurutamise eest - kÔige turvalisem ja usaldusvÀÀrsem viis.
Traditsioonilise veepuudli mudeli ja DevOpsi vÔrdlemine on hea viis mÔista, milliseid eeliseid DevOps pakub. JÀrgmises nÀites eeldatakse, et rakendus kÀivitatakse nelja nÀdala pÀrast, arendus on lÔpetatud 85% ulatuses, rakendus kÀivitatakse ja serverite soetamise protsess koodi saatmiseks on just alanud.
Traditsioonilised protsessid
DevOpsi protsessid
Tellimuse esitamisel uute serverite jaoks töötab arendajate meeskond testimise kallal. Operatiivmeeskond töötab suure ulatusega dokumentatsiooniga, mis on vajalik ettevÔtetes infrastruktuuri juurutamiseks.
Uute serverite tellimise korral töötavad arendajate ja operaatorite meeskonnad koos dokumentatsiooni ja protsesside kallal, et seadistada uusi servereid. See aitab paremini mÔista infrastruktuuri nÔudeid.
Teave taaste, ĂŒlemÀÀrasuse, andmekeskuste asukohta ja salvestusnĂ”udeid mĂ”jutavate vahendite kohta on vale, kuna puuduvad sisendid arendajate meeskonnalt, kellel on sĂŒgavad teadmised rakendustest.
Teave rikkekindluse, ĂŒlemÀÀrasuse, hĂ€daolukorrast taastumise, andmekeskuste asukoha ja salvestusnĂ”uete kohta on tĂ€pne ja korrektne, tĂ€nu arendajate meeskonna panusele.
Operatiivmeeskond ei ole teadlik arendajate meeskonna edusammudest. Samuti arendab ta oma arusaamade pÔhjal jÀlgimisplaani.
Operatiivgrupp on tÀielikult teadlik edusammudest, mille on saavutanud arendajate meeskond. Nad teevad ka koostööd arendajate meeskonnaga, et koos töödelda monitooringuplaani, mis vastab IT ja Àri vajadustele. Nad kasutavad ka rakenduste jÔudluse monitooringu (APM) tööriistu.
Laastustest, mis viiakse lÀbi enne rakenduse kÀivitamist, pÔhjustab rakenduse tÔrke, mis viib kÀivitamise viibimiseni.
Laastustest, mis viiakse lÀbi enne rakenduse kÀivitamist, pÔhjustab jÔudluslanguse. Arendajameeskond tuvastab kitsaskohad kiiresti ning rakendus kÀivitatakse Ôigel ajal.
DevOpsi elutsĂŒkkel
DevOps tĂ€hendab kindlate ĂŒldiselt aktsepteeritud praktikate rakendamist.
Continuing planning
Pidev planeerimine pÔhineb sÀÀstlikkuse pÔhimÔtetel, et alustada vÀikeselt, mÀÀratledes ressurssid ja tulemused, mis on vajalikud Àri vÔi visiooni vÀÀrtuse kontrollimiseks, pidev kohandamine, edenemise mÔÔtmine, klientide vajaduste uurimine, suuna muutmine vajadusel paindlikkuse arvesse vÔttes ning Àriplaani vÀrskendamine.
Ăhine areng
Koostöötamise protsess vĂ”imaldab ettevĂ”tetel, arendajatel ja testimismeeskondadel, kes on jaotatud erinevatesse ajavöönditesse, pidevalt pakkuda kvaliteetset tarkvara. See hĂ”lmab multiplatvormilist arendust, erinevates programmeerimiskeeltes programmeerimise toetust, kasutajate lugude loomist, ideede arendamist ja elutsĂŒkli haldamist. Koostööd hĂ”lmab pideva integreerimise protsessi ja praktikat, mis soodustab koodi sagedast integreerimist ja automaatset koostamist. Koodi sage integreerimine rakendusse tuvastab integreerimisprobleemid elutsĂŒkli varases etapis (kui neid on lihtsam parandada), ja ĂŒldisi integreerimispĂŒĂŒdusid vĂ€hendatakse pideva tagasiside kaudu, kuna projekt demonstreerib pidevat ja selget edusamme.
Pidev testimine
JĂ€tkuv testimine vĂ€hendab testimise kulusid, aidates arendajatel tasakaalustada kiirus ja kvaliteet. Samuti kĂ”rvaldab see testimise kitsaskohad teenuste virtualiseerimise kaudu ning lihtsustab virtualiseeritud testimiskeskkondade loomist, mida on kerge jagada, juurutada ja ajakohastada sĂŒsteemide muutudes. Need vĂ”imalused vĂ€hendavad testimiskeskkondade algatamise ja hooldamise kulusid ning lĂŒhendavad testimise tsĂŒkliaega, vĂ”imaldades integreeritud testimist elu tsĂŒkli varases etapis.
JÀtkuv vÀljalaskmine ja juurutamine
Need meetodid toovad kaasa ĂŒhe pĂ”hipraktika: jĂ€tkuva vĂ€ljalaskmise ja juurutamise. See tagab pideva voolu, mis automatiseerib olulisi protsesse. See vĂ€hendab kĂ€sitsi teostatavate toimingute arvu, ootamisaja pikkust ja ĂŒmbertegemiste mahtu, vĂ”imaldades juurutamist nupuvajutusega, mis tagab rohkem vĂ€ljalase, vĂ€hem vigade arvu ja tĂ€ieliku lĂ€bipaistvuse.
Automatiseerimine mĂ€ngib olulist rolli stabiilse ja usaldusvÀÀrse tarkvara vĂ€ljaandmise tagamisel. Ăks peamisi ĂŒlesandeid on kĂ€sitsi protsesside, nagu kogumine, regressioon, juurutamine ja infrastruktuuri loomine, automatiseerimine. Selleks on vajalik lĂ€htekoodi versiooni kontrolli, testimise ja juurutamise skriptid, infrastruktuuri ja rakenduse konfiguratsiooni andmed ning raamatukogud ja paketid, millest rakendus sĂ”ltub. Veel ĂŒks olulise tĂ€htsusega tegur on vĂ”ime kĂŒsida kĂ”igi keskkondade olekut.
JÀtkuv jÀlgimine
JÀtkuv jÀlgimine tagab ettevÔtte tasemel aruannete koostamise, mis aitab arendajate meeskondadel mÔista rakenduste kÀttesaadavust ja toimivust tootmises juba enne, kui need tootmisse pannakse. JÀtkuva jÀlgimise pakkumine varase tagasiside kaudu on kriitilise tÀhtsusega vea kulu vÀhendamiseks ja projektide Ôiges suunas juhtimiseks. See praktika hÔlmab sageli jÀlgimistööriistu, mis paljastavad tavaliselt rakenduste toimivuse nÀitajaid.
Pidev tagasiside ja optimeerimine
Pidev tagasiside ja optimeerimine tagavad klientide voogude visuaalse esituse ning probleemsete kohtade tĂ€pse mÀÀratlemise. Tagasiside vĂ”ib olla kaasatud nii eelmĂŒĂŒgi kui ka jĂ€reltootmisetappides, et maksimeerida vÀÀrtust ja tagada suuremate tehingute eduka lĂ”puleviimise. See kĂ”ik vĂ”imaldab kohest visuaalset tĂ”lgendamist klientide probleemide esmase pĂ”hjuste osas, mis mĂ”jutavad nende kĂ€itumist ja mĂ”ju Ă€ritegevusele.

DevOpsi eelised
DevOps loob keskkonna, kus arendajad ja operaatorid töötavad ĂŒhtse meeskonnana ĂŒhiselt eesmĂ€rkide nimel. Oluline verstapost selles protsessis on pideva integreerimise ja pideva kohaletoimetamise (CI/CD) rakendamine. Need meetodid vĂ”imaldavad meeskondadel kiiremini oma tarkvara turule tuua vĂ€hemate vigadega.
DevOpsi olulised eelised on:
- Ettearvamiseks: DevOps pakub oluliselt madalamat rikete sagedust uute vÀljaannete puhul.
- Hooldatavus: DevOps tagab sujuva taastumise uue vĂ€ljaande ebaĂ”nnestumiste vĂ”i rakenduse vĂ€ljalĂŒlitamise korral.
- Taastatavus: VersioonihaldussĂŒsteem vĂ”imaldab taastada varasemaid versioone vastavalt vajadusele.
- Kvaliteet: Probleemide lahendamine infrastruktuuris parandab rakenduste arendamise kvaliteeti.
- Turule toomise aeg: Tarkvara kohaletoimetamise optimeerimine lĂŒhendab turule toomise aega 50%.
- Riski vĂ€hendamine: Tarkvara elutsĂŒkli turvalisuse tagamine vĂ€hendab defekte kogu elutsĂŒkli vĂ€ltel.
- Majanduslik efektiivsus: Tarkvaraarenduse majanduslik efektiivsus meeldib juhtkonnale.
- Stabiilsus: TarkvarasĂŒsteem on stabiilsem, turvalisem ja muudatusi saab kontrollida.
- Suurem koodibaas jaguneb hallatavateks osadeks: DevOps pÔhineb paindlikel arendusmeetoditel, mis vÔimaldavad suure koodibaasi jagamist vÀiksemateks ja hallatavateks osadeks.
DevOpsi pÔhimÔtted
DevOpsi vastuvÔtt on toonud kaasa mitu pÔhimÔtet, mis on arenenud (ja jÀtkuvad arenemist). Enamus lahenduste pakkujatest on vÀlja töötanud oma modifikatsioonid erinevatele meetoditele. KÔik need pÔhimÔtted pÔhinevad DevOpsi terviklikul lÀhenemisel, mida saavad kasutada organisatsioonid igas suuruses.
Arendage ja testige keskkonnas, mis sarnaneb tootmiskeskkonnaga.
PĂ”hiidee on vĂ”imaldada arendus- ja kvaliteedikontrolli (QA) meeskondadel arendada ja testida sĂŒsteeme, mis kĂ€ituvad nagu tootmissĂŒsteemid, et nad saaksid nĂ€ha, kuidas rakendus töötab ja kĂ€itub, kaua enne, kui see on valmimiseni jĂ”udnud.
Rakendus peab olema ĂŒhendatud tootmissĂŒsteemidega vĂ”imalikult varakult elutsĂŒkli jooksul, et lahendada kolme peamist potentsiaalset probleemi. Esiteks vĂ”imaldab see testida rakendust keskkonnas, mis on lĂ€hedane reaalsele keskkonnale. Teiseks vĂ”imaldab see testida ja kontrollida rakenduse tarnimisprotsesse ette. Kolmandaks vĂ”imaldab see operatiivmeeskonnal varases etapis elutsĂŒklis kontrollida, kuidas nende keskkond kĂ€itub, kui rakendused on juurutatud, vĂ”imaldades neil luua tĂ€pselt konfigureeritud, rakendusele orienteeritud keskkonna.
Toimingud, millel on reprodutseeritavad, usaldusvÀÀrsed protsessid
See printsiip vĂ”imaldab arendajate ja operaatorite meeskondadel hoida paindlikke tarkvaraarenduse protsesse kogu elutsĂŒkli vĂ€ltel. Automatiseerimine on ĂŒlioluline iteratiivsete, usaldusvÀÀrsete ja korduvate protsesside loomisel. SeetĂ”ttu peaks organisatsioon looma kohaletoimetamise torujuhtme, mis tagab pideva automatiseeritud juurutamise ja testimise. Sage juurutamine vĂ”imaldab meeskondadel testida juurutamisprotsesse, vĂ€hendades seelĂ€bi juurutamise ebaĂ”nnestumise riski reaalsete vĂ€ljalaskmisel.
Töö kvaliteedi jÀlgimine ja kontrollimine
Organisatsioonid on head rakenduste jĂ€lgimisel tootmises, kuna neil on tööriistad, mis fikseerivad nĂ€itajaid ja vĂ”tme tulemuslikkuse nĂ€itajaid (KPI) reaalajas. See pĂ”himĂ”te viib jĂ€lgimise varajastesse elutsĂŒkli etappidesse, tagades, et automatiseeritud testimine jĂ€lgib rakenduse funktsionaalseid ja mittefunktsionaalseid atribuute protsessi varases etapis. Iga kord, kui rakendust testitakse ja juurutatakse, peavad kvaliteedinĂ€itajad olema uuritud ja analĂŒĂŒsitud. JĂ€lgimistööriistad tagavad varajase teavitamise probleemidest, mis on seotud tootmise ja kvaliteediga, mis vĂ”ivad tekkida tootmisprotsessi kĂ€igus. Need nĂ€itajad peavad olema kogutud formaadis, mis on kĂ”igile osalistele kergesti kergesti arusaadav ja ligipÀÀsetav.
Tagasiside ringide tÀiustamine
Ăks DevOpsi protsesside eesmĂ€rkidest on vĂ”imaldada organisatsioonidel kiiremini reageerida ja muudatusi teha. Tarkvara tarnimisel nĂ”uab see eesmĂ€rk, et organisatsioon saaks tagasisidet varakult ning seejĂ€rel kiiresti Ă”ppida iga ette vĂ”etud sammuga. See pĂ”himĂ”te nĂ”uab organisatsioonidelt kommunikatsioonikanalite loomist, mis vĂ”imaldavad sidusrĂŒhmadel juurde pÀÀseda ja tagasisidepĂ”hiselt suhelda. Arendust saab teostada projektiplaneeringute vĂ”i prioriteetide kohandamise kaudu. Tootmine saab toimida tootmis keskkonna parandamise kaudu.
Dev
- Planeerimine: Kanboard, Wekan ja muud Trello alternatiivid; GitLab, Tuleap, Redmine ja muud JIRA alternatiivid; Mattermost, Roit.im, IRC ja muud Slacki alternatiivid.
- Koodi kirjutamine: Git, Gerrit, Bugzilla; Jenkins ja muud avatud lÀhtekoodiga tööriistad CI/CD jaoks.
- Kogumine: Apache Maven, Gradle, Apache Ant, Packer.
- Testid: JUnit, Cucumber, Selenium, Apache JMeter.
Ops
- VĂ€ljaandmine, juurutamine, operatsioonid: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, etcd, Netflix Archaius, Terraform.
- Monitooring: Grafana, Prometheus, Nagios, InfluxDB, Fluentd ja teised, mis on kaetud selles juhendis
(* Tööriistad operatsioonide jaoks on nummerdatud vastavalt operatiivsete meeskondade kasutusele, kuid nende tööriistad kattuvad elutsĂŒkli etappide vabastamise ja rakendamise tööriistadega. Lugemise mugavuse huvides on nummerdamine eemaldatud.)
KokkuvÔtteks
DevOps on ĂŒha populaarsem metoodika, mille eesmĂ€rk on ĂŒhendada arendajad ja operaatorid ĂŒhte kogusse. See on unikaalne, erineb traditsioonilisest IT-toimekusest ja tĂ€iendab Agile'i (kuid ei ole sama paindlik).

Tutvuge, kuidas omandada nÔutud amet nullist vÔi tÔsta oma oskusi ja palka, osaledes SkillFactory tasulistel veebikursustel:
- (12 kuud)
rohkem kursusi
- (12 nÀdalat)
- (12 kuud)
- (9 kuud)
- (9 kuud)
Kasulik
Allikas: habr.com
