Zašto Jenkins postaje motor devopa

Trendovi poput agilnog razvoja, devopsa i kontinuirane integracije govore o potrebi modernog poduzeća za hiper-učinkovitom izgradnjom softvera i, ako je potrebno, za uključivanjem sitnice.

Taj potonji manevar je kako je CloudBees postao tvrtka koja je danas. Jednom neovisni, javni dobavljač PaaS usluga u oblaku za Java kodere (Andrew Oliver visoko ga je ocijenio u "Koji jebeni PaaS trebam koristiti?"), CloudBees se naglo okrenuo prije 18 mjeseci kako bi se ponovo pokrenuo kao vodeći pružatelj Jenkinsa, vrlo popularne otvorene mreže. izvorni alat za upravljanje procesom razvoja softvera.

Prema riječima izvršnog direktora Sashe Laboureyja, CloudBees je kao dobavljač Java PaaS-a "lijepo rastao", ali "mnogi veći momci s većim čekovima" oklijevali su se obvezati na nestabilnom PaaS tržištu kojem nedostaje standardizacija. Istodobno, Jenkins je poletio poput rakete - a Labourey je vidio veliku priliku, pogotovo jer je CloudBees već ponudio Jenkinsa kao uslugu i već angažirao Kohsukea Kawaguchija, Jenkinsova tvorca. Jenkinsov prilog postao je glavno jelo.

Jenkinsov juggernaut

Što stoji iza Jenkinsove popularnosti? Jednostavno rečeno, Jenkins je postao standard otvorenog koda za upravljanje razvojnom stranom devopsa, od upravljanja izvornim kodom do isporuke koda u produkciju. Prema Laboureyu, "Zajednica Jenkinsa vidi kao motor za orkestraciju i automatizaciju ... Mislim da je razlog zašto je Jenkins postao faktički motor taj što je izuzetno priključiv." Pojavio se ekosustav s više od 1.100 dodataka, koji omogućava kupcima da dodaju sve vrste funkcionalnosti i integriraju Jenkinsa sa svime, od Active Directory do GitHub-a do OpenShift PaaS-a.

Jenkins je rješenje za kontinuiranu integraciju (CI) i kontinuiranu isporuku (CD). Ideja CI-ja je spojiti kod pojedinih programera u projekt više puta dnevno i kontinuirano testirati kako bi se izbjegli nizvodni problemi. CD čini ovaj korak dalje kako bi osigurao da je sav spojeni kôd uvijek u stanju spremnosti za produkciju. Jenkins omogućuje programerima da taj postupak automatiziraju što je više moguće - sve do točke primjene. Labourey daje primjer:

Recimo da tvrtka koristi Chefa ili Lutku za postavljanje na AWS. Jenkins to neće zamijeniti. Jenkins će pozvati Lutku da to učini - OK, evo dijelova, pa nazovimo ovu lutkarsku skriptu i vidimo kako to funkcionira. A rezultat izvršenja Lutke bit će važan za Jenkinsa jer bi mogao odlučiti otvoriti raspored i poduzeti daljnje akcije. Zovemo ga "cjevovod". To je stvarno ovaj niz koraka. To može biti pet koraka, ili može biti 50 koraka.

Jenkins služi kao pokretač tijeka rada za upravljanje ovim CI / CD cjevovodom od izvora do isporuke, kaže Labourey, ali usput se može zatražiti mnogo različitih alata za obavljanje različitih funkcija.

Docker je jedan od tih alata, a Docker u suradnji s Jenkinsom duboko utječe na razvojne timove. Svi znaju da Docker usmjerava razvoj i znatno olakšava implementaciju, ali Labourey primjećuje da to također pomaže razvojnim programerima da budu pošteni: više ne mogu kriviti neku pogrešnu konfiguraciju razvojnog okruženja kad se zgrada sruši i izgori. Na fizičkom stroju razvojno okruženje postupno se ošteti, nehotice uzrokujući prekid gradnje. Ali kada kodirate na vrhu netaknute Dockerove slike, imate krivnju samo za svoj manjkavi kôd kada se gradnje neće pokretati.

Jenkins i njegov integrirani ekosustav pružaju koordinirajuću softversku infrastrukturu za okretan razvoj i šire čine "srž inicijative devops", kaže Labourey.

Dolazak odavde

Sva ova automatizacija i efikasnost devopsa zvuče sjajno, ali što je s organizacijama koje su jedva zamotale glavu oko agilnog razvoja? Labourey nudi savjete za ulazak u CI / CD:

Mislim da je najbolji način za to započeti s malim. Odaberite projekt. Nemojte reći: "U redu, sad smo kontinuirana trgovina s dostavom, sve ide ovim putem." Počnite s timom koji je voljan, koji je možda fleksibilniji od ostalih timova, možda noviji članovi tima, manje ukorijenjeni u postojeći način rada. Odaberite jednostavan projekt. Ne pokušavajte to koristiti kao način da kažete ako taj uspije, sve će uspjeti. Ne pokušavajte propasti; pokušati uspjeti. Odaberite voljni tim, odaberite lak projekt, dođite tamo. Ovaj će tim biti vaš najbolji prodavač jer sada možete pokazati da to djeluje. Mogu razgovarati o tome kako im je posao postao bolji, jer je, iskreno, stari način dosadan.

Dio procesa je, napominje Labourey, "izvlačenje znanja koje ljudima mirno sjeda u mozak i stavljanje u logiku". To se ne događa preko noći. Često razvojne organizacije započinju izbacivanjem CI-a i s vremenom rade na CD-u.

Razvojne organizacije imaju tendenciju da imaju široko raznolike, vrlo specifične zahtjeve. Dakle, CloudBees nudi generičku verziju SaaS-a zasnovanu na pretplati koju pokreće CloudBees i "privatnu SaaS" verziju, koju korisnici mogu rasporediti na AWS ili Azure (ili lokalno na OpenStacku) i prilagoditi je svom sadržaju.

Teško je precijeniti važnost orkestriranja, automatizacije i racionalizacije razvojnog procesa. CI / CD je presudan za devops, a uspješna implementacija devopsa zauzvrat ima implikacije koje se šire od IT-a do samog poslovanja. Stalno poboljšavanje softvera kontinuirano poboljšava proizvode i usluge. Na primjer, Tesla je imao ozbiljan zastoj s jednim od svojih modela koji se zapalio - a uvođenje softverske nadogradnje riješilo je problem preko noći.

"Zanimljivo je ako postignete 10 posto veću učinkovitost; ako godišnje u IT potrošite 100 milijuna dolara, sjajno - imate 10 milijuna dolara koje možete potrošiti negdje drugdje", kaže Labourey. "Ali stvarna je korist kada poduzeće shvati da iskorištavanjem tih alata i načina rada mogu povećati prodaju za 10 posto."