DevOps-opas aloittelijoille

Mikä on DevOpsin merkitys, mitä se tarkoittaa IT-ammattilaisille, kuvaus menetelmistä, viitekehyksestä ja työkaluista.

DevOps-opas aloittelijoille

Paljon on tapahtunut sen jälkeen, kun termi DevOps tuli voimaan IT-maailmassa. Koska suuri osa ekosysteemistä on avoimen lähdekoodin, on tärkeää pohtia uudelleen, miksi se sai alkunsa ja mitä se tarkoittaa IT-uran kannalta.

Mikä on DevOps

Vaikka ei ole olemassa yhtä määritelmää, uskon, että DevOps on teknologiakehys, joka mahdollistaa kehitys- ja toimintatiimien välisen yhteistyön koodin nopeamman käyttöönottamiseksi tuotantoympäristöissä iteroitavissa ja automatisoitavissa. Käytämme tämän artikkelin loppuosan tämän väitteen purkamiseen.

Sana "DevOps" on yhdistelmä sanoista "kehitys" ja "toiminta". DevOps auttaa nopeuttamaan sovellusten ja palveluiden toimitusta. Näin organisaatiot voivat palvella tehokkaasti asiakkaitaan ja tulla kilpailukykyisemmiksi markkinoilla. Yksinkertaisesti sanottuna DevOps on linjaus kehitys- ja IT-toimintojen välillä tehokkaamman viestinnän ja yhteistyön avulla.

DevOps sisältää kulttuurin, jossa kehitys-, operatiivisten ja liiketoimintatiimien välistä yhteistyötä pidetään kriittisenä. Kyse ei ole vain työkaluista, sillä organisaation DevOps hyödyttää jatkuvasti myös asiakkaita. Työkalut ovat yksi sen pilareista ihmisten ja prosessien ohella. DevOps lisää organisaatioiden kykyä toimittaa korkealaatuisia ratkaisuja mahdollisimman lyhyessä ajassa. DevOps myös automatisoi kaikki prosessit rakentamisesta käyttöönottoon, sovellukseen tai tuotteeseen.

DevOps-keskustelu keskittyy kehittäjien, elämiseen tarkoitettuja ohjelmistoja kirjoittavien ihmisten ja ohjelmiston ylläpidosta vastaavien operaattoreiden välisiin suhteisiin.

Haasteita kehitystiimille

Kehittäjät ovat yleensä innostuneita ja innokkaita ottamaan käyttöön uusia lähestymistapoja ja teknologioita organisatoristen ongelmien ratkaisemiseksi. He kohtaavat kuitenkin myös tiettyjä ongelmia:

  • Kilpailevat markkinat luovat paljon paineita toimittaa tuote ajallaan.
  • Heidän on huolehdittava tuotantovalmiiden koodien hallinnasta ja uusien ominaisuuksien käyttöönotosta.
  • Julkaisusykli voi olla pitkä, joten kehitystiimin on tehtävä useita oletuksia ennen sovellusten käyttöönottoa. Tässä skenaariossa tarvitaan enemmän aikaa tuotanto- tai testiympäristöön käyttöönoton aikana ilmenevien ongelmien ratkaisemiseen.

Toimintatiimin kohtaamat haasteet

Operatiiviset tiimit ovat historiallisesti keskittyneet IT-palveluiden vakauteen ja luotettavuuteen. Siksi toimintatiimit etsivät vakautta muuttamalla resursseja, teknologioita tai lähestymistapoja. Heidän tehtäviinsä kuuluvat:

  • Hallitse resurssien allokointia kysynnän kasvaessa.
  • Käsittele tuotantoympäristön käytön edellyttämät suunnittelu- tai räätälöintimuutokset.
  • Diagnosoi ja ratkaise tuotantoongelmia sovellusten itsensä käyttöönoton jälkeen.

Miten DevOps ratkaisee kehitys- ja käyttöongelmia

Sen sijaan, että yritykset ottaisivat käyttöön suuren määrän sovellusominaisuuksia kerralla, yritykset yrittävät selvittää, voivatko ne ottaa käyttöön pienen määrän ominaisuuksia asiakkailleen useiden julkaisujen iteraatioiden avulla. Tällä lähestymistavalla on useita etuja, kuten parempi ohjelmiston laatu, nopeampi asiakaspalaute jne. Tämä puolestaan ​​takaa korkean asiakastyytyväisyyden. Näiden tavoitteiden saavuttamiseksi yritysten on:

  • Pienennä epäonnistumistiheyttä, kun julkaiset uusia julkaisuja
  • Lisää käyttöönottotiheyttä
  • Saavuta nopeampi keskimääräinen palautumisaika, jos uusi sovellus julkaistaan.
  • Vähennä korjausten aikaa

