DevOpsi algajatele mõeldud juhend

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

DevOpsi algajatele mõeldud juhend

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. (Lugege rohkem partii suuruste kohta 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

DevOpsi algajatele mõeldud juhend

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 algajatele mõeldud juhend

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).

DevOpsi algajatele mõeldud juhend

Tutvuge, kuidas omandada nõutud amet nullist või tõsta oma oskusi ja palka, osaledes SkillFactory tasulistel veebikursustel:

rohkem kursusi

Kasulik

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster