DevOpsi juhend algajatele

Mis on DevOpsi tähtsus, mida see IT-spetsialistidele tähendab, meetodite, raamistike ja tööriistade kirjeldus.

DevOpsi juhend algajatele

Pärast seda, kui mõiste DevOps IT-maailmas kehtima hakkas, on palju juhtunud. Kuna suur osa ökosüsteemist on avatud lähtekoodiga, on oluline uuesti läbi mõelda, miks see alguse sai ja mida see IT-alase karjääri jaoks tähendab.

Mis on DevOps

Kuigi ühest määratlust pole, usun, et DevOps on tehnoloogiline raamistik, mis võimaldab arendus- ja operatiivmeeskondade vahel teha koostööd koodi kiiremaks juurutamiseks tootmiskeskkondadesse koos itereerimise ja automatiseerimise võimalusega. Ülejäänud osa sellest artiklist kulutame selle väite lahtipakkimisele.

Sõna "DevOps" on kombinatsioon sõnadest "arendus" ja "operatsioonid". DevOps aitab kiirendada rakenduste ja teenuste kohaletoimetamist. See võimaldab organisatsioonidel oma kliente tõhusalt teenindada ja turul konkurentsivõimelisemaks muutuda. Lihtsamalt öeldes on DevOps arendus- ja IT-toimingute ühtlustamine tõhusama suhtluse ja koostööga.

DevOps hõlmab kultuuri, kus koostööd arendus-, operatiiv- ja ärimeeskondade vahel peetakse kriitiliseks. See ei puuduta ainult tööriistu, kuna organisatsiooni DevOps toob pidevalt kasu ka klientidele. Tööriistad on üks selle alustalasid koos inimeste ja protsessidega. DevOps suurendab organisatsioonide võimet pakkuda kvaliteetseid lahendusi võimalikult lühikese aja jooksul. DevOps automatiseerib ka kõiki protsesse alates ehitamisest kuni juurutamise, rakenduse või tooteni.

DevOpsi arutelu keskendub arendajate, elamiseks tarkvara kirjutavate inimeste ja selle tarkvara hooldamise eest vastutavate operaatorite suhetele.

Väljakutsed arendusmeeskonnale

Arendajad kipuvad olema entusiastlikud ja innukad rakendama uusi lähenemisviise ja tehnoloogiaid organisatsiooniliste probleemide lahendamiseks. Siiski seisavad nad silmitsi ka teatud probleemidega:

  • Konkurentsivõimeline turg tekitab suure surve toote õigeaegseks tarnimiseks.
  • Nad peavad hoolitsema tootmisvalmis koodi haldamise ja uute funktsioonide juurutamise eest.
  • Väljalasketsükkel võib olla pikk, seega peab arendusmeeskond enne rakenduste juurutamist tegema mitmeid eeldusi. Selle stsenaariumi korral kulub tootmis- või testkeskkonda juurutamisel tekkivate probleemide lahendamiseks rohkem aega.

Väljakutsed, millega operatsioonimeeskond silmitsi seisab

Operatiivmeeskonnad on ajalooliselt keskendunud IT-teenuste stabiilsusele ja töökindlusele. Seetõttu otsivad operatiivmeeskonnad stabiilsust ressursside, tehnoloogiate või lähenemisviiside muutmise kaudu. Nende ülesannete hulka kuuluvad:

  • Hallake ressursside jaotamist, kui nõudlus suureneb.
  • Käsitsege tootmiskeskkonnas kasutamiseks vajalikke disaini- või kohandamismuudatusi.
  • Diagnoosige ja lahendage tootmisprobleemid pärast rakenduste isejuurutamist.

Kuidas DevOps arendus- ja toimimisprobleeme lahendab

