Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði
Byggðu fyrstu DevOps keðjuna þína í fimm skrefum fyrir byrjendur.

DevOps er orðið töfralausn fyrir of hæg, ótengd og annars erfið þróunarferli. En þú þarft lágmarksþekkingu í DevOps. Það mun fjalla um hugtök eins og DevOps keðjuna og hvernig á að búa til eina í fimm skrefum. Þetta er ekki tæmandi leiðarvísir heldur aðeins "fiskur" sem hægt er að stækka. Byrjum á sögunni.

Kynning mín á DevOps

Ég vann áður með ský hjá Citi Group og þróaði IaaS vefforrit til að stjórna skýjainnviðum Citi, en ég hef alltaf haft áhuga á því hvernig hægt er að hagræða þróunarkeðjunni og bæta menninguna meðal þróunaraðila. Greg Lavender, tæknistjóri okkar fyrir skýjaarkitektúr og innviði, mælti með þessari bók fyrir mig. Verkefnið "Fönix". Það útskýrir DevOps meginreglur fallega og les eins og skáldsaga.

Taflan að aftan sýnir hversu oft fyrirtæki setja út nýjar útgáfur:

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Hvernig tekst Amazon, Google og Netflix að dreifa svona miklu? Og það er einfalt: þeir komust að því hvernig á að búa til næstum fullkomna DevOps keðju.

Hlutirnir voru allt öðruvísi hjá okkur hjá Citi þar til við skiptum yfir í DevOps. Síðan var teymið mitt með mismunandi umhverfi, en við sendum handvirkt á þróunarþjóninn. Allir þróunaraðilar höfðu aðgang að aðeins einum þróunarþjóni sem byggður var á IBM WebSphere Application Server Community Edition. Með samtímis tilraun til að skila „fall“ þjónninn og í hvert skipti þurftum við að „sársaukafullt“ að semja sín á milli. Við vorum líka með ófullnægjandi kóðaþekju með prófum, tímafrekt handvirkt afhendingarferli og engin leið til að fylgjast með afhendingu kóða með hjálp einhverra verkefna eða kröfu viðskiptavina.

Það var ljóst að eitthvað brýnt þurfti að gera og ég fann samstarfsmann með sama hugarfari. Við ákváðum að búa til fyrstu DevOps keðjuna saman - hann setti upp sýndarvél og Tomcat forritaþjón og ég sá um Jenkins, samþættingu við Atlassian Jira og BitBucket, auk kóðaþekju með prófunum. Verkefnið tókst: Við gerðum þróunarkeðjuna fullkomlega sjálfvirkum, náðum næstum 100% spennutíma á þróunarþjóninum, gátum fylgst með og bætt kóðaþekju með prófunum og Git útibú gæti verið tengt við Jira afhendingu og útgáfu. Og næstum öll tækin sem við notuðum til að byggja DevOps keðjuna voru opinn uppspretta.

Reyndar var keðjan einfölduð, vegna þess að við notuðum ekki einu sinni háþróaðar stillingar með Jenkins eða Ansible. En okkur tókst það. Kannski er þetta afleiðing af reglunni Pareto (aka 80/20 reglan).

Stutt lýsing á DevOps og CI/CD keðjunni

DevOps hefur mismunandi skilgreiningar. DevOps, eins og Agile, inniheldur mismunandi greinar. En flestir munu vera sammála eftirfarandi skilgreiningu: DevOps er aðferð, eða lífsferill, hugbúnaðarþróunar, meginregla hennar er að skapa menningu þar sem verktaki og aðrir starfsmenn eru „á sömu bylgjulengd“, handavinna er sjálfvirk, allir gera það sem þeir eru bestir í, sendingatíðni eykst, framleiðni vinnu eykst, sveigjanleiki eykst.

Þó að verkfæri ein og sér séu ekki nóg til að búa til DevOps umhverfi, eru þau ómissandi. Mikilvægast af þessu er samfelld samþætting og stöðug afhending (CI/CD). Það eru mismunandi stig í keðjunni fyrir hvert umhverfi (t.d. DEV (þróun), INT (samþætting), TST (prófun), QA (gæðatrygging), UAT (viðurkenningarprófun notenda), STG (undirbúningur), PROD (notkun)) , handvirk verkefni eru sjálfvirk, forritarar geta framleitt gæðakóða, afhent hann og geta auðveldlega endurbyggt.

