DevOps-gids foar begjinners

Wat is it belang fan DevOps, wat betsjut it foar IT-professionals, in beskriuwing fan metoaden, kaders en ark.

DevOps-gids foar begjinners

Der is in protte bard sûnt de term DevOps naam yn 'e IT-wrâld. Mei in protte fan it ekosysteem iepen boarne, is it wichtich om opnij te besjen wêrom't it begon en wat it betsjut foar in karriêre yn IT.

Wat is DevOps

Hoewol d'r gjin ienige definysje is, leau ik dat DevOps in technologyske ramt is dat gearwurking tusken ûntwikkelings- en operaasjeteams mooglik makket om koade rapper yn produksjeomjouwings yn te setten mei de mooglikheid om te iterearjen en te automatisearjen. Wy sille de rest fan dit artikel besteegje oan it útpakken fan dizze claim.

It wurd "DevOps" is in kombinaasje fan de wurden "ûntwikkeling" en "operaasjes". DevOps helpt de snelheid fan levering fan applikaasjes en tsjinsten te ferheegjen. Hjirmei kinne organisaasjes har klanten effektyf tsjinje en konkurrearjender wurde op 'e merk. Simply set, DevOps is de ôfstimming tusken ûntwikkeling en IT-operaasjes mei effektiver kommunikaasje en gearwurking.

DevOps omfettet in kultuer wêrby't gearwurking tusken ûntwikkeling, operaasjes en saaklike teams as kritysk wurdt beskôge. It giet net allinich om ark, om't DevOps yn in organisaasje ek kontinu profitearret fan klanten. Tools binne ien fan har pylders, tegearre mei minsken en prosessen. DevOps fergruttet it fermogen fan organisaasjes om oplossingen fan hege kwaliteit yn 'e koartst mooglike tiid te leverjen. DevOps automatisearret ek alle prosessen, fan bou oant ynset, applikaasje of produkt.

De DevOps-diskusje rjochtet him op 'e relaasje tusken ûntwikkelders, de minsken dy't software skriuwe foar in libbene, en de operators dy't ferantwurdlik binne foar it ûnderhâld fan dy software.

Útdagings foar de ûntwikkeling team

Untwikkelders binne neigeraden entûsjast en entûsjast te wêzen om nije oanpakken en technologyen te ymplementearjen om organisatoaryske problemen op te lossen. Se hawwe lykwols ek te krijen mei bepaalde problemen:

  • De kompetitive merk soarget foar in soad druk om it produkt op 'e tiid te leverjen.
  • Se moatte soargje foar it behearen fan produksje-klear koade en it yntrodusearjen fan nije funksjes.
  • De frijlittingssyklus kin lang wêze, dus it ûntwikkelteam moat ferskate oannames meitsje foardat jo applikaasjes ymplementearje. Yn dit senario is mear tiid nedich om problemen op te lossen dy't ûntsteane by ynset nei in produksje- of testomjouwing.

Útdagings tsjinoer it operaasjeteam

Operaasjeteams hawwe histoarysk rjochte op 'e stabiliteit en betrouberens fan IT-tsjinsten. Dêrom sykje operaasjeteams stabiliteit troch feroaringen yn boarnen, technologyen of oanpak. Harren taken omfetsje:

  • Beheare boarne tawizing as fraach tanimt.
  • Behannelje ûntwerp- of oanpassingswizigingen dy't nedich binne foar gebrûk yn in produksjeomjouwing.
  • Diagnoaze en oplosse produksjeproblemen nei sels-ynset fan applikaasjes.

Hoe DevOps ûntwikkel- en operaasjeproblemen oplost

Ynstee fan it útroljen fan in grut oantal app-funksjes tagelyk, besykje bedriuwen te sjen oft se in lyts oantal funksjes nei har klanten kinne útrolje troch in searje release-iteraasjes. Dizze oanpak hat in oantal foardielen, lykas bettere softwarekwaliteit, rappere feedback fan klanten, ensfh. Dit soarget op syn beurt foar hege klanttefredenheid. Om dizze doelen te berikken binne bedriuwen ferplichte om:

  • Ferminderje it mislearringsnivo by it frijjaan fan nije releases
  • Ferheegje ynset frekwinsje
  • Berikke in rapper gemiddelde tiid foar herstel yn it gefal fan in nije applikaasje release.
  • Ferminderje tiid foar korreksjes

DevOps fiert al dizze taken en helpt te garandearjen ûnûnderbrutsen levering. Organisaasjes brûke DevOps om produktiviteitsnivo's te berikken dy't mar in pear jier lyn ûnfoarstelber wiene. Se fiere tsientallen, hûnderten en sels tûzenen ynset per dei út, wylst se betrouberens, stabiliteit en feiligens fan wrâldklasse leverje. (Learje mear oer lotgrutte en har ynfloed op softwarelevering).

DevOps besiket ferskate problemen op te lossen dy't fuortkomme út eardere metodologyen, ynklusyf:

  • Isolaasje fan wurk tusken ûntwikkelings- en operaasjeteams
  • Testen en ynset binne aparte fazen dy't foarkomme nei ûntwerp en bouw en fereaskje mear tiid dan bouwsyklusen.
  • Oermjittige tiid bestege oan testen, ynsette en ûntwerpen ynstee fan te fokusjen op it bouwen fan kearnbedriuwstsjinsten
  • Hânlieding ynset fan koade dy't liedt ta flaters yn produksje
  • Ferskillen yn ûntwikkelings- en operaasjeteamskema's dy't ekstra fertragingen feroarsaakje

DevOps-gids foar begjinners

Konfrontaasje tusken DevOps, Agile en tradisjonele IT

DevOps wurdt faak besprutsen yn relaasje ta oare IT-praktiken, benammen Agile en Waterfall IT.

Agile is in set fan prinsipes, wearden en praktiken foar softwareproduksje. Dus, bygelyks, as jo in idee hawwe dat jo wolle transformearje yn software, kinne jo Agile-prinsipes en wearden brûke. Mar dizze software kin allinich rinne yn in ûntwikkeling- of testomjouwing. Jo hawwe in ienfâldige, feilige manier nedich om jo software fluch en werhelle yn produksje te ferpleatsen, en de manier is fia DevOps-ark en techniken. Agile softwareûntwikkeling rjochtet him op ûntwikkelingsprosessen en DevOps is ferantwurdlik foar ûntwikkeling en ynset op 'e feilichste en betrouberste manier.

It fergelykjen fan it tradisjonele wetterfalmodel mei DevOps is in goede manier om de foardielen te begripen dy't DevOps bringt. It folgjende foarbyld giet derfan út dat de applikaasje yn fjouwer wiken live sil wêze, ûntwikkeling is 85% kompleet, de applikaasje sil live wêze, en it proses fan it keapjen fan servers om de koade te ferstjoeren is krekt begon.

Tradysjonele prosessen
Prosessen yn DevOps

Nei it pleatsen fan in bestelling foar nije servers, wurket it ûntwikkelteam oan testen. De taakgroep wurket oan 'e wiidweidige dokumintaasje dy't nedich is troch bedriuwen om ynfrastruktuer yn te setten.
Sadree't in bestelling foar nije servers is pleatst, wurkje de ûntwikkelings- en operaasjeteams gear oan 'e prosessen en papierwurk om de nije servers te ynstallearjen. Hjirmei kinne jo jo ynfrastruktuereasken better begripe.

Ynformaasje oer failover, redundânsje, lokaasjes fan datacenters en opslacheasken wurdt ferkeard fertsjintwurdige, om't d'r gjin ynput is fan in ûntwikkelteam dat djippe domeinkennis hat.
Details oer failover, redundânsje, rampherstel, lokaasjes fan datacenters en opslacheasken binne bekend en korrekt troch de ynput fan it ûntwikkelteam.

It operaasjeteam hat gjin idee oer de foarútgong fan it ûntwikkelteam. Op basis fan har eigen ideeën makket se ek in monitoringplan.

It operaasjeteam is folslein bewust fan 'e foarútgong makke troch it ûntwikkelingsteam. Se ynteraksje ek mei it ûntwikkelingsteam en se wurkje gear om in tafersjochplan te ûntwikkeljen dat foldocht oan IT- en saaklike behoeften. Se brûke ek ynstruminten foar tafersjoch fan applikaasjeprestaasjes (APM).

In loadtest útfierd foardat in applikaasje lanseart feroarsaket dat de applikaasje crasht, wêrtroch't de start fertrage.
In load test útfierd foardat it útfieren fan in applikaasje resultearret yn minne prestaasjes. It ûntwikkelteam lost knelpunten fluch op en de applikaasje lanseart op 'e tiid.

DevOps Lifecycle

DevOps omfettet it oannimmen fan bepaalde algemien akseptearre praktiken.

Trochrinnende planning

Trochrinnende planning fertrout op slanke prinsipes om lyts te begjinnen troch de boarnen en útgongen te identifisearjen dy't nedich binne om de wearde fan it bedriuw of fisy te testen, kontinu oan te passen, foarútgong te mjitten, leare fan klantbehoeften, rjochting feroarje as nedich om behendigheid te foldwaan, en bedriuwsplan opnij útfine.

Mienskiplike ûntwikkeling

It gearwurkjende ûntwikkelingsproses lit bedriuwen, ûntwikkelingsteams en testteams ferspraat oer ferskate tiidsônes kinne kontinu kwaliteitssoftware leverje. Dit omfettet ûntwikkeling fan meardere platfoarms, stipe foar cross-taal programmearring, oanmeitsjen fan brûkersferhalen, ûntwikkeling fan ideeën, en libbenssyklusbehear. Gearwurkingsûntwikkeling omfettet it proses en praktyk fan trochgeande yntegraasje, dy't faak koade-yntegraasje en automatisearre builds befoarderet. Troch it ynsetten fan koade faak nei in applikaasje, wurde yntegraasjeproblemen betiid yn 'e libbenssyklus identifisearre (as se makliker te reparearjen binne) en de totale yntegraasje-ynspanning wurdt fermindere troch trochgeande feedback, om't it projekt trochgeande en sichtbere foarútgong toant.

Trochrinnende testen

Trochrinnende testen ferleget de kosten fan testen troch ûntwikkelingsteams te helpen snelheid mei kwaliteit te balansearjen. It elimineert ek testknelpunten troch tsjinstvirtualisaasje en makket it maklik om virtualisearre testomjouwings te meitsjen dy't maklik kinne wurde dield, ynset en bywurke as systemen feroarje. Dizze mooglikheden ferminderje de kosten foar it leverjen en ûnderhâlden fan testomjouwings en ferkoartje testsyklustiden, wêrtroch yntegraasjetesten earder yn 'e libbenssyklus foarkomme kinne.

Trochrinnende frijlitting en ynset

Dizze techniken bringe in kearnpraktyk mei har: trochgeande frijlitting en ynset. Dit wurdt garandearre troch in trochgeande pipeline dy't wichtige prosessen automatisearret. It ferminderet manuele stappen, wachttiden fan boarnen en werwurk troch ynset yn te skeakeljen mei de druk op in knop, wat resulteart yn mear releases, minder flaters en folsleine transparânsje.

Automatisearring spilet in wichtige rol by it garandearjen fan stabile en betroubere frijlitting fan software. Ien fan 'e grutste útdagings is om manuele prosessen te nimmen lykas build, regression, ynset en oanmeitsjen fan ynfrastruktuer en se te automatisearjen. Dit fereasket boarnekoade ferzje kontrôle; senario's foar testen en ynset; ynfrastruktuer en applikaasje konfiguraasje gegevens; en de biblioteken en pakketten wêrfan de applikaasje hinget. In oare wichtige faktor is de mooglikheid om de steat fan alle omjouwings te freegjen.

Trochrinnende tafersjoch