Selle asemel, et levitada korraga palju rakenduste funktsioone, püüavad ettevõtted näha, kas nad suudavad mitme versiooni iteratsiooni kaudu oma klientidele pakkuda väikest hulka funktsioone. Sellel lähenemisel on mitmeid eeliseid, näiteks parem tarkvara kvaliteet, kiirem klientide tagasiside jne. See omakorda tagab klientide kõrge rahulolu. Nende eesmärkide saavutamiseks peavad ettevõtted:

  • Uute väljaannete väljaandmisel vähendage tõrkemäära
  • Suurendage juurutamise sagedust
  • Uue rakenduse väljalaske korral saavutage kiirem keskmine taastumisaeg.
  • Vähendage paranduste jaoks aega

DevOps täidab kõiki neid ülesandeid ja aitab tagada katkematu kohaletoimetamise. Organisatsioonid kasutavad DevOpsi, et saavutada tootlikkuse tase, mis veel mõni aasta tagasi oli mõeldamatu. Nad teostavad kümneid, sadu ja isegi tuhandeid juurutusi päevas, pakkudes samal ajal maailmatasemel töökindlust, stabiilsust ja turvalisust. (Lisateave partii suuruste kohta ja nende mõju tarkvara tarnimisele).

DevOps püüab lahendada mitmesuguseid varasematest metoodikatest tulenevaid probleeme, sealhulgas:

  • Töö eraldamine arendus- ja operatiivmeeskondade vahel
  • Testimine ja juurutamine on eraldi etapid, mis toimuvad pärast projekteerimist ja ehitamist ning nõuavad rohkem aega kui ehitustsüklid.
  • Põhiliste äriteenuste loomisele keskendumise asemel kulub liigne aeg testimisele, juurutamisele ja kujundamisele
  • Koodi käsitsi juurutamine, mis põhjustab tootmises vigu
  • Erinevused arendus- ja operatiivmeeskonna ajakavades põhjustavad täiendavaid viivitusi

DevOpsi juhend algajatele

DevOpsi, Agile'i ja traditsioonilise IT vastasseis

DevOpsi arutatakse sageli seoses teiste IT-tavadega, eriti Agile ja Waterfall IT-ga.

Agile on tarkvara tootmise põhimõtete, väärtuste ja tavade kogum. Seega, kui teil on näiteks idee, mida soovite tarkvaraks muuta, võite kasutada Agile’i põhimõtteid ja väärtusi. Kuid see tarkvara saab töötada ainult arendus- või testimiskeskkonnas. Vajate lihtsat ja turvalist viisi oma tarkvara kiireks ja korratavaks tootmisse viimiseks ning selleks on DevOpsi tööriistad ja tehnikad. Agiilne tarkvaraarendus keskendub arendusprotsessidele ning DevOps vastutab arenduse ja juurutamise eest kõige turvalisemal ja usaldusväärsemal viisil.

Traditsioonilise kosemudeli võrdlemine DevOpsiga on hea viis DevOpsi eeliste mõistmiseks. Järgmises näites eeldatakse, et rakendus on saadaval nelja nädala pärast, arendus on 85% valmis, rakendus on reaalajas ja serverite ostmise protsess koodi saatmiseks on just alanud.

Traditsioonilised protsessid
Protsessid DevOpsis

Pärast uute serverite tellimuse esitamist töötab arendusmeeskond testimise kallal. Töörühm töötab ulatusliku dokumentatsiooni kallal, mida ettevõtted vajavad infrastruktuuri juurutamiseks.
Kui uute serverite tellimus on esitatud, töötavad arendus- ja operatiivmeeskonnad koos protsesside ja paberimajanduse kallal uute serverite installimiseks. See võimaldab teil paremini mõista oma infrastruktuuri nõudeid.

Teave tõrkesiirde, koondamise, andmekeskuste asukohtade ja salvestusnõuete kohta on valesti esitatud, kuna puudub sisend sügavate domeeniteadmistega arendusmeeskonnalt.
Üksikasjad tõrkesiirde, koondamise, avariitaaste, andmekeskuste asukoha ja salvestusnõuete kohta on arendusmeeskonna panuse tõttu teada ja õiged.