DevOps suorittaa kaikki nämä tehtävät ja auttaa varmistamaan keskeytymättömän toimituksen. Organisaatiot käyttävät DevOpsia saavuttaakseen tuottavuuden tasoa, joka oli käsittämätön vielä muutama vuosi sitten. Ne suorittavat kymmeniä, satoja ja jopa tuhansia käyttöönottoja päivässä tarjoten samalla maailmanluokan luotettavuutta, vakautta ja turvallisuutta. (Lisätietoja eräkokoista ja niiden vaikutus ohjelmistotoimitukseen).

DevOps yrittää ratkaista erilaisia ​​aiemmista menetelmistä johtuvia ongelmia, mukaan lukien:

  • Työn eristäminen kehitys- ja toimintatiimien välillä
  • Testaus ja käyttöönotto ovat erillisiä vaiheita, jotka tapahtuvat suunnittelun ja rakentamisen jälkeen ja vaativat enemmän aikaa kuin rakennusjaksot.
  • Testaukseen, käyttöönottoon ja suunnitteluun kuluu liikaa aikaa sen sijaan, että keskittyisit ydinliiketoiminnan rakentamiseen
  • Manuaalinen koodin käyttöönotto, mikä johtaa virheisiin tuotannossa
  • Erot kehitys- ja toimintatiimien aikatauluissa aiheuttavat lisäviivästyksiä

DevOps-opas aloittelijoille

DevOpsin, ketterän ja perinteisen IT:n vastakkainasettelu

DevOpsista keskustellaan usein suhteessa muihin IT-käytäntöihin, erityisesti Agile- ja Waterfall IT:hen.

Ketterä on joukko ohjelmistotuotannon periaatteita, arvoja ja käytäntöjä. Joten jos sinulla on esimerkiksi idea, jonka haluat muuttaa ohjelmistoksi, voit käyttää ketteriä periaatteita ja arvoja. Mutta tämä ohjelmisto voi toimia vain kehitys- tai testausympäristössä. Tarvitset yksinkertaisen ja turvallisen tavan siirtää ohjelmistosi tuotantoon nopeasti ja toistettavasti, ja se tapahtuu DevOps-työkalujen ja -tekniikoiden avulla. Ketterä ohjelmistokehitys keskittyy kehitysprosesseihin ja DevOps vastaa kehityksestä ja käyttöönotosta turvallisimmalla ja luotettavimmalla tavalla.

Perinteisen vesiputousmallin vertaaminen DevOpsiin on hyvä tapa ymmärtää DevOpsin tuomat edut. Seuraavassa esimerkissä oletetaan, että sovellus on käytössä neljän viikon kuluttua, kehitystyö on 85 % valmis, sovellus on käytössä ja palvelinten ostoprosessi koodin lähettämiseksi on juuri alkanut.

Perinteiset prosessit
Prosessit DevOpsissa

Uusien palvelimien tilauksen jälkeen kehitystiimi työskentelee testauksen parissa. Työryhmä käsittelee laajaa dokumentaatiota, jota yritykset tarvitsevat infrastruktuurin käyttöön ottamiseksi.
Kun uusien palvelimien tilaus on tehty, kehitys- ja toimintatiimit työskentelevät yhdessä uusien palvelimien asennuksen prosesseissa ja paperityössä. Näin voit ymmärtää paremmin infrastruktuurivaatimuksiasi.

Tiedot vikasietoisuudesta, redundanssista, palvelinkeskusten sijainneista ja tallennusvaatimuksista esitetään väärin, koska kehitystiimi, jolla on syvällistä toimialuetuntemusta, ei ole antanut tietoa.
Tiedot vikasietoisuudesta, redundanssista, katastrofipalautuksesta, datakeskusten sijainnista ja tallennusvaatimuksista ovat tiedossa ja oikeita kehitystiimin panoksen ansiosta.

Toimintatiimillä ei ole aavistustakaan kehitystiimin edistymisestä. Hän laatii myös seurantasuunnitelman omien ideoidensa pohjalta.

