Milline on DevOps'i tÀhtsus, mida see tÀhendab IT-spetsialistidele, meetodite, raamistikute ja tööriistade kirjeldus.

Palju on juhtunud sellest ajast, kui DevOps'i termin IT-maailmas juurdus. Arvestades, et suur osa ökosĂŒsteemist on avatud lĂ€htekoodiga, on oluline ĂŒle vaadata, miks see algas ja mida see IT-karjÀÀridele tĂ€hendab.
Mis on DevOps
Kuigi ĂŒldiselt ei ole ĂŒhtset mÀÀratlust, pean DevOps'i tehnoloogiliseks struktuuriks, mis tagab koostöö arendajate ja operatiivmeeskondade vahel, et kiiremini kasutada koodi tootmisvĂ”rkudes, tagades toimingute korduvuse ja automatiseerimise. Artiklis jÀÀb meil aega selle vĂ€ite lahti mĂ”testamiseks.
SĂ”na âDevOpsâ on kombinatsioon sĂ”nadest âarendusâ (development) ja âoperatsioonidâ (operations). DevOps aitab suurendada rakenduste ja teenuste tarnimise kiirus. See vĂ”imaldab organisatsioonidel efektiivselt teenindada oma kliente ja saada turul konkurentsivĂ”imelisemaks. Lihtsalt öeldes on DevOps kooskĂ”la arenduse ja IT-operatsioonide vahel, tagades efektiivsema suhtluse ja koostöö.
DevOps eeldab sellist kultuuri, kus koostöö arendajate, operaatorite ja Ă€rianalĂŒĂŒtikute vahel on kriitilise tĂ€htsusega aspekt. RÀÀgime mitte ainult tööriistadest, kuna 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ĂŒhikese ajaga. Samuti automatiseerib DevOps kĂ”ik protsessid, alates ehitusest kuni rakenduse vĂ”i toote juurutamiseni.
Arutelu DevOps'i ĂŒle keskendub arendajate ja operaatorite vahelistele suhetele, kelle ĂŒlesanne on hoida elus tarkvara.
VĂ€ljakutsed arendajate meeskonnale
Arendajad on tavaliselt entusiastlikud ja soovivad rakendada uusi lÀhenemisviise ja tehnoloogiaid organisatsioonide probleemide lahendamiseks. Kuid nad seisavad silmitsi ka teatud probleemidega:
- KonkurentsivÔimeline turg tekitab suurt survet toote Ôigeaegseks tarnimiseks.
- Nad peaksid hoolitsema tootmisvalmis koodi haldamise ja uute funktsioonide implementimise eest.
- VĂ€ljalasketsĂŒkkel vĂ”ib olla pikk, seetĂ”ttu peab arendajate meeskond rakenduste juurutamise eel tegema mitmeid oletusi. Sellises stsenaariumis on vajalik suurem ajavarud probleemide lahendamiseks, mis vĂ”ivad tekkida tootmis- vĂ”i testikeskkonnas juurutamise kĂ€igus.
Probleemid, millega silmitsi seisab operatsioonigrupp
Operatsioonigruppide ajalooline suundumus on suunatud IT-teenuste stabiilsusele ja usaldusvÀÀrsusele. SeetĂ”ttu tegelevad operatsioonimeeskonnad stabiilsuse otsimisega, muutes ressursse, tehnoloogiaid vĂ”i lĂ€henemisviise. Nende ĂŒlesanded hĂ”lmavad jĂ€rgmist:
- Resursside jaotuse haldamine nÔudluse kasvades.
- Disaini vÔi seadistuste muutuste kÀsitlemine, mis on vajalikud tootmiskeskkonnas rakendamiseks.
- Probleemide diagamine ja lahendamine tootmisel, pÀrast rakenduste iseseisvat juurutamist.
Kuidas DevOps lahendab arenduse ja operatsioonide probleeme
Kohandades ĂŒlesandeid suurte funktsioonide juurutamiste asemel, pĂŒĂŒavad ettevĂ”tted vĂ€lja selgitada, kas nad saavad oma klientide jaoks juurutada vĂ€ikse arvu funktsioone jĂ€rjestikuste vĂ€ljaannete sarjas. Sellisel lĂ€henemisviisil on mitmeid eeliseid, nagu parem tarkvara kvaliteet, kiiremad tagasisideklientidelt jne. See omakorda tagab klientide kĂ”rge rahulolu. Selle saavutamiseks peavad ettevĂ”tted:
- VÀhendama uute vÀljaannete ebaÔnnestumise mÀÀra
- Suurendama juurutamise sagedust
- Liikuma kiiresti edasi uue rakenduse vÀljaande taastamise keskmise aja saavutamise suunas.
- LĂŒhem aeg paranduste tegemiseks
DevOps tĂ€idab kĂ”iki neid ĂŒlesandeid ja aitab tagada sujuva tarnimise. Organisatsioonid kasutavad DevOps'i selliste tulemuslikkuse tasemete saavutamiseks, mis olid veel paar aastat tagasi mĂ”eldamatud. Nad teevad kĂŒmneid, sadu ja isegi tuhandeid juurutamisi pĂ€evas, samal ajal tagades world-class usaldusvÀÀrsuse, stabiilsuse ja turvalisuse. ja nende mĂ”ju tarkvara tarnimisele).
DevOps pĂŒĂŒab lahendada erinevaid probleeme, mis tulenevad minevikus kasutatud metoodikate rakendamisest, sealhulgas:
- Arendajate ja operaatorite meeskondade töö isoleeritus
- Testimine ja juurutamine eraldiseisvate etappidena, mis toimuvad pĂ€rast kavandamist ja kogumist ning mis nĂ”uavad rohkem aega kui kogumise tsĂŒklid.
- Liialdatud ajakulud testimisele, juurutamisele ja kavandamisele, selle asemel et keskenduda pÔhiteenuste loomisele
- Koodi kÀsitsi juurutamine, mis toob kaasa tootmisvigu
- Arendus- ja operatsioonigruppide tööplaanide erinevus, mis toob kaasa tÀiendavaid viivitusi

