DevOps-gids vir beginners

Wat is die belangrikheid van DevOps, wat beteken dit vir IT-professionals, beskrywing van metodes, raamwerke en gereedskap.

DevOps-gids vir beginners

Baie het gebeur sedert die term DevOps in die IT-wêreld posgevat het. Met baie van die ekosisteem oopbron, is dit belangrik om te heroorweeg hoekom dit begin het en wat dit beteken vir 'n loopbaan in IT.

Wat is DevOps

Alhoewel daar geen enkele definisie is nie, glo ek dat DevOps 'n tegnologieraamwerk is wat samewerking tussen ontwikkelingspanne en bedryfspanne in staat stel om kode vinniger na produksieomgewings te ontplooi met die vermoë om te repliseer en te outomatiseer. Ons sal die res van die artikel spandeer om hierdie stelling uit te pak.

Die woord "DevOps" is 'n kombinasie van die woorde "ontwikkeling" (ontwikkeling) en "operasies" (bedrywighede). DevOps help om die lewering van toepassings en dienste te bespoedig. Dit stel organisasies in staat om hul kliënte doeltreffend te bedien en meer mededingend in die mark te word. Eenvoudig gestel, DevOps gaan oor belyning tussen ontwikkeling en IT-bedrywighede, met beter kommunikasie en samewerking.

DevOps beoog 'n kultuur waar samewerking tussen ontwikkelingspanne, operateurs en besigheidspanne as krities beskou word. Dit gaan nie net oor gereedskap nie, want DevOps in 'n organisasie lewer ook konsekwent waarde aan kliënte. Gereedskap is een van sy pilare, saam met mense en prosesse. DevOps verhoog die vermoë van organisasies om oplossings van hoë gehalte in die kortste moontlike tyd te lewer. DevOps outomatiseer ook alle prosesse, van bou tot ontplooiing, toepassing of produk.

Die DevOps-bespreking fokus op die verhouding tussen ontwikkelaars, die mense wat sagteware skryf vir 'n lewe, en die operateurs wat verantwoordelik is vir die instandhouding van daardie sagteware.

Uitdagings vir die ontwikkelingspan

Ontwikkelaars is geneig om entoesiasties en gewillig te wees om nuwe benaderings en tegnologieë te implementeer om organisatoriese probleme op te los. Hulle het egter ook sekere probleme in die gesig:

  • Die mededingende mark skep baie druk om die produk betyds te lewer.
  • Hulle moet sorg vir die bestuur van produksie-gereed kode en die implementering van nuwe funksies.
  • Die vrystellingsiklus kan lank wees, so die ontwikkelingspan moet verskeie aannames maak voordat toepassings ontplooi word. In hierdie scenario is meer tyd nodig om probleme op te los wat tydens ontplooiing na 'n produksie- of toetsomgewing ontstaan.

Uitdagings wat die bedryfsgroep in die gesig staar

Bedryfsgroepe het histories gefokus op die stabiliteit en betroubaarheid van IT-dienste. Dit is hoekom operasionele spanne stabiliteit soek deur veranderinge in hulpbronne, tegnologieë of benaderings. Hul take sluit in:

  • Bestuur hulpbrontoewysing soos die vraag groei.
  • Hantering van veranderinge in ontwerp of aanpassings wat vereis word om van toepassing te wees op 'n produksie-omgewing.
  • Diagnoseer en los produksieverwante kwessies op na selfontplooiing van toepassings.

Hoe DevOps ontwikkelings- en bedryfsprobleme oplos

In plaas daarvan om 'n groot aantal toepassingskenmerke gelyktydig uit te voer, probeer maatskappye kyk of hulle 'n klein aantal kenmerke aan hul kliënte kan uitrol deur 'n reeks vrystelling-iterasies. Hierdie benadering hou 'n aantal voordele in soos beter sagtewarekwaliteit, vinniger klantterugvoer, ens. Dit verseker op sy beurt 'n hoë mate van klanttevredenheid. Om hierdie doelwitte te bereik, word van maatskappye verwag om:

  • Verminder die mislukkingsyfer vir nuwe vrystellings
  • Verhoog ontplooiingsfrekwensie
  • Behaal vinniger gemiddelde tyd tot herstel in die geval van 'n nuwe toepassingvrystelling.
  • Verminder tyd vir regstellings