Trochrinnende tafersjoch leveret rapportaazje fan ûndernimmingsklasse dy't ûntwikkelteams helpt om de beskikberens en prestaasjes fan applikaasjes yn produksjeomjouwings te begripen foardat se wurde ynset foar produksje. Iere feedback levere troch trochgeande tafersjoch is kritysk om de kosten fan flaters te ferminderjen en projekten yn 'e goede rjochting te stjoeren. Dizze praktyk omfettet faaks tafersjochynstruminten dy't typysk metriken iepenbierje relatearre oan applikaasjeprestaasjes.

Konstante feedback en optimalisaasje

Trochrinnende feedback en optimalisaasje jouwe in fisuele foarstelling fan klantstream en identifisearje probleemgebieten. Feedback kin opnommen wurde yn sawol foar- as post-ferkeapstadia om wearde te maksimalisearjen en te soargjen dat noch mear transaksjes mei sukses foltôge wurde. Dit alles soarget foar direkte fisualisaasje fan 'e woartel oarsaak fan klantproblemen dy't har gedrach en saaklike ynfloed beynfloedzje.

DevOps-gids foar begjinners

Foardielen fan DevOps

DevOps kin helpe om in omjouwing te meitsjen wêr't ûntwikkelders en operaasjes as team wurkje om mienskiplike doelen te berikken. In wichtige mylpeal yn dit proses is de ymplemintaasje fan trochgeande yntegraasje en trochgeande levering (CI / CD). Dizze techniken sille teams tastean om software rapper op 'e merk te krijen mei minder bugs.

Wichtige foardielen fan DevOps binne:

  • Foarsisberens: DevOps biedt in signifikant legere flaterrate foar nije releases.
  • Underhâldberens: DevOps soarget foar maklik herstel as in nije release mislearret of in applikaasje giet del.
  • Reproducibility: Ferzjekontrôle fan in build of koade kinne jo eardere ferzjes weromsette as nedich.
  • Hegere kwaliteit: It oanpakken fan ynfrastruktuerproblemen ferbettert de kwaliteit fan applikaasjeûntwikkeling.
  • Tiid nei merk: Optimalisearjen fan softwareferliening ferminderet tiid nei merk mei 50%.
  • Risikoreduksje: It ymplementearjen fan feiligens yn 'e software-libbenssyklus ferminderet it oantal defekten yn' e heule libbenssyklus.
  • Kosteneffisjinsje: It stribjen nei kosteneffisjinsje yn softwareûntwikkeling ropt senior management oan.
  • Stabiliteit: It softwaresysteem is stabiler, feiliger, en feroarings kinne wurde kontrolearre.
  • In gruttere koadebase ôfbrekke yn behearbere stikken: DevOps is basearre op agile ûntwikkelingsmetoaden, wêrtroch jo in grutte koadebase kinne ôfbrekke yn lytsere, behearbere stikken.

DevOps-prinsipes

De oanname fan DevOps joech oanlieding ta ferskate prinsipes dy't evoluearre binne (en trochgean te ûntwikkeljen). De measte oplossingproviders hawwe har eigen oanpassingen fan ferskate techniken ûntwikkele. Al dizze prinsipes binne basearre op in holistyske oanpak fan DevOps, en organisaasjes fan elke grutte kinne se brûke.

Untwikkelje en testen yn in produksje-like omjouwing

It idee is om teams foar ûntwikkeling en kwaliteitsfersekering (QA) yn te skeakeljen om systemen te ûntwikkeljen en te testen dy't har gedrage as produksjesystemen, sadat se kinne sjen hoe't de applikaasje gedraacht en prestearret lang foardat it klear is foar ynset.

De applikaasje moat sa betiid mooglik yn syn libbenssyklus ferbûn wêze mei produksjesystemen om trije grutte potinsjele problemen oan te pakken. As earste kinne jo de applikaasje testen yn in omjouwing tichtby de echte omjouwing. Twads lit it jo de prosessen foar levering fan applikaasjes foarôf testen en validearje. Tredde lit it it operaasjeteam betiid yn 'e libbenssyklus testje hoe't har omjouwing sil gedrage as applikaasjes wurde ynset, wêrtroch't se in heul oanpaste, applikaasje-sintraal omjouwing kinne meitsje.

Ynsette mei werheljebere, betroubere prosessen

Dit prinsipe lit ûntwikkelings- en operaasjeteams agile softwareûntwikkelingsprosessen stypje troch de heule softwarelibbenssyklus. Automatisearring is kritysk foar it meitsjen fan iterative, betroubere en werheljebere prosessen. Dêrom moat de organisaasje in leveringspipeline oanmeitsje dy't trochgeande, automatisearre ynset en testen mooglik makket. Frequente ynset lit teams ek ynsetprosessen testen, wêrtroch it risiko fan ynsetmislearrings tidens live releases ferminderje.

Kontrolearje en kontrolearje de kwaliteit fan it wurk

Organisaasjes binne goed yn tafersjoch op applikaasjes yn produksje, om't se ark hawwe dy't metriken en kaaiprestaasjesindikators (KPI's) yn realtime fange. Dit prinsipe beweecht tafersjoch betiid yn 'e libbenssyklus, en soarget derfoar dat automatisearre testen de funksjonele en net-funksjonele attributen fan in applikaasje betiid yn it proses kontrolearje. Wannear't in applikaasje wurdt hifke en ynset, moatte kwaliteitsmetriken wurde ûndersocht en analysearre. Tafersjochynstruminten jouwe iere warskôging foar operasjonele en kwaliteitsproblemen dy't kinne ûntstean tidens produksje. Dizze yndikatoaren moatte wurde sammele yn in formaat dat tagonklik en begryplik is foar alle belanghawwenden.

Ferbetterje Feedback Loops

Ien fan 'e doelen fan DevOps-prosessen is om organisaasjes yn steat te meitsjen om te reagearjen en feroaringen rapper te meitsjen. Yn softwareferliening fereasket dit doel dat de organisaasje betiid feedback krijt en dan gau leart fan elke nommen aksje. Dit prinsipe fereasket organisaasjes om kommunikaasjekanalen te meitsjen wêrmei belanghawwenden tagong krije kinne en ynteraksje op in feedbackmanier. Untwikkeling kin dien wurde troch jo projektplannen as prioriteiten oan te passen. Manufacturing kin hannelje troch it ferbetterjen fan de produksjeomjouwing.

dev

  • Planning: Kanboard, Wekan en oare Trello-alternativen; GitLab, Tuleap, Redmine en oare JIRA-alternativen; Mattermost, Roit.im, IRC en oare Slack-alternativen.
  • Skriuwkoade: Git, Gerrit, Bugzilla; Jenkins en oare iepen boarne ark foar CI / CD
  • Stel: Apache Maven, Gradle, Apache Ant, Packer
  • Tests: JUnit, Komkommer, Selenium, Apache JMeter

ops

  • Release, ynset, operaasjes: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, etcd, Netflix Archaius, Terraform
  • Monitoring: Grafana, Prometheus, Nagios, InfluxDB, Fluentd, en oaren behannele yn dizze gids

(*Operaasje-ark binne nûmere yn folchoarder fan gebrûk troch operaasjeteams, mar har tooling oerlapet de libbenssyklusstadia fan 'e release- en ynset ark. Foar gemak fan lêsberens is de nûmering fuorthelle.)

Yn ôfsluting

DevOps is in hieltyd populêrere metodyk dy't as doel hat ûntwikkelders en operaasjes byinoar te bringen as ien ienheid. It is unyk, oars as tradisjonele IT-operaasjes, en komplementearret Agile (mar is net sa fleksibel).

DevOps-gids foar begjinners

Fyn details oer hoe't jo in socht berop kinne krije fanôf it begjin as Level Up yn termen fan feardigens en salaris troch betelle online kursussen te nimmen fan SkillFactory:

mear kursussen

Nuttich

Boarne: www.habr.com

Add a comment