Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria
Kuunda msururu wako wa kwanza wa DevOps katika hatua tano kwa wanaoanza.

DevOps imekuwa dawa ya michakato ya maendeleo polepole sana, iliyokatwa na yenye matatizo. Lakini unahitaji ujuzi mdogo katika DevOps. Itashughulikia dhana kama vile msururu wa DevOps na jinsi ya kuunda moja kati ya hatua tano. Huu sio mwongozo kamili, lakini ni "samaki" tu ambayo inaweza kupanuliwa. Hebu tuanze na historia.

Utangulizi wangu kwa DevOps

Nilikuwa nikifanya kazi na clouds katika Citi Group na kutengeneza programu ya wavuti ya IaaS ili kudhibiti miundombinu ya wingu ya Citi, lakini nimekuwa nikivutiwa na jinsi ya kuboresha msururu wa maendeleo na kuboresha utamaduni miongoni mwa wasanidi programu. Greg Lavender, CTO wetu wa Usanifu wa Wingu na Miundombinu, alipendekeza kitabu hiki kwangu. Mradi "Phoenix". Inafafanua kanuni za DevOps kwa uzuri na inasoma kama riwaya.

Jedwali lililo nyuma linaonyesha ni mara ngapi makampuni yanatoa matoleo mapya:

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Je, Amazon, Google na Netflix wanawezaje kusambaza kiasi hiki? Na ni rahisi: walifikiria jinsi ya kuunda mnyororo wa DevOps karibu kabisa.

Mambo yalikuwa tofauti sana kwetu huko Citi hadi tulipohamia DevOps. Kisha timu yangu ilikuwa na mazingira tofauti, lakini tuliwasilisha kwa seva ya ukuzaji kwa mikono. Wasanidi programu wote walikuwa na ufikiaji wa seva moja tu ya ukuzaji kulingana na Toleo la Jumuiya ya Seva ya Utumizi ya IBM WebSphere. Kwa jaribio la wakati huo huo la kutoa, seva "ilianguka", na kila wakati tulilazimika "kwa uchungu" kujadiliana kati yetu. Pia hatukuwa na huduma ya kutosha ya msimbo kwa majaribio, mchakato wa uwasilishaji wa mikono unaotumia wakati, na hakuna njia ya kufuatilia uwasilishaji wa msimbo kwa usaidizi wa kazi fulani au mahitaji ya mteja.

Ilikuwa wazi kwamba jambo fulani lilihitaji kufanywa haraka, na nikapata mwenzangu mwenye nia kama hiyo. Tuliamua kuunda mlolongo wa kwanza wa DevOps pamoja - alianzisha mashine ya kawaida na seva ya maombi ya Tomcat, na nilimtunza Jenkins, ushirikiano na Atlassian Jira na BitBucket, pamoja na chanjo ya msimbo na vipimo. Mradi ulifanikiwa: tulijiendesha kiotomatiki msururu wa ukuzaji, tulipata karibu muda wa nyongeza wa 100% kwenye seva ya ukuzaji, tuliweza kufuatilia na kuboresha huduma ya msimbo kwa majaribio, na tawi la Git lingeweza kuhusishwa na utoaji na toleo la Jira. Na karibu zana zote tulizotumia kuunda mnyororo wa DevOps zilikuwa chanzo wazi.

Kwa kweli, mlolongo umerahisishwa, kwa sababu hatukutumia usanidi wa hali ya juu kwa kutumia Jenkins au Ansible. Lakini tulifaulu. Labda hii ni matokeo ya kanuni Pareto (aka kanuni ya 80/20).

Maelezo Mafupi ya DevOps na CI/CD Chain

DevOps ina ufafanuzi tofauti. DevOps, kama Agile, inajumuisha taaluma tofauti. Lakini wengi watakubaliana na ufafanuzi ufuatao: DevOps ni njia, au mzunguko wa maisha, wa ukuzaji wa programu, kanuni kuu ambayo ni kuunda utamaduni ambapo watengenezaji na wafanyikazi wengine wako "kwenye urefu sawa", kazi ya mikono inaendeshwa kiotomatiki. kila mtu anafanya kile anachofaa zaidi, mzunguko wa kujifungua huongezeka, tija ya kazi huongezeka, kubadilika huongezeka.

Ingawa zana pekee hazitoshi kuunda mazingira ya DevOps, ni muhimu sana. Muhimu zaidi kati ya haya ni ujumuishaji endelevu na utoaji endelevu (CI/CD). Kuna hatua tofauti katika msururu kwa kila mazingira (k.m. DEV (maendeleo), INT (muunganisho), TST (jaribio), QA (uhakikisho wa ubora), UAT (jaribio la kukubalika kwa mtumiaji), STG (maandalizi), PROD (matumizi)) , kazi za mikono zinajiendesha kiotomatiki, wasanidi programu wanaweza kutengeneza msimbo wa ubora, kuuwasilisha, na wanaweza kuunda upya kwa urahisi.