Operaatiotiimi on täysin tietoinen kehitystiimin edistymisestä. Hän on myös vuorovaikutuksessa kehitystiimin kanssa ja he työskentelevät yhdessä kehittääkseen IT- ja liiketoiminnan tarpeita vastaavan seurantasuunnitelman. He käyttävät myös sovellusten suorituskyvyn valvontatyökaluja (APM).

Ennen sovelluksen käynnistymistä suoritettu kuormitustesti aiheuttaa sovelluksen kaatumisen, mikä viivästyttää sen käynnistymistä.
Ennen sovelluksen suorittamista suoritettu kuormitustesti johtaa huonoon suorituskykyyn. Kehitystiimi ratkaisee pullonkaulat nopeasti ja sovellus käynnistyy ajallaan.

DevOpsin elinkaari

DevOps sisältää tiettyjen yleisesti hyväksyttyjen käytäntöjen omaksumisen.

Jatkuvaa suunnittelua

Jatkuva suunnittelu perustuu lean-periaatteisiin, jotta voidaan aloittaa pienestä tunnistamalla resurssit ja tuotokset, joita tarvitaan liiketoiminnan tai vision arvon testaamiseen, jatkuvaan mukautumiseen, edistymisen mittaamiseen, asiakkaiden tarpeista oppimiseen, tarpeen mukaan suunnan muuttamiseen ketteryyden huomioon ottamiseksi ja liiketoimintasuunnitelman uudelleen kehittämiseen.

Yhteinen kehitys

Yhteistyön kehitysprosessin ansiosta yritykset, kehitystiimit ja testausryhmät voivat toimittaa jatkuvasti laadukkaita ohjelmistoja eri aikavyöhykkeille. Tämä sisältää usean alustan kehittämisen, monikielisen ohjelmoinnin tuen, käyttäjätarinoiden luomisen, ideoiden kehittämisen ja elinkaarihallinnan. Yhteistyö sisältää jatkuvan integroinnin prosessin ja käytännön, mikä edistää toistuvaa koodiintegraatiota ja automatisoituja koontiversioita. Käytettäessä koodia sovelluksessa usein, integraatioongelmat tunnistetaan varhaisessa vaiheessa elinkaaren aikana (kun ne on helpompi korjata) ja kokonaisintegrointiponnistus vähenee jatkuvan palautteen ansiosta, kun projekti edistyy jatkuvasti ja näkyvästi.

Jatkuva testaus

Jatkuva testaus vähentää testauksen kustannuksia auttamalla kehitystiimejä tasapainottamaan nopeutta ja laatua. Se myös eliminoi testauksen pullonkaulat palvelun virtualisoinnin avulla ja helpottaa virtualisoitujen testiympäristöjen luomista, joita voidaan helposti jakaa, ottaa käyttöön ja päivittää järjestelmien muuttuessa. Nämä ominaisuudet vähentävät testiympäristöjen valmistelu- ja ylläpitokustannuksia ja lyhentävät testisyklien aikoja, mikä mahdollistaa integraatiotestauksen tapahtuvan elinkaaren aikaisemmassa vaiheessa.

Jatkuva julkaisu ja käyttöönotto

Nämä tekniikat tuovat mukanaan ydinkäytännön: jatkuvan julkaisun ja käyttöönoton. Tämä varmistetaan jatkuvalla putkilinjalla, joka automatisoi avainprosesseja. Se vähentää manuaalisia vaiheita, resurssien odotusaikoja ja uudelleentyöskentelyä mahdollistamalla käyttöönoton napin painalluksella, mikä johtaa useampaan julkaisuun, vähemmän virheisiin ja täydelliseen läpinäkyvyyteen.

Automaatiolla on keskeinen rooli vakaan ja luotettavan ohjelmistojulkaisun varmistamisessa. Yksi suurimmista haasteista on ottaa manuaaliset prosessit, kuten rakentaminen, regressio, käyttöönotto ja infrastruktuurin luominen, ja automatisoida ne. Tämä vaatii lähdekoodin versionhallinnan; testaus- ja käyttöönottoskenaariot; infrastruktuuri- ja sovelluskokoonpanotiedot; sekä kirjastot ja paketit, joista sovellus riippuu. Toinen tärkeä tekijä on kyky tiedustella kaikkien ympäristöjen tilaa.

Jatkuva seuranta