DevOps sorg vir al hierdie take en help om 'n naatlose aflewering te verseker. Organisasies gebruik DevOps om prestasievlakke te bereik wat net 'n paar jaar gelede ondenkbaar was. Hulle voer dosyne, honderde en selfs duisende ontplooiings per dag uit terwyl hulle wêreldklas betroubaarheid, stabiliteit en sekuriteit lewer. (Kom meer te wete oor lotgroottes en hul impak op sagteware-lewering).

DevOps poog om verskeie kwessies aan te spreek wat voortspruit uit vorige metodologieë, insluitend:

  • Isolasie van die werk van ontwikkelingspanne en operateurs
  • Toets en ontplooiing as afsonderlike fases na ontwerp en bou wat langer neem as bousiklusse.
  • Oormatige tyd bestee aan toetsing, ontplooiing en ontwerp in plaas daarvan om op die bou van kernbesigheidsdienste te fokus
  • Handmatige kode-ontplooiing wat lei tot foute in produksie
  • Verskille in die skedules van ontwikkeling- en bedryfspanne wat tot bykomende vertragings lei

DevOps-gids vir beginners

Konfrontasie van DevOps, Agile en tradisionele IT

DevOps word dikwels bespreek in verband met ander IT-praktyke, veral ratse en waterval IT-infrastruktuur.

Agile is 'n stel beginsels, waardes en metodes vir die vervaardiging van sagteware. So, byvoorbeeld, as jy 'n idee het wat jy in sagteware wil omskep, kan jy Agile-beginsels en -waardes gebruik. Maar hierdie sagteware kan slegs in 'n ontwikkeling- of toetsomgewing loop. Jy wil 'n eenvoudige, veilige manier hê om sagteware vinnig en herhaaldelik na produksie te skuif, en die pad is deur DevOps-nutsgoed en -praktyke. Agile sagteware-ontwikkeling fokus op ontwikkelingsprosesse, met DevOps wat verantwoordelik is vir die ontwikkeling en ontplooiing op die veiligste, betroubaarste manier moontlik.

Om die tradisionele watervalmodel met DevOps te vergelyk, is 'n goeie manier om die voordele te verstaan ​​wat DevOps inhou. Die volgende voorbeeld veronderstel dat die toepassing oor vier weke bekendgestel sal word, ontwikkeling is 85% voltooi, die toepassing sal regstreeks wees, en die proses van die aankoop van bedieners vir kode-indiening het pas begin.

Tradisionele prosesse
Prosesse in DevOps

Nadat 'n bestelling vir nuwe bedieners geplaas is, werk die ontwikkelingspan aan toetsing. Die fokusgroep werk aan die uitgebreide dokumentasie wat ondernemings nodig het om die infrastruktuur te ontplooi.
Nadat 'n bestelling vir nuwe bedieners geplaas is, werk die ontwikkeling- en bedryfspanne saam aan die prosesse en werkvloei vir die installering van nuwe bedieners. Dit laat jou toe om die infrastruktuurvereistes beter te verstaan.

Verwronge inligting oor failover, oortolligheid, datasentrumligging en bergingvereistes ontbreek insette van 'n ontwikkelingspan wat diep kennis van die toepassing het.
Gedetailleerde inligting oor failover, oortolligheid, rampherstel, datasentrumliggings en bergingsvereistes is bekend en korrek vanweë die bydrae van die ontwikkelingspan.

Die taakspan het geen idee van die ontwikkelingspan se vordering nie. Sy ontwikkel ook 'n moniteringsplan gebaseer op haar eie idees.