Operatiivmeeskonnal pole arendusmeeskonna edusammudest aimugi. Samuti töötab ta välja oma ideede põhjal seireplaani.

Operatsioonimeeskond on arendusmeeskonna edusammudest täielikult teadlik. Ta suhtleb ka arendusmeeskonnaga ning nad töötavad koos välja IT- ja ärivajadustele vastava seireplaani. Nad kasutavad ka rakenduse jõudluse jälgimise (APM) tööriistu.

Enne rakenduse käivitamist läbi viidud koormustest põhjustab rakenduse krahhi, mis lükkab selle käivitamist edasi.
Enne rakenduse käivitamist tehtud koormustesti tulemuseks on halb jõudlus. Arendusmeeskond lahendab kitsaskohad kiiresti ja rakendus käivitub õigel ajal.

DevOpsi elutsükkel

DevOps hõlmab teatud üldtunnustatud tavade kasutuselevõttu.

Pidev planeerimine

Pidev planeerimine tugineb säästlikele põhimõtetele, et alustada väikesest, tuvastades ressursid ja väljundid, mis on vajalikud ettevõtte või visiooni väärtuse testimiseks, pidevaks kohanemiseks, edusammude mõõtmiseks, klientide vajadustest õppimiseks, vajaduse korral suuna muutmiseks, et kohandada agilityt, ja äriplaani uuesti väljamõtlemiseks.

Ühine areng

Koostöös toimuv arendusprotsess võimaldab ettevõtetel, arendusmeeskondadel ja testimismeeskondadel erinevates ajavööndites pidevalt kvaliteetset tarkvara tarnida. See hõlmab mitme platvormi arendamist, keeleülese programmeerimise tuge, kasutajalugude loomist, ideearendust ja elutsükli haldamist. Koostööarendus hõlmab pideva integreerimise protsessi ja praktikat, mis soodustab sagedast koodide integreerimist ja automatiseeritud ehitamist. Rakenduses koodi sageli juurutades tuvastatakse integratsiooniprobleemid elutsükli varajases staadiumis (kui neid on lihtsam parandada) ja pideva tagasiside kaudu vähendatakse üldist integreerimistööd, kuna projekt näitab pidevat ja nähtavat edenemist.

Pidev testimine

Pidev testimine vähendab testimise kulusid, aidates arendusmeeskondadel kiirust ja kvaliteeti tasakaalustada. Samuti kõrvaldab see teenuse virtualiseerimise kaudu testimise kitsaskohad ja teeb lihtsaks virtualiseeritud testimiskeskkondade loomise, mida saab süsteemide muutudes hõlpsasti jagada, juurutada ja värskendada. Need võimalused vähendavad testkeskkondade ettevalmistamise ja hooldamise kulusid ning lühendavad testitsükli aegu, võimaldades integratsiooni testimist elutsükli varasemas etapis.

Pidev vabastamine ja juurutamine

Need tehnikad toovad endaga kaasa põhipraktika: pideva vabastamise ja kasutuselevõtu. Selle tagab pidev torujuhe, mis automatiseerib võtmeprotsesse. See vähendab käsitsi samme, ressursside ooteaegu ja ümbertöötamist, võimaldades juurutamist ühe nupuvajutusega, mille tulemuseks on rohkem väljalaseid, vähem vigu ja täielik läbipaistvus.

Automatiseerimine mängib võtmerolli stabiilse ja usaldusväärse tarkvara väljalaske tagamisel. Üks suurimaid väljakutseid on käsitsi protsesside (nt koostamine, regressioon, juurutamine ja infrastruktuuri loomine) võtmine ja nende automatiseerimine. See nõuab lähtekoodi versiooni kontrolli; testimise ja kasutuselevõtu stsenaariumid; infrastruktuuri ja rakenduste konfiguratsiooniandmed; ning teegid ja paketid, millest rakendus sõltub. Teine oluline tegur on võimalus küsida kõigi keskkondade olekut.

