DevOps juhend algajatele

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

DevOps juhend algajatele

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. (Uuri lĂ€hemalt partii suuruste 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

DevOps juhend algajatele

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.

DevOps juhend algajatele

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

DevOps juhend algajatele

Uurige, kuidas saada nÔutud ametit nullist vÔi taset tÔsta oma oskustes ja palgas, osaledes SkillFactory tasulistes veebikursustes:

veel kursusi

Kasutulik

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster