Hirgelintayaga ku-diridda joogtada ah ee goobta macaamiisha

Anaga hadaanu nahay Injineerinka True waxa aanu dejinay hannaan si joogto ah loogu soo gudbiyo cusboonaysiinta server-yada macaamiisha waxaanan rabnaa in aan wadaagno khibradan.

Bilawgii, waxa aanu u samaynay macmiilka nidaam online ah waxana aanu geynay kooxdayada Kubernetes. Hadda xalkeena culeyska sare leh wuxuu u guuray goobta macaamiisha, kaas oo aan u dejinay habraac toos ah oo toos ah oo si toos ah u socda. Waad ku mahadsan tahay tan, waxaan dardargelinay waqtiga-suuq-geynta - gaarsiinta isbeddellada jawiga alaabta.

Maqaalkan waxaan kaga hadli doonaa dhammaan marxaladaha Dejinta Joogtada ah (CD) habka ama gaarsiinta cusboonaysiinta goobta macaamiisha:

  1. Sidee habkani ku bilaabmaa?
  2. wada shaqaynta kaydka Git ee macmiilka,
  3. isku dhafka dhabarka iyo hore,
  4. Codsiga tooska ah ee geynta deegaanka tijaabada,
  5. si toos ah ugu daabulida Prod.

Waxaan wadaagi doonaa faahfaahinta habaynta inta jidka lagu jiro.

Hirgelintayaga ku-diridda joogtada ah ee goobta macaamiisha

1. Ku bilow CD-ga

Hawlgelinta joogtada ah waxay ku bilaabataa horumariyaha oo riixaya isbeddelada laanta sii daynta ee kaydkayaga Git.

Codsigayagu waxa uu ku shaqeeyaa qaab-dhismeedka microservice-ka oo dhammaan qaybihiisa waxa lagu kaydiyaa hal kayd. Waad ku mahadsan tahay tan, dhammaan adeegyada yar yar waa la ururiyaa oo la rakibaa, xitaa haddii mid iyaga ka mid ah uu isbeddelay.

Waxaan shaqo ku qabanqaabinay hal meel oo kayd ah sababo dhowr ah awgood:

  • Fududeynta horumarinta - codsigu si firfircoon ayuu u horumarayaa, si aad hal mar ula shaqeyso dhammaan koodka.
  • Hal dhuumo CI / CD ah oo dammaanad qaadaya in codsiga nidaam keliya uu ka gudbo dhammaan imtixaannada oo loo gudbiyo deegaanka wax soo saarka ee macaamiisha.
  • Waxaan baabi'innaa jaahwareerka noocyada - ma ahan inaan kaydinno khariidadda noocyada adeeg-yaraha oo aan qeexno qaabeynta adeeg-yaraha kasta oo ku jira qoraallada Helm.

2. La shaqaynta kaydka Git ee koodhka isha macmiilka

Isbeddellada la sameeyay ayaa si toos ah ula mid ah kaydka Git ee macmiilka. Halkaa shirka codsiga ayaa lagu habeeyey, kaas oo la bilaabay ka dib markii la cusboonaysiiyey laanta, iyo geynta sii wadida. Labada habraacba waxay ka soo jeedaan deegaankooda kaydka Git.

Si toos ah ulama shaqayn karno kaydka macaamiisha sababtoo ah waxaan u baahanahay deegaankeena horumarinta iyo tijaabinta. Waxaan u isticmaalnaa kaydkayaga Git ujeedooyinkan - waxay la mid tahay kaydkooda Git. Isla marka uu horumariye soo dhejiyo isbeddelo ku sameeyo laanta ku habboon ee kaydkayaga, GitLab waxay isla markiiba u riixdaa isbeddeladan macaamilka.

Hirgelintayaga ku-diridda joogtada ah ee goobta macaamiisha

Taas ka dib waxaad u baahan tahay inaad sameyso golaha. Waxay ka kooban tahay dhowr marxaladood: dhabarka dambe iyo kulanka hore, tijaabinta iyo gaarsiinta wax soo saarka.

3. Isku-dubbarididda dhabarka dambe iyo xagga hore

Dhisidda dhabarka dambe iyo xagga hore waa laba hawlood oo isbarbar socda oo lagu qabto nidaamka GitLab Runner. Isku xidhkeeda asalka ah wuxuu ku yaalaa kayd isku mid ah.

Tababarka qorista qoraalka YAML si loogu dhiso GitLab.