Jatkuva seuranta tarjoaa yritystason raportoinnin, joka auttaa kehitystiimejä ymmärtämään sovellusten saatavuuden ja suorituskyvyn tuotantoympäristöissä ennen kuin ne otetaan käyttöön tuotantoon. Jatkuvan seurannan antama varhainen palaute on ratkaisevan tärkeää virhekustannusten vähentämiseksi ja projektien ohjaamiseksi oikeaan suuntaan. Tämä käytäntö sisältää usein seurantatyökaluja, jotka tyypillisesti paljastavat sovelluksen suorituskykyyn liittyviä mittareita.

Jatkuva palaute ja optimointi

Jatkuva palaute ja optimointi tarjoavat visuaalisen esityksen asiakasvirrasta ja paikantavat ongelmakohdat. Palaute voidaan sisällyttää sekä ennen myyntiä että sen jälkeiseen vaiheeseen arvon maksimoimiseksi ja entistä useamman tapahtuman onnistumisen varmistamiseksi. Kaikki tämä antaa välittömän visualisoinnin asiakkaiden ongelmien perimmäisistä syistä, jotka vaikuttavat heidän käyttäytymiseensa ja liiketoimintaan.

DevOps-opas aloittelijoille

DevOpsin edut

DevOps voi auttaa luomaan ympäristön, jossa kehittäjät ja operaattorit työskentelevät tiiminä yhteisten tavoitteiden saavuttamiseksi. Tärkeä virstanpylväs tässä prosessissa on jatkuvan integroinnin ja jatkuvan toimituksen (CI/CD) toteuttaminen. Näiden tekniikoiden avulla tiimit voivat saada ohjelmistot markkinoille nopeammin vähemmillä virheillä.

DevOpsin tärkeitä etuja ovat:

  • Ennustettavuus: DevOps tarjoaa huomattavasti alhaisemman epäonnistumisprosentin uusille julkaisuille.
  • Ylläpidettävyys: DevOps mahdollistaa helpon palautuksen, jos uusi julkaisu epäonnistuu tai sovellus kaatuu.
  • Toistettavuus: Rakennuksen tai koodin versionhallinnan avulla voit palauttaa aiempia versioita tarpeen mukaan.
  • Korkeampi laatu: Infrastruktuuriongelmien ratkaiseminen parantaa sovelluskehityksen laatua.
  • Aika markkinoille: Ohjelmistotoimituksen optimointi lyhentää markkinoille tuloaikaa 50 %.
  • Riskien vähentäminen: Tietoturvan käyttöönotto ohjelmiston elinkaaren aikana vähentää vikojen määrää koko elinkaaren aikana.
  • Kustannustehokkuus: Kustannustehokkuuden tavoittelu ohjelmistokehityksessä vetoaa ylimpään johtoon.
  • Vakaus: Ohjelmistojärjestelmä on vakaampi, turvallisempi ja muutokset voidaan tarkastaa.
  • Suuremman koodikannan hajottaminen hallittaviin osiin: DevOps perustuu kettereihin kehitysmenetelmiin, joiden avulla voit hajottaa suuren koodikannan pienempiin, hallittaviin osiin.

DevOps-periaatteet

DevOpsin käyttöönotto synnytti useita periaatteita, jotka ovat kehittyneet (ja kehittyvät edelleen). Useimmat ratkaisuntoimittajat ovat kehittäneet omia muunnelmia erilaisista tekniikoista. Kaikki nämä periaatteet perustuvat kokonaisvaltaiseen lähestymistapaan DevOpsiin, ja kaikenkokoiset organisaatiot voivat käyttää niitä.

Kehitä ja testaa tuotantoa muistuttavassa ympäristössä

Ajatuksena on antaa kehitys- ja laadunvarmistustiimeille mahdollisuus kehittää ja testata tuotantojärjestelmien tavoin käyttäytyviä järjestelmiä, jotta he voivat nähdä sovelluksen käyttäytymisen ja suorituskyvyn kauan ennen kuin se on valmis otettaviksi käyttöön.

Sovellus tulisi liittää tuotantojärjestelmiin mahdollisimman varhaisessa elinkaaressaan kolmen suuren mahdollisen ongelman ratkaisemiseksi. Ensinnäkin sen avulla voit testata sovellusta ympäristössä, joka on lähellä todellista ympäristöä. Toiseksi sen avulla voit testata ja vahvistaa sovellusten toimitusprosesseja etukäteen. Kolmanneksi sen avulla operaatiotiimi voi testata elinkaaren varhaisessa vaiheessa, miten heidän ympäristönsä käyttäytyy, kun sovelluksia otetaan käyttöön, ja näin he voivat luoda erittäin mukautetun, sovelluskeskeisen ympäristön.