Die taakspan is ten volle bewus van die vordering wat die ontwikkelingspan gemaak het. Sy het ook interaksie met die ontwikkelingspan en hulle ontwikkel gesamentlik 'n moniteringsplan wat aan IT- en besigheidsbehoeftes voldoen. Hulle gebruik ook toepassingsprestasiemonitering (APM)-instrumente.

'n Vragtoets wat uitgevoer word voordat 'n toepassing geloods word, veroorsaak dat die toepassing ineenstort, wat die bekendstelling daarvan vertraag.
'n Vragtoets wat uitgevoer word voordat die toepassing geloods word, lei tot prestasieverlaging. Die ontwikkelingspan skakel bottelnekke vinnig uit en die toepassing begin betyds.

DevOps Lewensiklus

DevOps behels die aanvaarding van sekere algemeen aanvaarde praktyke.

Deurlopende beplanning

Deurlopende beplanning maak gebruik van die beginsels van lean om klein te begin deur die hulpbronne en resultate te identifiseer wat nodig is om die waarde van die besigheid of visie te toets, voortdurend aan te pas, vordering te meet, uit klantbehoeftes te leer, rigting te verander soos nodig om behendigheid te akkommodeer, en besigheid op te dateer. beplan.

Gesamentlike ontwikkeling

Die samewerkende ontwikkelingsproses laat besighede, ontwikkelingspanne en toetsspanne oor verskeie tydsones toe om voortdurend kwaliteitsagteware te lewer. Dit sluit multi-platform ontwikkeling, meertalige programmering ondersteuning, gebruiker storie skepping, idees, en lewensiklus bestuur. Samewerkende ontwikkeling sluit die proses en praktyk van deurlopende integrasie in, wat gereelde kode-integrasie en outomatiese bouwerk aanmoedig. Deur gereeld kode in 'n toepassing in te spuit, word integrasiekwessies vroeg in die lewensiklus opgespoor (wanneer dit makliker is om reg te stel), en die algehele integrasiepoging word verminder deur deurlopende terugvoer aangesien die projek deurlopende en aantoonbare vordering toon.

Deurlopende toetsing

Deurlopende toetsing verminder die koste van toetsing deur ontwikkelingspanne te help om spoed en kwaliteit te balanseer. Dit verwyder ook toetsbottelnekke deur diensvirtualisering en maak dit maklik om gevirtualiseerde toetsomgewings te skep wat maklik gedeel, ontplooi en opgegradeer kan word soos wat stelsels verander. Hierdie vermoëns verminder die koste van voorsiening en instandhouding van toetsomgewings, asook verkorting van die toetssiklustyd, sodat integrasietoetsing vroeg in die lewensiklus uitgevoer kan word.

Deurlopende vrystelling en ontplooiing

Hierdie metodologieë bring een van die kernpraktyke saam: deurlopende vrystelling en ontplooiing. Dit bied 'n deurlopende pyplyn wat sleutelprosesse outomatiseer. Dit verminder handstappe, hulpbronwagtye en herwerk deur drukknoppie-ontplooiing moontlik te maak vir meer vrystellings, minder foute en volle deursigtigheid.

Outomatisering speel 'n sleutelrol om 'n stabiele en betroubare sagtewarevrystelling te verseker. Een van die grootste uitdagings is om handprosesse soos bou, regressie, ontplooiing en infrastruktuur te neem en dit te outomatiseer. Dit vereis bronkode weergawe beheer; toets- en ontplooiingscenario's; toepassingsinfrastruktuur en konfigurasiedata; asook die biblioteke en pakkette waarvan die toepassing afhanklik is. Nog 'n belangrike faktor is die vermoë om die status van alle omgewings te bevraagteken.

Deurlopende monitering