GitLab Runner wuxuu ka qaadaa koodka kaydka loo baahan yahay, wuxuu ku ururiyaa amarka dhismaha codsiga Java wuxuuna u diraa diiwaanka Docker. Halkan waxaan ku ururineynaa dhabarka iyo hore, hel sawirada Docker, kaas oo aan ku dhejineyno kaydka dhinaca macaamiisha. Si loo maamulo sawirada Docker waxaan isticmaalnaa Gradle plugin.

Waxaan isku dhejineynaa sawirada sawiradayada nooca siideynta ee lagu daabici doono Docker. Si loo fududeeyo hawlgalka waxaanu samaynay dhowr hagaajin:

1. Haamaha dib looma dhisin inta u dhaxaysa deegaanka tijaabada iyo deegaanka wax soo saarka. Waxaanu samaynay qalab-beegtiyo si isla weel isku mid ahi uu ula shaqeeyo dhammaan goobaha, doorsoomayaasha deegaanka iyo adeegyada labadaba jawiga tijaabada iyo wax soo saarka iyada oo aan dib loo dhisin.

2. Si aad u cusboonaysiiso arjiga adigoo isticmaalaya Helm, waa inaad qeexdaa nooca uu yahay. Waxaan dhisnaa dhabarka dambe, hore iyo cusboonaysiinta arjiga - kuwani waa saddex hawlood oo kala duwan, markaa waa muhiim inaad isticmaasho nooc isku mid ah arjiga meel kasta. Hawshan, waxaan u isticmaalnaa xogta taariikhda Git, maadaama qaabeynta kooxdayada K8S iyo arjiyadayadu ay ku jiraan kaydka Git isku mid ah.

Waxaan ka helnaa nooca codsiga natiijooyinka fulinta amarka
git describe --tags --abbrev=7.

4. Si toos ah u geynta dhammaan isbeddelada jawiga tijaabada (UAT)

Tallaabada xigta ee qoraalkan dhismuhu waa in si toos ah loo cusboonaysiiyo kooxda K8S. Tani waxay dhacdaa waa haddii codsiga oo dhan la dhisay oo dhammaan agabka farshaxanka lagu daabacay Diiwaanka Docker. Taas ka dib, cusboonaysiinta deegaanka tijaabada ayaa bilaabmaysa.

Cusboonaysiinta kooxda waa la bilaabay isticmaalka Cusboonaysiinta Helm. Haddii, natiijadu tahay, wax u dhicin sidii qorshuhu ahaa, Helm si toos ah iyo si madaxbannaan ayuu dib ugu soo celin doonaa dhammaan isbeddellada. Shaqadiisu uma baahna in la xakameeyo.

Waxaan bixinaa qaabeynta kooxda K8S oo ay weheliso kulanka. Sidaa darteed, tillaabada xigta waa in la cusboonaysiiyo: configMaps, hawlgelinta, adeegyada, siraha iyo qaabaynta kale ee K8S ee aan beddelnay.

Helm ayaa markaa ku socodsiiya cusboonaysiinta RollOut ee arjiga laftiisa gudaha deegaanka tijaabada. Ka hor inta aan codsiga la geynin wax soo saarka. Tan waxaa loo sameeyaa si isticmaalayaashu ay gacanta ugu tijaabiyaan astaamaha ganacsiga ee aan gelinay jawiga tijaabada.

5. Si toos ah u daabulidda dhammaan isbeddellada Prod

Si aad u geyso cusboonaysiinta deegaanka wax soo saarka, kaliya waxaad u baahan tahay inaad gujiso hal badhan oo ku yaal GitLab - oo weelasha isla markiiba waxaa la geeyaa deegaanka wax soo saarka.

Codsi isku mid ah ayaa ka shaqayn kara deegaanno kala duwan-tijaab iyo wax-soo-saar-aan dib-u-dhis lahayn. Waxaan isticmaalnaa farshaxan isku mid ah annaga oo aan waxba ka beddelin codsiga, waxaanan dejineynaa cabbirrada dibadda.

Halbeeg-beegyada dabacsan ee habaynta arjiga waxay ku xidhan tahay deegaanka codsiga lagu fulin doono. Waxaan u rarnay dhammaan goobaha deegaanka dibadda: wax walba waxaa lagu jaangooyay qaabeynta K8S iyo cabbirrada Helm. Marka Helm geyso shirka deegaanka tijaabada, goobaha tijaabada ayaa lagu dabaqayaa, jaangooyooyinka wax soo saarkana waxaa lagu dabaqayaa deegaanka wax soo saarka.