Ota käyttöön toistettavien, luotettavien prosessien avulla

Tämä periaate mahdollistaa kehitys- ja toimintatiimien tukemisen ketterälle ohjelmistokehitysprosessille koko ohjelmiston elinkaaren ajan. Automatisointi on ratkaisevan tärkeää iteratiivisten, luotettavien ja toistettavien prosessien luomisessa. Siksi organisaation on luotava toimitusputki, joka mahdollistaa jatkuvan, automatisoidun käyttöönoton ja testauksen. Toistuva käyttöönotto antaa myös tiimille mahdollisuuden testata käyttöönottoprosesseja, mikä vähentää käyttöönottovirheiden riskiä reaaliaikaisten julkaisujen aikana.

Työn laadun seuranta ja tarkastus

Organisaatiot ovat hyviä seuraamaan sovelluksia tuotannossa, koska niillä on työkaluja, jotka tallentavat mittareita ja keskeisiä suorituskykyindikaattoreita (KPI) reaaliajassa. Tämä periaate siirtää seurantaa varhaisessa elinkaaren vaiheessa varmistaen, että automaattinen testaus valvoo sovelluksen toiminnallisia ja ei-toiminnallisia ominaisuuksia prosessin varhaisessa vaiheessa. Aina kun sovellusta testataan ja otetaan käyttöön, laatumittarit on tutkittava ja analysoitava. Valvontatyökalut antavat varhaisen varoituksen tuotanto- ja laatuongelmista, joita saattaa ilmetä tuotannon aikana. Nämä indikaattorit on kerättävä muodossa, joka on kaikkien sidosryhmien saatavilla ja ymmärrettävissä.

Palautesilmukoiden parantaminen

Yksi DevOps-prosessien tavoitteista on antaa organisaatioille mahdollisuus reagoida ja tehdä muutoksia nopeammin. Ohjelmistotoimituksessa tämä tavoite edellyttää, että organisaatio saa palautetta ajoissa ja oppii nopeasti jokaisesta tehdystä toiminnasta. Tämä periaate edellyttää, että organisaatiot luovat viestintäkanavia, jotka mahdollistavat sidosryhmien yhteydenottamisen ja vuorovaikutuksen palautteen muodossa. Kehitystä voi tehdä muokkaamalla projektisuunnitelmia tai prioriteetteja. Valmistus voi toimia parantamalla tuotantoympäristöä.

dev

  • Suunnittelu: Kanboard, Wekan ja muut Trello-vaihtoehdot; GitLab, Tuleap, Redmine ja muut JIRA-vaihtoehdot; Mattermost, Roit.im, IRC ja muut Slackin vaihtoehdot.
  • Kirjoituskoodi: Git, Gerrit, Bugzilla; Jenkins ja muut avoimen lähdekoodin työkalut CI/CD:lle
  • Assembly: Apache Maven, Gradle, Apache Ant, Pakkaaja
  • Тесты: JUnit, kurkku, seleeni, Apache JMeter

ops

  • Julkaisu, käyttöönotto, toiminta: Kubernetes, Nomad, Jenkins, Zuul, Spinnaker, Ansible, Apache ZooKeeper jne., Netflix Archaius, Terraform
  • Valvonta: Grafana, Prometheus, Nagios, InfluxDB, Fluentd ja muut tässä oppaassa mainitut

(*Operaatiotyökalut on numeroitu toimintatiimien käyttöjärjestyksessä, mutta niiden työkalut ovat päällekkäisiä julkaisu- ja käyttöönottotyökalujen elinkaaren vaiheiden kanssa. Lukemisen helpottamiseksi numerointi on poistettu.)

lopuksi

DevOps on yhä suositumpi menetelmä, jonka tavoitteena on yhdistää kehittäjät ja toiminnot yhdeksi yksiköksi. Se on ainutlaatuinen, erilainen kuin perinteiset IT-toiminnot ja täydentää ketterää (mutta ei ole yhtä joustava).

DevOps-opas aloittelijoille

Ota selvää kuinka saada haluttu ammatti tyhjästä tai Level Up taitojen ja palkan suhteen suorittamalla SkillFactoryn maksullisia verkkokursseja:

lisää kursseja

hyödyllinen

Lähde: will.com

Lisää kommentti