DevOpsi, Agile'i ja traditsioonilise IT vastasseis
DevOpsist rÀÀgitakse sageli koos teiste IT-praktikatega, sealhulgas paindliku ja veepademetoodikaga.
Agile on tarkvara tootmise pÔhimÔtete, vÀÀrtuste ja meetodite kogum. NÀiteks, kui teil on idee, mille soovite tarkvaraks muuta, saate kasutada Agile'i pÔhimÔtteid ja vÀÀrtusi. Kuid see tarkvara vÔib töötada ainult arendus- vÔi testimiskeskkonnas. Teil on vaja lihtsat ja turvalist viisi tarkvara kiiresti ning suure korduvusega tootmiskeskkonda edastada, ja teele viib see DevOpsi tööriistade ja meetodite kaudu. Paindlik tarkvaraarenduse metoodika keskendub arendusprotsessidele, samas kui DevOps vastutab arenduse ja juurutamise eest - kÔige turvalisema ja usaldusvÀÀrsema viisi.
Traditsioonilise veepademetoodika ja DevOpsi vÔrdlemine on hea viis mÔista, millised eelised DevOps pakub. JÀrgmises nÀites eeldatakse, et rakendus kÀivitatakse nelja nÀdala pÀrast, arendustööd on lÔpetatud 85% ulatuses, rakendus kÀivitatakse ja serverite tellimise protsess on just alanud.
Traditsioonilised protsessid
DevOpsi protsessid
Uute serverite tellimise jÀrgselt töötavad arendajate meeskonnad testimise kallal. Operatiivgrupp töötab vÀlja pÔhjaliku dokumentatsiooni, mida ettevÔtted vajavad infrastruktuuri juurutamiseks.
PĂ€rast uute serverite tellimist töötavad arendajate ja operaatorite meeskonnad ĂŒhiselt uute serverite paigaldamise protsesside ja dokumentatsiooni kallal. See aitab paremini mĂ”ista infrastruktuuri nĂ”udeid.
Teave tĂ”rketalitusest, ĂŒleliigsusest, andmekeskuste asukohast ja salvestusnĂ”uetest on moonutatud, kuna puuduvad sisendid arendajate meeskonnalt, kellel on sĂŒgavad teadmised rakendamise alal.
TĂ€pne teave tĂ”rketalitusest, ĂŒleliigsusest, katastroofide taastamisest, andmekeskuste asukohast ja salvestusnĂ”uetest on tuntud ja korrektne tĂ€nu arendajate meeskonna panusele.
Operaatori rĂŒhm ei tea arendajate meeskonna edusammudest. Samuti töötavad nad vĂ€lja jĂ€lgimisplaani, tuginedes oma ettekujutusele.
Operaatori rĂŒhm on tĂ€ielikult teadlik arendajate meeskonna saavutatud edusammudest. Nad teevad samuti koostööd arendajate meeskonnaga ning töötavad koos vĂ€lja jĂ€lgimisplaani, mis rahuldab IT ja Ă€rinĂ”udeid. Nad kasutavad ka rakenduste jĂ”udluse jĂ€lgimist (APM).
Rakenduse kÀivitamise eelne katsetamine toob kaasa rakenduse rikke, mis viib selle kÀivitamise viibimiseni.
Rakenduse kÀivitamise eelne koormustest toob kaasa jÔudluse vÀhenemise. Arendajate meeskond kÔrvaldab kiiresti kitsaskohad ja rakendus kÀivitatakse Ôigeaegselt.
DevOpsi elutsĂŒkkel
DevOps hĂ”lmab teatavate ĂŒldtunnustatud praktikalehede vastuvĂ”tmist.
Pidev planeerimine
Pidev planeerimine tugineb ka sÀÀstlikkuse pÔhimÔtetele, et alustada vÀikselt, mÀÀratledes vajalikud ressursid ja tulemused, et kontrollida ÀrivÀÀrtust vÔi visiooni, pidevalt kohandades, edusammude mÔÔtmise, klientide vajaduste uurimise, vajadusel suuna muutmise paindlikkuse arvestamise ja Àriplaani uuendamisega.
Koostööarendamine
Koostöös arendamine vĂ”imaldab ettevĂ”tetel, arendajate meeskondadel ja testimismeeskondadel, mis asuvad erinevates ajavööndites, pidevalt toota kvaliteetset tarkvara. See hĂ”lmab mitme platvormi arendust, erinevates keeltes programmeerimise toetamist, kasutajate lugude loomist, ideede genereerimist ja elutsĂŒkli haldamist. Koostöös arendamine sisaldab pideva integreerimise protsessi ja praktikat, mis soodustab koodi sageli integreerimist ja automaatset koostamist. Koodi sagedane rakendamine rakendusse aitab tuvastada integreerimise probleeme elu tsĂŒkli varases faasis (kui neid on lihtsam parandada) ja vĂ€hendab tervikuna integreerimise pingutusi pideva tagasiside kaudu, kuna projekt demonstreerib pidevat ja selget edenemist.
Pidev testimine
Pidev testimine vĂ€hendab testimise kulusid, aidates arendajate meeskondadel tasakaalustada kiirus ja kvaliteet. See elimineerib ka testimise kitsaskohad teenuste virtualiseerimise abil ja lihtsustab virtualiseeritud testimiskeskkondade loomist, mida saab hĂ”lpsasti jagada, juurutada ja uuendada sĂŒsteemide muutudes. Need vĂ”imalused vĂ€hendavad kulusid testimiskeskkondade algatamisel ja toetamisel ning lĂŒhendavad testimise tsĂŒkliaega, vĂ”imaldades integreerimistestimist elutsĂŒkli varases staadiumis.
Pidev vÀljastamine ja juurutamine
Need meetodid toovad endaga kaasa ĂŒhe pĂ”hipraktika: pidev vĂ€ljastamine ja juurutamine. See tagab pideva torujuhtme, mis automatiseerib vĂ”tmeprotsesse. See vĂ€hendab kĂ€sitsi teostatavate toimingute arvu, ooteaega ressursside jaoks ja ĂŒmbertegemise mahtu, vĂ”imaldades juurutamist ĂŒhe nupuvajutusega, mis tagab rohkem vĂ€ljalaskmisi, vigade vĂ€henemise ja tĂ€ieliku lĂ€bipaistvuse.
Automatiseerimine mĂ€ngib olulist rolli stabiilse ja usaldusvÀÀrse tarkvaraarenduse tagamisel. Ăks olulisemaid ĂŒlesandeid on vĂ”tta kasutusele kĂ€sitsi protsessid nagu koostamine, regressioon, juurutamine ja infrastruktuuri loomine ning automatiseerida need. Selleks on vajalik lĂ€htekoodi versioonihaldus; testimis- ja juurutusskripti; infrastruktuuri ja rakenduste konfigureerimise andmed; samuti raamatukogud ja paketid, millest rakendus sĂ”ltub. Veel ĂŒks oluline tegur on vĂ”imalus kĂŒsida kĂ”igi keskkondade olekut.
JÀtkuv jÀlgimine
JÀtkuv jÀlgimine tagab ettevÔtte tasemel aruannete koostamise, mis aitab arendusmeeskondadel mÔista rakenduste saadavust ja jÔudlust tootmiskeskkonnas juba enne nende tootmisse juurutamist. Varajane tagasiside, mida pakub pidev jÀlgimine, on kriitilise tÀhtsusega vigade kulude vÀhendamiseks ja projektide Ôigesse suunda juhtimiseks. See praktika hÔlmab sageli jÀlgimistööriistu, mis avalikustavad rakenduste jÔudlusega seotud nÀitajad.
Pidev tagasiside ja optimeerimine
Pidev tagasiside ja optimeerimine tagavad klientide voo visuaalse esituse ning probleemsete kohtade tĂ€pse mÀÀramise. Tagasiside vĂ”ib olla kaasatud nii eelnevalt mĂŒĂŒmise kui ka pĂ€rast tootmisetappe, et maksimeerida vÀÀrtust ja tagada suure arvu tehingute eduka lĂ”puleviimise. KĂ”ik see vĂ”imaldab kohest visuaalset probleemide pĂ”hjuslike tegurite tuvastamist, mis mĂ”jutavad klientide kĂ€itumist ja mĂ”ju Ă€ritegevusele.