Waxa ugu adag waxa ay ahayd in la cabbiro dhammaan adeegyada la isticmaalay iyo doorsoomayaasha ku xidhan deegaanka, oo loo turjumo doorsoomayaasha deegaanka iyo qeexida-qaabaynta xuduudaha deegaanka ee Helm.

Dejinta arjiga waxay isticmaalaan doorsoomayaasha deegaanka. Qiimahooda waxaa lagu dhejiyaa weelasha iyadoo la adeegsanayo qaabeynta K8S, kaas oo loo qaabeeyey iyadoo la adeegsanayo qaababka Go. Tusaale ahaan, dejinta doorsoome deegaan magaca domain waxa loo samayn karaa sidan:

APP_EXTERNAL_DOMAIN: {{ (pluck .Values.global.env .Values.app.properties.app_external_domain | first) }}

.Qiimaha.global.env - doorsoomuhu wuxuu kaydiyaa magaca deegaanka (prod, stage, UAT).
.Qiimaha.app.properties.app_external_domain - doorsoomahan waxaanu dhignay domainka la rabo faylka .Values.yaml

Marka la cusboonaysiinayo arjiga, Helm waxa uu ka abuuraa faylka configmap.yaml oo ka buuxinaya APP_EXTERNAL_DOMAIN qiimaha la doonayo iyada oo ku xidhan deegaanka uu ka bilaabmayo cusboonaysiinta codsigu. Doorsoomiyahan mar hore ayaa lagu dhex riday weelka. Waxaa laga heli karaa arjiga, markaa deegaan kasta oo codsi ah wuxuu yeelan doonaa qiime ka duwan doorsoomiyahan.

Dhawaanahan, taageerada K8S waxay ka soo muuqatay Spring Cloud, oo ay ku jirto la shaqaynta configMaps: Guga Cloud Kubernetes. In kasta oo mashruucu si firfircoon u horumarayo oo si weyn isu beddelayo, uma adeegsan karno wax-soo-saarka. Laakiin waxaan si firfircoon ula soconaa xaaladdeeda waxaanan u isticmaalnaa qaabeynta DEV. Sida ugu dhakhsaha badan ee ay u xasiliso, waxaanu ka beddeli doonaa isticmaalka doorsoomayaasha deegaanka una beddelo.

Wadarta

Markaa, Dejinta Joogtada ah waa la habeeyey oo shaqaynayaa. Dhammaan cusbooneysiinta waxay ku dhacdaa hal taleemo. Keenista isbeddelada deegaanka alaabadu waa si toos ah. Iyo, muhiimad, cusbooneysiintu ma joojinayso nidaamka.

Hirgelintayaga ku-diridda joogtada ah ee goobta macaamiisha

Qorshayaasha mustaqbalka: guuritaanka xogta tooska ah

Waxaan ka fekernay cusboonaysiinta xogta xogta iyo suurtogalnimada dib loogu celinayo isbeddelladan. Ka dib oo dhan, laba nooc oo kala duwan oo arji ah ayaa wada socda isku mar: kii hore wuu socdaa, kan cusubna wuu socdaa. Kii horena waxaanu damin doonaa oo keliya marka aanu hubno in nooca cusubi shaqaynayo. U guuritaanka keydka macluumaadka waa inuu kuu oggolaadaa inaad la shaqeyso labada nooc ee codsiga.

Sidaa darteed, si fudud uma beddeli karno magaca tiirka ama xogta kale. Laakiin waxaan samayn karnaa tiir cusub, ka koobi karnaa xogta tiirarka hore oo aan ku qori karnaa kiciyeyaasha, marka la cusboonaysiinayo xogta, isla mar ahaantaana koobi doona oo cusbooneysiin doona tiir kale. Ka dib markii si guul leh loo geeyo nooca cusub ee codsiga, ka dib xilliga taageerada bilaabista, waxaan awoodi doonaa inaan tirtirno tiirarka hore iyo kicinta oo noqotay mid aan loo baahnayn.

Haddii nooca cusub ee arjigu aanu si sax ah u shaqayn, waxaanu dib ugu noqon karnaa noocii hore, oo uu ku jiro nuqulkii hore ee kaydka Marka la soo koobo, isbeddelladayadu waxay kuu oggolaanayaan inaad si isku mar ah ula shaqeyso dhowr nooc oo arjiga ah.

Waxaan qorsheyneynaa inaan si otomaatig ah uga guurno xogta xogta anagoo adeegsanayna shaqada K8S, annagoo ku dhexgelinayna habka CD-ga. Waxaana hubaal ah inaan khibraddan ku wadaagi doono HabrΓ©.

Source: www.habr.com

Add a comment