Pidev jälgimine

Pidev jälgimine pakub ettevõtte tasemel aruandlust, mis aitab arendusmeeskondadel mõista rakenduste saadavust ja jõudlust tootmiskeskkondades enne nende tootmisse juurutamist. Pideva seirega saadud varajane tagasiside on vigade kulude vähendamiseks ja projektide õiges suunas juhtimiseks ülioluline. See tava hõlmab sageli jälgimistööriistu, mis tavaliselt näitavad rakenduse jõudlusega seotud mõõdikuid.

Pidev tagasiside ja optimeerimine

Pidev tagasiside ja optimeerimine annavad visuaalse ülevaate kliendivoogudest ja määratlevad probleemsed piirkonnad. Tagasisidet saab lisada nii müügieelsesse kui ka -järgsesse etappi, et maksimeerida väärtust ja tagada veelgi rohkemate tehingute edukas sooritamine. Kõik see annab kohese visualiseerimise klientide probleemide algpõhjustest, mis mõjutavad nende käitumist ja ärimõju.

DevOpsi juhend algajatele

DevOpsi eelised

DevOps võib aidata luua keskkonda, kus arendajad ja operaatorid töötavad meeskonnana ühiste eesmärkide saavutamiseks. Selle protsessi oluline verstapost on pideva integratsiooni ja pideva edastamise (CI/CD) rakendamine. Need tehnikad võimaldavad meeskondadel tarkvara kiiremini turule tuua vähemate vigadega.

DevOpsi olulised eelised on:

  • Ettenähtavus: DevOps pakub uute versioonide puhul oluliselt madalamat tõrkemäära.
  • Hooldatavus: DevOps võimaldab hõlpsat taastamist, kui uus versioon ebaõnnestub või rakendus läheb töösse.
  • Reprodutseeritavus: järgu või koodi versioonijuhtimine võimaldab teil vajaduse korral varasemaid versioone taastada.
  • Kõrgem kvaliteet: infrastruktuuri probleemide lahendamine parandab rakenduste arendamise kvaliteeti.
  • Turule jõudmise aeg: tarkvara tarnimise optimeerimine vähendab turule jõudmise aega 50%.
  • Riski vähendamine: turvalisuse rakendamine tarkvara elutsüklis vähendab defektide arvu kogu elutsükli jooksul.
  • Kulutõhusus: Tarkvaraarenduse kuluefektiivsuse taotlemine meeldib tippjuhtkonnale.
  • Stabiilsus: Tarkvarasüsteem on stabiilsem, turvalisem ja muudatusi saab auditeerida.
  • Suurema koodibaasi jagamine hallatavateks tükkideks: DevOps põhineb agiilsetel arendusmeetoditel, mis võimaldab jagada suure koodibaasi väiksemateks hallatavateks osadeks.

DevOpsi põhimõtted

DevOpsi kasutuselevõtt tõi kaasa mitmed põhimõtted, mis on arenenud (ja arenevad edasi). Enamik lahenduste pakkujaid on erinevate tehnikate jaoks välja töötanud oma modifikatsioonid. Kõik need põhimõtted põhinevad terviklikul lähenemisel DevOpsile ja igas suuruses organisatsioonid saavad neid kasutada.

Arendage ja testige tootmist sarnases keskkonnas

Idee on võimaldada arendus- ja kvaliteeditagamise (QA) meeskondadel arendada ja testida süsteeme, mis käituvad nagu tootmissüsteemid, et nad näeksid, kuidas rakendus käitub ja toimib juba ammu enne, kui see on kasutuselevõtuks valmis.