DevOpsi eelised
DevOps vĂ”ib aidata luua keskkonda, kus arendajad ja operaatorid töötavad ĂŒhtse meeskonnana ĂŒhiste eesmĂ€rkide saavutamiseks. Oluline verstapost selle protsessi juures on pideva integreerimise ja pideva kohaletoimetamise (CI/CD) rakendamine. Need meetodid vĂ”imaldavad meeskondadel kiiremini turule tuua tarkvara vĂ€iksema arvu vigadega.
DevOpsi peamised eelised on:
- Ettearvamus: DevOps pakub uute versioonide vÀljalaskmisel oluliselt madalamat tÔrgete esinemissagedust.
- Hooldatavus: DevOps tagab lihtsa taastumise uue versiooni vÔi rakenduse seiskumise korral.
- JĂ€rgitavus: Koodiversioonide kontrollisĂŒsteem vĂ”imaldab vajadusel varasemaid versioone taastada.
- KÔrgem kvaliteet: Infrastruktuuri probleemide lahendamine parandab rakenduste arendamise kvaliteeti.
- Turule jÔudmise aeg: Tarkvara kohaletoimetamise optimeerimine vÀhendab turule sisenemise aega 50% vÔrra.
- Riskide vĂ€hendamine: Tarkvara elutsĂŒkli turvalisuse tagamine vĂ€hendab defektide arvu kogu elutsĂŒkli vĂ€ltel.
- Majanduslik efektiivsus: Soov arendamisel majanduslikult efektiivne olla meeldib kÔrgemale juhtkonnale.
- PĂŒsivus: TarkvarasĂŒsteemi stabiilsus ja turvalisus on suurem ning muudatusi saab kontrollida.
- Suurem koodibaas jagatakse hallatavatesse osadesse: DevOps pÔhineb paindlikel arendusmeetoditel, mis vÔimaldavad jagada suure koodibaasi vÀiksemateks ja hallatavateks osadeks.
DevOps pÔhimÔtted
DevOpsi vastuvĂ”tt on sĂŒnnitanud mitmeid pĂ”himĂ”tteid, mis on arenenud (ja jĂ€tkuvalt arenevad). Enamik lahenduste pakkujaid on vĂ€lja töötanud oma kohandused erinevatele meetoditele. KĂ”ik need pĂ”himĂ”tted pĂ”hinevad terviklikul lĂ€henemisel DevOpsile ja neid saavad rakendada organisatsioonid suvalise suurusega.
Arendage ja testige keskkonnas, mis sarnaneb tootmisprotsessiga
Oluline on lubada arendajate ja kvaliteedikontrolli (QA) spetsialistide tiimidel arendada ja testida sĂŒsteeme, mis kĂ€ituvad nagu tootmisprotsessid, et nad saaksid nĂ€ha, kuidas rakendus kĂ€itub ja töötab kaua enne, kui see on valmis juurutamiseks.
Rakendus peab olema ĂŒhendatud tootmissĂŒsteemidega vĂ”imalikult varakult elutsĂŒkli kĂ€igus, et lahendada kolme peamise potentsiaalse probleemi. Esiteks vĂ”imaldab see testida rakendust keskkonnas, mis on vĂ”imalikult lĂ€hedane reaalsele keskkonnale. Teiseks vĂ”imaldab see testida ja kontrollida rakenduse tarnimise protsesse eelnevalt. Kolmandaks vĂ”imaldab see operatiivmeeskonnal varases elutsĂŒkli faasis kontrollida, kuidas nende keskkond kĂ€itub, kui rakendused on juurutatud, vĂ”imaldades neil luua kohandatava, rakendusele keskenduva keskkonna.
Kohandatava ja usaldusvÀÀrse protsessiga juurutamine
See pĂ”himĂ”te vĂ”imaldab arendus- ja opereerimismeeskondadel toetada paindlikke tarkvaraarendusprotsesse kogu elutsĂŒkli vĂ€ltel. Automatiseerimine on hĂ€davajalik, et luua iteratiivseid, usaldusvÀÀrseid ja korduvaid protsesse. SeetĂ”ttu peab organisatsioon looma tarnetoru, mis tagab pideva automatiseeritud juurutamise ja testimise. Sage juurutamine vĂ”imaldab meeskondadel testida juurutamisprotsesse, vĂ€hendades seelĂ€bi riski, et juurutamise kĂ€igus esinevad tĂ”rked reaalses versioonis.
JĂ€lgimine ja kvaliteedi kontrollimine
Organisatsioonid on head rakenduste jĂ€lgimises tootmisreĆŸiimis, kuna neil on tööriistad, mis registreerivad nĂ€itajaid ja vĂ”tme TulemusnĂ€itajaid (KPI) reaalajas. See pĂ”himĂ”te toob jĂ€lgimise varasesse elutsĂŒkli faasi, tagades, et automatiseeritud testimine jĂ€lgib rakenduse funktsionaalseid ja mittefunktsionaalseid omadusi protsessi varases etapis. Iga kord, kui rakendust testitakse ja juurutatakse, peavad kvaliteedinĂ€itajad olema uuritud ja analĂŒĂŒsitud. JĂ€lgimisvahendid pakuvad varajast hoiatust probleemide kohta, mis on seotud tootmise ja kvaliteediga, mis vĂ”ivad tekkida tootmisprotsessi kĂ€igus. Need nĂ€itajad peaksid olema kogutud formaadis, mis on kergesti kergesti arusaadav kĂ”igile huvitatud osapooltele.
Tagasiside ringide parandamine
Ăks DevOpsi protsesside eesmĂ€rke on anda organisatsioonidele vĂ”imalus kiiremini reageerida ja muudatusi teha. Tarkvara tarnimisel nĂ”uab see, et organisatsioon saaks tagasisidet varajases etapis ja Ă”piks kiiresti igast tehtud tegevusest. See pĂ”himĂ”te nĂ”uab organisatsioonidelt suhtlemiskanali loomist, mis vĂ”imaldab huvipooltel pÀÀseda juurde ja suhelda tagasiside printsiibil. Arendust vĂ”ib teostada oma projektiplaanide vĂ”i prioriteetide kohandamise kaudu. Tootmine vĂ”ib toimida tootmiskeskkonna parandamise kaudu.
Dev
- Planeerimine: Kanboard, Wekan ja muud Trello alternatiivid; GitLab, Tuleap, Redmine ning muud JIRA alternatiivid; Mattermost, Roit.im, IRC ja muud Slack 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, toimingud: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, etcd, Netflix Archaius, Terraform.
- JĂ€lgimine: Grafana, Prometheus, Nagios, InfluxDB, Fluentd ja muud, mis on selles juhendis kaetud.
(** Operatsioonide tööriistad on nummerdatud nende kasutamise jĂ€rjekorras operatsioonigruppide poolt, kuid nende tööriistade komplekt kattub elutsĂŒkli etappide vabastamise ja juurutamise tööriistadega. Lugemise mugavuse huvides nummerdamine eemaldati.)
KokkuvÔtteks
DevOps on ĂŒha populaarsem metoodika, mille eesmĂ€rk on ĂŒhendada arendajad ja operaatorid ĂŒheks. See on ainulaadne, erineb traditsioonilisest IT-ööst ning tĂ€iendab Agile'i (aga ei ole sama paindlik).

Uurige, kuidas saada nÔutud ametit nullist vÔi taset tÔsta oma oskustes ja palgas, osaledes SkillFactory tasulistes veebikursustes:
- (12 kuud)
veel kursusi
- (12 nÀdalat)
- (12 kuud)
- (9 kuud)
- (9 kuud)
Kasutulik
Allikas: habr.com