Þessi athugasemd lýsir því hvernig á að búa til DevOps keðju í fimm skrefum, eins og sýnt er á myndinni hér að neðan, með því að nota opinn hugbúnað.

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Við skulum fara að vinna.

Skref 1: CI/CD pallur

Fyrst af öllu þarftu CI/CD tól. Jenkins er MIT-leyfi, opinn uppspretta CI/CD tól skrifað á Java sem gerði DevOps hreyfinguna vinsælt og hefur orðið raunverulegur staðall fyrir CICD.

Hvað er Jenkins? Ímyndaðu þér að þú sért með töfrandi stjórnborð fyrir margs konar þjónustu og verkfæri. Eitt og sér er CI/CD tól eins og Jenkins gagnslaust, en með mismunandi tólum og þjónustu verður það allsráðandi.

Auk Jenkins eru mörg önnur opinn hugbúnaður, veldu hvaða sem er.

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Svona lítur DevOps ferli út með CI/CD tóli

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Þú ert með CI/CD tól í localhost, en það er ekki mikið að gera ennþá. Við skulum halda áfram í næsta skref.

Skref 2: Útgáfustýring

Besta (og að öllum líkindum auðveldasta) leiðin til að prófa töfra CI/CD tóls er að samþætta það við source control management (SCM) tól. Af hverju þarftu útgáfustýringu? Segjum að þú sért að gera umsókn. Þú skrifar það á Java, Python, C++, Go, Ruby, JavaScript, eða einhverju öðru tungumáli sem er vagn og lítill kerra. Það sem þú skrifar er kallað frumkóði. Í fyrstu, sérstaklega ef þú ert að vinna einn, geturðu vistað allt í staðbundinni skrá. En eftir því sem verkefnið stækkar og fleiri taka þátt þarftu leið til að deila kóðabreytingum en forðast árekstra þegar breytingar eru sameinaðar. Og þú þarft líka einhvern veginn að endurheimta fyrri útgáfur án þess að nota afrit og nota copy-paste aðferðina fyrir kóðaskrár.

Og hér án SCM nokkurs staðar. SCM geymir kóða í geymslum, stjórnar útgáfum af honum og samhæfir hann meðal þróunaraðila.

Það eru mörg SCM verkfæri, en Git hefur verðskuldað orðið raunverulegur staðall. Ég ráðlegg þér að nota það, en það eru aðrir möguleikar.

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Svona lítur DevOps leiðslan út eftir að SCM hefur verið bætt við.

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

CI/CD tólið getur sjálfvirkt upphleðslu og niðurhal frumkóða og teymissamstarf. Ekki slæmt? En hvernig á að búa til virkt forrit úr þessu, elskað af milljörðum notenda?

Skref 3: Byggja sjálfvirkniverkfæri

Allt gengur eins og það á að gera. Þú getur hlaðið inn kóða og framkvæmt breytingar á upprunastýringu og boðið vinum að vinna með þér. En þú ert ekki með app ennþá. Til þess að þetta sé vefforrit þarf að taka það saman og pakka því til dreifingar eða keyra það sem keyrslu. (Túlkað forritunarmál eins og JavaScript eða PHP þarf ekki að setja saman.)

Notaðu sjálfvirkni tól fyrir byggingu. Hvaða tól sem þú velur mun það setja saman kóðann á réttu sniði og gera sjálfvirkan hreinsun, samantekt, prófun og afhendingu. Byggingarverkfæri eru mismunandi eftir tungumálum, en eftirfarandi opinn uppspretta valkostir eru almennt notaðir.

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Fullkomið! Nú skulum við setja uppstillingarskrár fyrir sjálfvirkni tólið í frumstýringu þannig að CI/CD tólið byggi þær.

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Það er gott. En hvar á allt þetta að rúlla út núna?

Skref 4: Vefforritaþjónn