Dokezo hili linaelezea jinsi ya kuunda msururu wa DevOps katika hatua tano, kama inavyoonyeshwa kwenye picha hapa chini, kwa kutumia zana huria.

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Hebu tushuke kwenye biashara.

Hatua ya 1: Jukwaa la CI/CD

Kwanza kabisa, unahitaji zana ya CI/CD. Jenkins ni zana iliyo na leseni ya MIT, ya chanzo-wazi ya CI/CD iliyoandikwa katika Java ambayo ilieneza harakati za DevOps na imekuwa kiwango cha ukweli cha CICD.

Jenkins ni nini? Fikiria kuwa una jopo la kudhibiti kichawi kwa huduma na zana mbalimbali. Kwa peke yake, zana ya CI/CD kama Jenkins haina maana, lakini ikiwa na zana na huduma tofauti, inakuwa yenye nguvu zote.

Mbali na Jenkins, kuna zana zingine nyingi za chanzo wazi, chagua yoyote.

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Hivi ndivyo mchakato wa DevOps unavyoonekana ukiwa na zana ya CI/CD

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Una CI / CD chombo katika localhost, lakini hakuna mengi ya kufanya bado. Hebu tuendelee kwenye hatua inayofuata.

Hatua ya 2: Udhibiti wa Toleo

Njia bora zaidi (na rahisi) ya kujaribu uchawi wa zana ya CI/CD ni kuiunganisha na zana ya udhibiti wa chanzo (SCM). Kwa nini unahitaji udhibiti wa toleo? Tuseme unatuma ombi. Unaiandika kwa Java, Python, C++, Go, Ruby, JavaScript, au lugha nyingine yoyote ambayo ni gari na kigari kidogo. Unachoandika kinaitwa msimbo wa chanzo. Mara ya kwanza, hasa ikiwa unafanya kazi peke yako, unaweza kuhifadhi kila kitu kwenye saraka ya ndani. Lakini kadri mradi unavyokua na watu wengi zaidi kujiunga, unahitaji njia ya kushiriki mabadiliko ya msimbo lakini epuka migongano wakati wa kuunganisha mabadiliko. Na pia unahitaji kwa namna fulani kurejesha matoleo ya awali bila kutumia chelezo na kutumia njia ya kunakili-kubandika kwa faili za msimbo.

Na hapa bila SCM popote. SCM huhifadhi msimbo katika hazina, hudhibiti matoleo yake, na kuiratibu kati ya wasanidi programu.

Kuna zana nyingi za SCM, lakini Git imestahili kuwa kiwango cha ukweli. Ninakushauri kuitumia, lakini kuna chaguzi zingine.

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Hivi ndivyo bomba la DevOps linavyoonekana baada ya kuongeza SCM.

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Zana ya CI/CD inaweza kuweka kiotomatiki upakiaji wa msimbo wa chanzo na upakuaji na ushirikiano wa timu. Sio mbaya? Lakini sasa jinsi ya kufanya maombi ya kazi kutoka kwa hili, kupendwa na mabilioni ya watumiaji?

Hatua ya 3: Unda Zana ya Uendeshaji

Kila kitu kinakwenda kama inavyopaswa. Unaweza kupakia msimbo na kufanya mabadiliko kwenye udhibiti wa chanzo, na uwaalike marafiki kufanya kazi nawe. Lakini bado huna programu. Ili hii iwe programu ya wavuti, ni lazima ikusanywe na kufungwa kwa ajili ya usambazaji au iendeshwe kama inayoweza kutekelezwa. (Lugha ya programu iliyotafsiriwa kama JavaScript au PHP haihitaji kukusanywa.)

Tumia zana ya kujenga otomatiki. Chombo chochote utakachochagua, kitakusanya msimbo katika umbizo sahihi na kusafisha kiotomatiki, ukusanyaji, majaribio na uwasilishaji. Zana za kuunda hutofautiana kulingana na lugha, lakini chaguo zifuatazo za chanzo huria hutumiwa kwa kawaida.

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Kamili! Sasa hebu tuingize faili za usanidi za zana za otomatiki kwenye udhibiti wa chanzo ili zana ya CI/CD iwajenge.

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Inajisikia vizuri. Lakini haya yote yatatolewa wapi sasa?

Hatua ya 4: Seva ya Maombi ya Wavuti