Deurlopende monitering verskaf verslagdoening op ondernemingsgraad wat ontwikkelingspanne help om die beskikbaarheid en werkverrigting van toepassings in 'n produksie-omgewing te verstaan ​​voordat hulle na produksie ontplooi word. Die vroeë terugvoer wat deur deurlopende monitering verskaf word, is van kritieke belang om die koste van foute te verminder en projekte in die regte rigting te laat beweeg. Hierdie praktyk sluit dikwels moniteringsinstrumente in, wat geneig is om statistieke te openbaar wat verband hou met toepassingsprestasie.

Konstante terugvoer en optimalisering

Deurlopende terugvoer en optimalisering bied 'n visuele voorstelling van kliëntevloei en identifiseer probleemareas. Terugvoer kan in beide die voorverkope- en naproduksiestadium ingesluit word om waarde te maksimeer en te verseker dat nog meer transaksies suksesvol afgehandel word. Dit alles bied onmiddellike sigbaarheid in die grondoorsaak van klantekwessies wat hul gedrag en impak op die besigheid beïnvloed.

DevOps-gids vir beginners

Voordele van DevOps

DevOps kan help om 'n omgewing te skep waar ontwikkelaars en operateurs as 'n span saamwerk om gemeenskaplike doelwitte te bereik. 'n Belangrike mylpaal in hierdie proses is die bekendstelling van deurlopende integrasie en deurlopende aflewering (CI/CD). Hierdie tegnieke sal spanne in staat stel om sagteware vinniger na die mark te bring met minder foute.

Die belangrike voordele van DevOps is:

  • Voorspelbaarheid: DevOps bied aansienlik laer mislukkingsyfers vir nuwe vrystellings.
  • Onderhoubaarheid: DevOps bied maklike herstel in die geval van mislukkings in 'n nuwe vrystelling of toepassingssluiting.
  • Herhaalbaarheid: 'n Weergawebeheerstelsel vir 'n samestelling of kode laat jou toe om vroeëre weergawes te herstel soos nodig.
  • Hoër gehalte: Die oplossing van infrastruktuurprobleme verbeter die kwaliteit van toepassingsontwikkeling.
  • Tyd tot mark: Optimalisering van sagteware-aflewering verminder tyd tot mark met 50%.
  • Risikovermindering: Om veiligheid in die sagteware-lewensiklus te verseker, verminder die aantal defekte deur die lewensiklus.
  • Kostedoeltreffendheid: Die strewe na kostedoeltreffendheid in sagteware-ontwikkeling doen 'n beroep op senior bestuur.
  • Stabiliteit: Die sagtewarestelsel is meer stabiel, veilig en veranderinge kan getoets word.
  • Groter kodebasis word in hanteerbare dele opgebreek: DevOps is gebaseer op ratse ontwikkelingspraktyke wat jou toelaat om 'n groot kodebasis in kleiner, hanteerbare dele af te breek.

DevOps-beginsels

Die aanvaarding van DevOps het verskeie beginsels tot gevolg gehad wat ontwikkel het (en steeds ontwikkel). Die meeste oplossingsverskaffers het hul eie wysigings aan die verskillende metodologieë ontwikkel. Al hierdie beginsels is gebaseer op 'n holistiese benadering tot DevOps, en organisasies van alle groottes kan dit gebruik.

Ontwikkel en toets in 'n produksie-agtige omgewing

Die punt is om ontwikkeling- en kwaliteitversekering (QA)-spanne toe te laat om stelsels te ontwikkel en te toets wat soos produksiestelsels optree, sodat hulle kan sien hoe die toepassing optree en goed presteer voordat dit gereed is vir ontplooiing. .

Die toepassing moet so vroeg as moontlik in die lewensiklus aan produksiestelsels gekoppel word om drie hoof potensiële probleme aan te spreek. Eerstens laat dit jou toe om die toepassing in 'n omgewing naby die werklike omgewing te toets. Tweedens laat dit jou toe om aansoekafleweringsprosesse vooraf te toets en te bekragtig. Derdens stel dit die bedryfspan in staat om vroeg in die lewensiklus te toets hoe hul omgewing sal optree wanneer toepassings ontplooi word, waardeur hulle 'n hoogs aanpasbare, toepassinggesentreerde omgewing kan skep.

