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