Svo þú ert með pakkaða skrá sem hægt er að keyra eða rúlla út. Til að forrit sé virkilega gagnlegt verður það að hafa einhvers konar þjónustu eða viðmót, en þú þarft að setja það allt einhvers staðar.

Hægt er að hýsa vefforrit á vefforritaþjóni. Forritaþjónninn býður upp á umhverfi þar sem þú getur framkvæmt pakkaða rökfræði, gert viðmót og afhjúpað vefþjónustu yfir fals. Þú þarft HTTP netþjón og nokkur önnur umhverfi (til dæmis sýndarvél) til að setja upp forritaþjóninn. Í bili skulum við láta eins og þú sért að takast á við þetta allt eins og þú ferð (þó ég tali um ílát hér að neðan).

Það eru nokkrir opnir vefforritaþjónar.

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Við erum nú þegar með næstum virka DevOps keðju. Frábært starf!

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Í grundvallaratriðum geturðu hætt hér, þá geturðu séð um það sjálfur, en það er þess virði að tala um gæði kóðans.

Skref 5: Prófumfjöllun

Prófun tekur mikinn tíma og fyrirhöfn, en það er betra að finna villur strax og bæta kóðann til að þóknast endanotendum. Í þessu skyni eru mörg opin verkfæri sem munu ekki aðeins prófa kóðann heldur einnig ráðleggja hvernig eigi að bæta hann. Flest CI/CD verkfæri geta tengt þessi verkfæri og gert ferlið sjálfvirkt.

Prófun skiptist í tvo hluta: prófunarramma til að skrifa og framkvæma próf, og verkfæri með vísbendingum til að bæta kóða gæði.

Prófunarrammar

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Verkfæri með gæðaráðum

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Flest þessara verkfæra og ramma eru skrifuð fyrir Java, Python og JavaScript vegna þess að C++ og C# eru séreign (þó GCC sé opinn uppspretta).

Við höfum beitt prófunartólunum og nú ætti DevOps leiðslan að líta út eins og myndin í upphafi kennslunnar.

Viðbótarskref

Ílát

Eins og ég sagði áður getur forritaþjónn verið hýst í sýndarvél eða netþjóni, en gámar eru vinsælli.

Hvað eru ílát? Í stuttu máli sagt, í sýndarvél tekur stýrikerfið oft meira pláss en forritið og ílát dugar yfirleitt með nokkrum bókasöfnum og stillingum. Í sumum tilfellum eru sýndarvélar ómissandi, en ílátið getur hýst forritið ásamt þjóninum án aukakostnaðar.

Fyrir gáma eru Docker og Kubernetes venjulega tekin, þó að það séu aðrir valkostir.

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Lestu greinar um Docker og Kubernetes á opensource.com:

Sjálfvirkni verkfæri millihugbúnaðar

DevOps keðjan okkar einbeitir sér að samvinnubyggingu og afhendingu forrits, en það eru aðrir áhugaverðir hlutir sem þú getur gert með DevOps verkfærum. Notaðu til dæmis innviði sem kóða (IaC) verkfæri, einnig þekkt sem sjálfvirkniverkfæri millihugbúnaðar. Þessi verkfæri hjálpa til við að gera sjálfvirkan uppsetningu, stjórnun og önnur verkefni fyrir millihugbúnað. Til dæmis getur sjálfvirknitól tekið forrit (vefforritaþjónn, gagnagrunn, eftirlitstæki) með réttar stillingar og ýtt þeim á forritaþjóninn.

Hér eru nokkrir valkostir fyrir opin millihugbúnaðar sjálfvirkniverkfæri:

Dummies Guide: Byggja DevOps keðjur með opnum hugbúnaði

Upplýsingar í greinum opensource.com:

Hvað nú?

Þetta er bara toppurinn á ísjakanum. DevOps keðjan getur gert miklu meira. Byrjaðu með CI/CD tóli og sjáðu hvað annað þú getur sjálfvirkt til að gera starf þitt auðveldara. Ekki gleyma um opin samskiptatæki fyrir árangursríkt samstarf.

Hér eru nokkrar fleiri góðar DevOps greinar fyrir byrjendur:

Þú getur líka samþætt DevOps með opnum lipur verkfærum:

Heimild: www.habr.com

Bæta við athugasemd