Ontplooiing met reproduceerbare, betroubare prosesse

Hierdie beginsel laat ontwikkeling- en bedryfspanne toe om ratse sagteware-ontwikkelingsprosesse deur die hele lewensiklus te handhaaf. Outomatisering is van kritieke belang om iteratiewe, betroubare en reproduceerbare prosesse te skep. Daarom moet die organisasie 'n afleweringspyplyn skep wat deurlopende, outomatiese ontplooiing en toetsing moontlik maak. Gereelde ontplooiing laat spanne ook toe om ontplooiingsprosesse te toets, waardeur die risiko van ontplooiingsmislukkings tydens werklike vrystellings verminder word.

Monitering en kontrolering van die kwaliteit van werk

Organisasies is goed met die monitering van produksietoepassings omdat hulle gereedskap het wat metrieke en sleutelprestasie-aanwysers (KPI's) intyds vaslê. Hierdie beginsel beweeg monitering vroeg in die lewensiklus, om te verseker dat geoutomatiseerde toetsing die funksionele en nie-funksionele eienskappe van 'n toepassing vroeg in die proses naspoor. Wanneer 'n toepassing getoets en ontplooi word, moet die kwaliteitmaatstawwe ondersoek en ontleed word. Moniteringsinstrumente verskaf vroeë waarskuwing van bedryfs- en kwaliteitkwessies wat tydens produksie kan ontstaan. Hierdie aanwysers moet versamel word in 'n formaat wat toeganklik en verstaanbaar is vir alle belanghebbendes.

Verbetering van terugvoerlusse

Een van die doelwitte van DevOps-prosesse is om organisasies in staat te stel om vinniger te reageer en veranderinge aan te bring. Wanneer sagteware gelewer word, vereis hierdie doel dat die organisasie vroeg terugvoer ontvang en dan vinnig leer uit elke aksie wat geneem word. Hierdie beginsel vereis van organisasies om kommunikasiekanale te skep wat belanghebbendes in staat stel om toegang te verkry en op 'n terugvoerbasis te kommunikeer. Ontwikkeling kan gedoen word deur hul projekplanne of prioriteite aan te pas. Vervaardiging kan optree deur die werksomgewing te verbeter.

dev

  • Beplanning: Kanboard, Wekan en ander Trello-alternatiewe GitLab, Tuleap, Redmine en ander JIRA-alternatiewe Mattermost, Roit.im, IRC en ander alternatiewe vir Slack.
  • Kode skryf: Git, Gerrit, Bugzilla; Jenkins en ander oopbron CI/CD-instrumente
  • Vergadering: Apache Maven, Gradle, Apache Ant, Packer
  • toetse: JUnit, Komkommer, Selenium, Apache JMeter

Ops

  • Vrystelling, ontplooiing, bedrywighede: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper, ens., Netflix Archaius, Terraform
  • Monitering: Grafana, Prometheus, Nagios, InfluxDB, Fluentd en meer word in hierdie gids behandel

(* Die nutsmiddels vir bewerkings is genommer in volgorde om deur die bewerkingsbevele gebruik te word, maar hul gereedskap word oorvleuel deur die lewensiklusstadia van die vrystelling- en ontplooiingsnutsgoed. Die nommering is verwyder vir leesbaarheid.)

Ten slotte

DevOps is 'n toenemend gewilde metodologie wat daarop gemik is om ontwikkelaars en operateurs bymekaar te bring. Dit is uniek, anders as tradisionele IT-bedrywighede, en aanvullend tot Agile (maar nie so buigsaam nie).

DevOps-gids vir beginners

Vind die besonderhede uit van hoe om 'n gesogte beroep van nuuts af te kry of Level Up in terme van vaardighede en salaris deur SkillFactory betaalde aanlynkursusse te voltooi:

meer kursusse

nuttige

Bron: will.com

Voeg 'n opmerking