Kwa hivyo, unayo faili iliyopakiwa ambayo inaweza kutekelezwa au kutolewa. Ili programu iwe muhimu sana, lazima iwe na aina fulani ya huduma au kiolesura, lakini unahitaji kuiweka yote mahali fulani.

Programu ya wavuti inaweza kupangishwa kwenye seva ya programu ya wavuti. Seva ya programu hutoa mazingira ambapo unaweza kutekeleza mantiki iliyofungashwa, kutoa miingiliano, na kufichua huduma za wavuti kwenye soketi. Unahitaji seva ya HTTP na mazingira mengine machache (mashine pepe, kwa mfano) ili kusakinisha seva ya programu. Kwa sasa, wacha tujifanye unashughulika na haya yote unapoendelea (ingawa nitazungumza juu ya vyombo hapa chini).

Kuna seva kadhaa za programu za wavuti zilizo wazi.

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Tayari tuna msururu wa DevOps unaokaribia kufanya kazi. Kazi nzuri!

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Kimsingi, unaweza kuacha hapa, basi unaweza kushughulikia mwenyewe, lakini inafaa kuzungumza juu ya ubora wa nambari.

Hatua ya 5: Jaribio la Coat

Kujaribu huchukua muda na juhudi nyingi, lakini ni bora kutafuta hitilafu mara moja na kuboresha msimbo ili kuwafurahisha watumiaji wa mwisho. Kwa kusudi hili, kuna zana nyingi za wazi ambazo hazitajaribu tu msimbo, lakini pia kushauri jinsi ya kuboresha. Zana nyingi za CI/CD zinaweza kuchomeka kwenye zana hizi na kufanyia mchakato kiotomatiki.

Jaribio limegawanywa katika sehemu mbili: mifumo ya majaribio ya kuandika na kutekeleza majaribio, na zana zilizo na vidokezo vya kuboresha ubora wa msimbo.

Mifumo ya Kujaribu

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Zana zilizo na vidokezo vya ubora

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Nyingi za zana na mifumo hii imeandikwa kwa Java, Python, na JavaScript kwa sababu C++ na C# ni za umiliki (ingawa GCC ni chanzo wazi).

Tumetumia zana za kufunika majaribio, na sasa bomba la DevOps linapaswa kuonekana kama picha iliyo mwanzoni mwa mafunzo.

Hatua za ziada

Vyombo

Kama nilivyosema hapo awali, seva ya maombi inaweza kuwa mwenyeji katika mashine ya kawaida au seva, lakini vyombo ni maarufu zaidi.

Vyombo ni nini? Kwa kifupi, katika mashine ya kawaida, mfumo wa uendeshaji mara nyingi huchukua nafasi zaidi kuliko programu, na chombo kawaida hutosha maktaba chache na usanidi. Katika baadhi ya matukio, mashine pepe ni za lazima, lakini kontena linaweza kubeba programu pamoja na seva bila gharama ya ziada.

Kwa vyombo, Docker na Kubernetes kawaida huchukuliwa, ingawa kuna chaguzi zingine.

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Soma nakala kuhusu Docker na Kubernetes huko Opensource.com:

Vyombo vya otomatiki vya kati

Msururu wetu wa DevOps unaangazia ujenzi shirikishi na uwasilishaji wa programu, lakini kuna mambo mengine ya kuvutia unayoweza kufanya ukitumia zana za DevOps. Kwa mfano, tumia zana za Miundombinu kama Kanuni (IaC), zinazojulikana pia kama zana za uendeshaji za vifaa vya kati. Zana hizi husaidia kusakinisha kiotomatiki, usimamizi na kazi zingine za vifaa vya kati. Kwa mfano, zana ya otomatiki inaweza kuchukua programu (seva ya programu ya wavuti, hifadhidata, zana za ufuatiliaji) na usanidi sahihi na kuzisukuma kwa seva ya programu.

Hapa kuna chaguzi kadhaa za zana za otomatiki za vifaa vya kati:

Mwongozo wa Dummies: Kujenga Minyororo ya DevOps kwa Zana za Chanzo Huria

Maelezo katika makala Opensource.com:

Na sasa nini?

Hii ni ncha tu ya barafu. Msururu wa DevOps unaweza kufanya mengi zaidi. Anza na zana ya CI/CD na uone ni nini kingine unaweza kugeuza kiotomatiki ili kurahisisha kazi yako. Usisahau kuhusu zana za mawasiliano wazi kwa ushirikiano wa ufanisi.

Hapa kuna nakala zingine nzuri za DevOps kwa wanaoanza:

Unaweza pia kuunganisha DevOps na zana wazi za agile:

Chanzo: mapenzi.com

Kuongeza maoni