Ohjelmointi

Miksi Jenkinsistä on tulossa devopien moottori

Trendit, kuten ketterä kehitys, devops ja jatkuva integraatio, puhuvat nykyaikaisen yrityksen tarpeesta rakentaa ohjelmistoja erittäin tehokkaasti - ja tarvittaessa kytkeä päälle senttiäkään.

Tämä jälkimmäinen toiminta on se, miten CloudBeesistä tuli yritys, joka se on tänään. Aikaisemmin itsenäinen, julkinen pilvipalvelujen tarjoaja PaaS Java-koodereille (jonka Andrew Oliver arvosteli erittäin korkealla kohdassa ”Mitä freaking PaaS: ää minun pitäisi käyttää?”), CloudBees kääntyi voimakkaasti 18 kuukautta sitten aloittaakseen uudelleen johtavan Jenkinsin, erittäin suositun avoimen palveluntarjoajan, tarjoamisen. lähdetyökalu ohjelmistokehitysprosessin hallintaan.

Toimitusjohtaja Sasha Laboureyn mukaan Java PaaS -toimittajana CloudBees oli "kasvanut hienosti", mutta "monet isommista kavereista, joilla oli suuremmat tarkastukset", olivat epäröivät sitoutua epävakailla PaaS-markkinoilla, joilta puuttui standardointi. Samanaikaisesti Jenkins oli nousussa kuin raketti - ja Labourey näki suuren mahdollisuuden, varsinkin kun CloudBees tarjosi jo Jenkinsiä palveluna ja oli jo palkannut Jenkinsin luojan Kohsuke Kawaguchin. Jenkins-lisukkeesta tuli pääruoka.

Jenkinsin juggernaut

Mikä on Jenkinsin suosion takana? Yksinkertaisesti sanottuna Jenkinsistä on tullut avoimen lähdekoodin standardi devop-laitteiden dev-puolen hallinnassa lähdekoodien hallinnasta koodin toimittamiseen tuotantoon. Laboureyn mukaan "Yhteisö näkee Jenkinsin orkesterointi- ja automaatiomoottorina ... Luulen, että Jenkinsistä on tullut tosiasiallinen moottori, koska se on erittäin liitettävissä." Yli 1100 laajennuksen ekosysteemi on syntynyt, minkä ansiosta asiakkaat voivat lisätä kaikenlaisia ​​toimintoja ja integroida Jenkinsin kaikkeen Active Directorysta GitHubiin OpenShift PaaS: iin.

Jenkins on jatkuva integrointi (CI) ja jatkuva toimitus (CD) -ratkaisu. CI: n idea on yhdistää yksittäisten kehittäjien koodi projektiin useita kertoja päivässä ja testata jatkuvasti loppupään ongelmien välttämiseksi. CD vie tämän askeleen pidemmälle varmistaakseen, että kaikki yhdistetyt koodit ovat aina tuotantovalmiina. Jenkins antaa kehittäjille mahdollisuuden automatisoida tämä prosessi niin paljon kuin mahdollista - aina käyttöönottoon saakka. Labourey tarjoaa esimerkin:

Oletetaan, että yritys käyttää kokkia tai nukkeja AWS: n käyttöönottoon. Jenkins ei aio korvata sitä. Jenkins kutsuu Puppetia tekemään sen - OK, tässä on bittiä, joten kutsumme tätä nukketiedostoa ja katsotaan, miten se toimii. Ja Puppetin teloitustuloksella on merkitystä Jenkinsille, koska se saattaa päättää kumoaa käyttöönoton ja toteuttaa lisätoimia. Kutsumme sitä "putkijohdoksi". Se on oikeastaan ​​tämä sarja vaiheita. Se voi olla viisi vaihetta tai se voi olla 50 vaihetta.

Jenkins toimii työnkulun moottorina hallita tätä CI / CD-putkea lähteestä toimitukseen, Labourey sanoo, mutta matkan varrella monia eri työkaluja voidaan kutsua suorittamaan erilaisia ​​toimintoja.

Docker on yksi näistä työkaluista, ja Dockerilla on yhdessä Jenkinsin kanssa syvällinen vaikutus kehitystiimeihin. Kaikki tietävät, että Docker virtaviivaistaa kehitystä ja helpottaa käyttöönottoa huomattavasti, mutta Labourey huomauttaa, että se auttaa myös pitämään kehittäjät rehellisinä: He eivät voi enää syyttää kehitysympäristön väärää määritystä, kun rakennus kaatuu ja palaa. Fyysisessä koneessa kehitysympäristö korruptoituu vähitellen aiheuttaen rakenteiden rikkoutumisen. Mutta kun koodaat turmattoman Docker-kuvan päälle, sinulla on vain oma virheellinen koodisi syyllinen, kun koontiversioita ei suoriteta.

Yhdessä Jenkins ja sen integroitu ekosysteemi tarjoavat koordinoivan ohjelmistoinfrastruktuurin ketterään kehitykseen ja muodostavat laajemmin "devops-aloitteen ytimen", Labourey sanoo.

Sieltä täältä

Kaikki tämä automaatio ja tehokkuuden kuuluminen kuulostaa hyvältä, mutta entä organisaatiot, jotka ovat tuskin käärineet päätään ketterän kehityksen ympärille? Labourey tarjoaa neuvoja kahlaamaan CI / CD: lle:

Mielestäni paras tapa tehdä se on aloittaa pienestä. Valitse projekti. Älä sano: "OK, nyt olemme jatkuva toimituskauppa, kaikki menee tällä tavalla." Aloita tiimillä, joka on halukas, joka on ehkä joustavampi kuin muut joukkueet, ehkä uudemmat tiimin jäsenet, vähemmän juurtuneet nykyiseen toimintatapaan. Valitse helppo projekti. Älä yritä käyttää sitä tapana sanoa, jos se toimii, kaikki toimii. Älä yritä epäonnistua; yritä menestyä. Valitse haluava joukkue, valitse helppo projekti, pääse sinne. Tämä joukkue tulee olemaan paras myyntikaveri, koska nyt voit osoittaa, että se toimii. He voivat puhua työnsä parantumisesta, koska rehellisesti sanottuna vanha tapa on tylsää.

Osa prosessista, Labourey toteaa, on "poimia tieto, joka istuu hiljaa ihmisten aivoissa, ja laittaa se loogiseksi". Se ei tapahdu yhdessä yössä. Usein kehitysorganisaatiot alkavat lyödä CI: tä ja pyrkivät kohti CD: tä ajan mittaan.

Kehitysorganisaatioilla on yleensä hyvin erilaisia, hyvin erityisiä vaatimuksia. Joten CloudBees tarjoaa sekä yleisen, liittymiin perustuvan SaaS-version, jota ylläpitää CloudBees, että "yksityisen SaaS" -version, jonka asiakkaat voivat ottaa käyttöön joko AWS: ssä tai Azuressa (tai paikallisesti OpenStackissa) ja mukauttaa sen sydämensä mukaiseksi.

Kehitysprosessin organisoinnin, automatisoinnin ja virtaviivaistamisen merkitystä on vaikea yliarvioida. CI / CD on keskeinen osa devopsia, ja onnistuneella devops-toteutuksella puolestaan ​​on vaikutuksia, jotka ulottuvat IT: n ulkopuolelle itse liiketoimintaan. Ohjelmistojen jatkuva parantaminen parantaa jatkuvasti tuotteita ja palveluita. Esimerkiksi Teslalla oli vakava takaisku yhden mallin syttyessä - ja ohjelmistopäivityksen käyttöönotto korjasi ongelman yön yli.

"On mielenkiintoista, jos saat 10 prosenttia enemmän hyötysuhdetta; jos vietät 100 miljoonaa dollaria vuodessa IT-alalla, on hienoa - sinulla on 10 miljoonaa dollaria, jonka voit käyttää jonnekin muualle", Labourey sanoo. "Mutta todellinen hyöty on, kun yritys tajuaa, että hyödyntämällä näitä työkaluja ja sellaista toimintatapaa ne voivat kasvattaa myyntiä 10 prosenttia."

$config[zx-auto] not found$config[zx-overlay] not found