Rakendus tuleks ühendada tootmissüsteemidega võimalikult varajases elutsüklis, et lahendada kolm peamist võimalikku probleemi. Esiteks võimaldab see rakendust testida reaalsele keskkonnale lähedases keskkonnas. Teiseks võimaldab see rakenduste edastamise protsesse eelnevalt testida ja kinnitada. Kolmandaks võimaldab see operatiivmeeskonnal elutsükli alguses testida, kuidas nende keskkond rakenduste juurutamisel käitub, võimaldades seeläbi luua väga kohandatud rakendusekeskse keskkonna.

Kasutage korratavate ja usaldusväärsete protsessidega

See põhimõte võimaldab arendus- ja operatsioonimeeskondadel toetada agiilseid tarkvaraarendusprotsesse kogu tarkvara elutsükli jooksul. Automatiseerimine on iteratiivsete, usaldusväärsete ja korratavate protsesside loomisel ülioluline. Seetõttu peab organisatsioon looma tarnetorustiku, mis võimaldab pidevat automatiseeritud juurutamist ja testimist. Sage juurutamine võimaldab ka meeskondadel juurutusprotsesse testida, vähendades seeläbi juurutamise tõrgete ohtu reaalajas väljalaske ajal.

Töö kvaliteedi jälgimine ja kontrollimine

Organisatsioonid suudavad hästi jälgida tootmisrakendusi, kuna neil on tööriistad, mis salvestavad reaalajas mõõdikuid ja peamisi jõudlusnäitajaid (KPI). See põhimõte liigutab jälgimist elutsükli alguses, tagades, et automatiseeritud testimine jälgib rakenduse funktsionaalseid ja mittefunktsionaalseid atribuute protsessi alguses. Iga kord, kui rakendust testitakse ja juurutatakse, tuleb kvaliteedimõõdikuid uurida ja analüüsida. Järelevalvetööriistad hoiatavad varakult tootmis- ja kvaliteediprobleemide eest, mis võivad tootmise käigus tekkida. Need näitajad tuleb koguda kõigile sidusrühmadele kättesaadavas ja arusaadavas vormingus.

Tagasiside parandamine

DevOpsi protsesside üks eesmärke on võimaldada organisatsioonidel kiiremini reageerida ja muudatusi teha. Tarkvara tarnimisel nõuab see eesmärk, et organisatsioon saaks varakult tagasisidet ja seejärel õpiks kiiresti igast tehtud tegevusest. See põhimõte nõuab organisatsioonidelt suhtluskanalite loomist, mis võimaldavad sidusrühmadel juurde pääseda ja tagasisidet anda. Arendust saab teha oma projektiplaane või prioriteete kohandades. Tootmine võib toimida tootmiskeskkonda parandades.

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
  • Assamblee: Apache Maven, Gradle, Apache Ant, Packer
  • Testid: JUnit, kurk, seleen, Apache JMeter

Ops

  • Väljalaskmine, juurutamine, toimingud: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper jne, Netflix Archaius, Terraform
  • Jälgimine: Grafana, Prometheus, Nagios, InfluxDB, Fluentd ja teised selles juhendis käsitletud

(*Operatsioonitööriistad on nummerdatud operatsioonimeeskondade kasutuse järjekorras, kuid nende tööriistad kattuvad väljalaske- ja juurutustööriistade elutsükli etappidega. Loetavuse hõlbustamiseks on nummerdamine eemaldatud.)

Kokkuvõttes

DevOps on üha populaarsemaks muutuv metoodika, mille eesmärk on viia arendajad ja toimingud üheks üksuseks kokku. See on ainulaadne, erineb traditsioonilistest IT-toimingutest ja täiendab Agile'i (kuid pole nii paindlik).

DevOpsi juhend algajatele

Uurige SkillFactory tasuliste veebikursuste läbimise üksikasju selle kohta, kuidas saada ihaldatud elukutse nullist või Level Up oskuste ja palga osas:

rohkem kursusi

Kasulik

Allikas: www.habr.com

Lisa kommentaar