Ihe na-akpali akpali gbasara ịtọlite ​​sava na-enweghị ọrụ ebube na njikwa nhazi

Afọ Ọhụrụ na-eru nso. Ụmụaka niile na mba ahụ ezigarala Santa Claus akwụkwọ ozi ma ọ bụ nye onwe ha onyinye, na onye isi ha, otu n'ime ndị na-ere ahịa bụ isi, na-akwadebe maka apotheosis nke ahịa. Na Disemba, ibu dị na etiti data ya na-abawanye ọtụtụ ugboro. Ya mere, ụlọ ọrụ ahụ kpebiri ime ka ụlọ ọrụ data dị ọhụrụ ma tinye ọtụtụ sava ọhụrụ iri na abụọ kama ngwá ọrụ na-eru na njedebe nke ndụ ọrụ ya. Nke a kwụsịrị akụkọ ahụ megide ndabere nke snowflakes na-agbagharị agbagharị, ihe na-akpali akpali na-amalite.

Ihe na-akpali akpali gbasara ịtọlite ​​sava na-enweghị ọrụ ebube na njikwa nhazi
Ngwa ahụ rutere na saịtị ahụ ọtụtụ ọnwa tupu ọnụ ahịa ahịa. Ọrụ ọrụ, n'ezie, maara otú na ihe na-ahazi na sava iji webata ha na mmepụta gburugburu ebe obibi. Mana anyị kwesịrị imezi nke a ma kpochapụ ihe na-akpata mmadụ. Tụkwasị na nke ahụ, a na-edochi ihe nkesa ahụ tupu ịkwaga nke usoro SAP nke dị mkpa maka ụlọ ọrụ ahụ.

Ejikọtara ọrụ nke sava ọhụrụ na njedebe. Na ịkwaga ya pụtara itinye ma mbupu nke otu ijeri onyinye na mbugharị nke usoro ihe egwu. Ọbụna otu ndị mejupụtara Fada Frost na Santa Claus enweghị ike ịgbanwe ụbọchị - ị nwere ike ịnyefe usoro SAP maka njikwa ụlọ nkwakọba ihe naanị otu ugboro n'afọ. Site na Disemba 31 ruo Jenụwarị 1, nnukwu ụlọ nkwakọba ihe nke ndị na-ere ahịa, na ngụkọta nke ogige egwuregwu 20, kwụsịrị ọrụ ha maka awa 15. Ma nke a bụ naanị oge maka ịmegharị usoro ahụ. Anyị enweghị ohere maka njehie mgbe anyị na-ewebata sava.

Ka m doo anya: akụkọ m na-egosipụta ngwá ọrụ na nhazi nhazi usoro nke ndị otu anyị na-eji.

Ogwe njikwa nhazi nwere ọtụtụ ọkwa. Akụkụ bụ isi bụ sistemụ CMS. N'ime ọrụ mmepụta ihe, enweghị otu n'ime ọkwa ndị ahụ ga-eduga na ọrụ ebube na-adịghị mma.

Njikwa nwụnye OS

Ọkwa nke mbụ bụ usoro maka ijikwa ntinye nke sistemu arụ ọrụ na sava anụ ahụ na mebere. Ọ na-emepụta ntọala OS ndị bụ isi, na-ewepụ ihe kpatara mmadụ.

N'iji usoro a, anyị nwetara ihe nkesa ọkọlọtọ nwere OS dabara adaba maka akpaaka ọzọ. N'oge "ịwụsa" ha natara opekempe nke ndị ọrụ mpaghara na igodo SSH ọha, yana nhazi OS na-agbanwe agbanwe. Anyị nwere ike ijide n'aka na anyị ga-ejikwa sava ndị ahụ site na CMS ma jide n'aka na ọ dịghị ihe ijuanya "n'okpuru ala" na ọkwa OS.

Ọrụ "kachasị" maka sistemụ njikwa nrụnye bụ ịhazi sava na-akpaghị aka site na ọkwa BIOS/Firmware ruo OS. Ọtụtụ ebe a dabere na akụrụngwa na ọrụ nhazi. Maka akụrụngwa dị iche iche, ị nwere ike ịtụle API megharịa. Ọ bụrụ na ngwaike niile sitere na otu onye na-ere ahịa, mgbe ahụ ọ na-adịkarị mfe iji ngwaọrụ njikwa emebere (dịka ọmụmaatụ, HP ILO Amplifier, DELL OpenManage, wdg).

Iji wụnye OS na sava anụ ahụ, anyị na-eji Cobbler a ma ama, nke na-akọwapụta profaịlụ nrụnye ekwenyela na ọrụ ọrụ. Mgbe ị na-agbakwunye ihe nkesa ọhụrụ na akụrụngwa, injinia kegidere adreesị MAC nke ihe nkesa na profaịlụ achọrọ na Cobbler. Mgbe ị na-ebufe netwọkụ ahụ maka oge mbụ, ihe nkesa ahụ nwetara adreesị nwa oge yana OS ọhụrụ. Mgbe ahụ, a bufere ya na adreesị VLAN/IP lekwasịrị anya wee gaa n'ihu na-arụ ọrụ ebe ahụ. Ee, ịgbanwe VLAN na-ewe oge ma na-achọ nhazi, mana ọ na-enye nchebe ọzọ megide ntinye ihe nkesa na mberede na gburugburu mmepụta.

Anyị mepụtara sava mebere dabere na ndebiri ejiri HashiCorp Packer akwadoro. Ihe kpatara ya bụ otu: iji gbochie mmejọ mmadụ nwere ike ime mgbe ị na-etinye OS. Mana, n'adịghị ka sava anụ ahụ, Packer na-ewepụ mkpa PXE, booting network, na mgbanwe VLAN. Nke a emeela ka ọ dị mfe ma dị mfe ịmepụta sava mebere.

Ihe na-akpali akpali gbasara ịtọlite ​​sava na-enweghị ọrụ ebube na njikwa nhazi
Osikapa. 1. Ijikwa ntinye nke sistemụ arụmọrụ.

Ijikwa ihe nzuzo

Usoro njikwa nhazi ọ bụla nwere data kwesịrị ezoro ezo n'aka ndị ọrụ nkịtị, mana ọ dị mkpa iji kwadebe usoro. Ndị a bụ okwuntughe maka ndị ọrụ mpaghara na akaụntụ ọrụ, igodo asambodo, akara API dị iche iche, wdg. A na-akpọkarị ha “ihe nzuzo.”

Ọ bụrụ na ị chọpụtaghị site na mmalite ebe na otu esi echekwa ihe nzuzo ndị a, mgbe ahụ, dabere na nlezianya nke ihe nchekwa ozi chọrọ, usoro nchekwa ndị a nwere ike ịbụ:

  • ozugbo na koodu njikwa nhazi ma ọ bụ na faịlụ na ebe nchekwa;
  • na ngwaọrụ nhazi nhazi pụrụ iche (dịka ọmụmaatụ, Vault Ansible);
  • na CI / CD usoro (Jenkins / TeamCity / GitLab / wdg) ma ọ bụ na nhazi nhazi usoro (Ansible Tower / Ansible AWX);
  • Enwere ike ibufe ihe nzuzo "iji aka". Dịka ọmụmaatụ, a na-edobe ha na ebe a kapịrị ọnụ, wee jiri usoro nhazi nhazi mee ihe;
  • ngwakọta dị iche iche nke dị n'elu.

Usoro ọ bụla nwere ọghọm nke ya. Nke bụ isi bụ enweghị usoro iwu maka ịnweta ihe nzuzo: ọ gaghị ekwe omume ma ọ bụ sie ike ikpebi onye nwere ike iji ụfọdụ ihe nzuzo. Mwepu ọzọ bụ enweghị ohere nyocha na usoro ndụ zuru oke. Otu esi edochi ngwa ngwa, dịka ọmụmaatụ, igodo ọha nke edere na koodu na ọtụtụ usoro metụtara ya?

Anyị ji ebe nchekwa nzuzo HashiCorp Vault. Nke a nyere anyị ohere:

  • chebe nzuzo. Ha na-ezoro ezo, ọ bụrụgodị na mmadụ enweta ohere na nchekwa data Vault (dịka ọmụmaatụ, site na iweghachi ya na ndabere), ha agaghị enwe ike ịgụ ihe nzuzo echekwara ebe ahụ;
  • hazie amụma maka ịnweta ihe nzuzo. Naanị ihe nzuzo "ekenyela" ha dị maka ndị ọrụ na ngwa;
  • nyochaa ohere nzuzo. A na-edekọ omume ọ bụla nwere ihe nzuzo na ndekọ nyocha nke Vault;
  • hazie "usoro ndụ" zuru oke nke ịrụ ọrụ na nzuzo. Enwere ike ịmepụta ha, kagbuo, tọọ ụbọchị njedebe, wdg.
  • dị mfe ijikọta na usoro ndị ọzọ chọrọ ịnweta ihe nzuzo;
  • ma na-ejikwa nzuzo nzuzo na njedebe ruo ọgwụgwụ, okwuntughe otu oge maka OS na nchekwa data, asambodo nke ụlọ ọrụ ikike, wdg.

Ugbu a, ka anyị gaa n'ihu na usoro nyocha na ikike etiti. Ọ ga-ekwe omume ịme na-enweghị ya, mana ijikwa ndị ọrụ n'ọtụtụ sistemu metụtara abụghị obere ihe. Anyị ahazila nyocha na ikike site na ọrụ LDAP. Ma ọ bụghị ya, Vault ga-aga n'ihu na-ewepụta ma debe akara ngosi maka ndị ọrụ. Na ihichapụ na ịgbakwunye ndị ọrụ ga-aghọ ọchịchọ "m mepụtara/ehichapụ akaụntụ onye ọrụ a ebe niile?"

Anyị na-agbakwunye ọkwa ọzọ na sistemụ anyị: njikwa nzuzo na nzere etiti / ikike:

Ihe na-akpali akpali gbasara ịtọlite ​​sava na-enweghị ọrụ ebube na njikwa nhazi
Osikapa. 2. Nlekọta nzuzo.

Njikwa nhazi

Anyị nwetara na isi - usoro CMS. N'ọnọdụ anyị, nke a bụ ngwakọta nke AWX nwere ike ime na okpu uhie.

Kama enwere ike, onye isi nri, puppet, SaltStack nwere ike iji. Anyị họọrọ A pụrụ ịdabere na ọtụtụ njirisi.

  • Nke mbụ, ọ bụ versatility. Ntọala nke modul emebere maka njikwa na-eme ka echiche. Ma ọ bụrụ na ịnweghị ezuru ya, ị nwere ike ịchọ GitHub na Galaxy.
  • Nke abuo, ọ dịghị mkpa ịwụnye na ịkwado ndị ọrụ na ngwá ọrụ a na-achịkwa, gosi na ha adịghị egbochi ibu ahụ, ma kwenye na enweghị "ibe edokọbara".
  • Nke atọ, Ansible nwere ihe mgbochi dị ala ịbanye. Onye injinia tozuru etozu ga-ede akwụkwọ egwuregwu na-arụ ọrụ n'ụzọ nkịtị n'ụbọchị mbụ nke iji ngwaahịa ahụ rụọ ọrụ.

Mana enwere ike naanị na mpaghara mmepụta ezughị anyị. Ma ọ bụghị ya, ọtụtụ nsogbu ga-ebilite site na igbochi ịnweta yana nyochaa omume nke ndị nchịkwa. Kedu ka esi amachibido ịbanye? A sị ka e kwuwe, ọ dị mkpa ka ngalaba ọ bụla jikwaa (gụọ: na-agba ọsọ akwụkwọ egwu egwu) "nke ya" nke sava. Kedu otu esi ekwe ka naanị ụfọdụ ndị ọrụ na-agba akwụkwọ egwuregwu pụrụ iche? Ma ọ bụ ka esi soro onye malitere akwụkwọ egwu egwu na-enweghị ịtọlite ​​​​ọtụtụ ihe ọmụma mpaghara na sava na akụrụngwa na-agba ọsọ nke ọma?

A na-edozi oke ọdụm n'okwu ndị dị otú ahụ site na Red Hat Ụlọ elu nwere ike ime, ma ọ bụ ọrụ ya mepere emepe elu AWX nwere ike ime. Ọ bụ ya mere anyị ji họrọ ya maka onye ahịa.

Na otu mmetụ ọzọ na eserese nke sistemụ CMS anyị. Ekwesịrị ịchekwa akwụkwọ egwuregwu enwere ike na sistemu njikwa koodu. Anyị nwere ya GitLab CE.

Ya mere, a na-ejikwa nhazi nke onwe ya site na nchikota nke AWX / GitLab nwere ike ime (lee Fig. 3). N'ezie, AWX/GitLab jikọtara ya na otu usoro nyocha, na akwụkwọ egwu egwu na-ejikọta ya na HashiCorp Vault. Nhazi na-abanye na mpaghara mmepụta naanị site na AWX nwere ike ime, nke akọwapụtara "iwu egwuregwu" niile: onye nwere ike ịhazi ihe, ebe ị ga-enweta koodu njikwa nhazi maka CMS, wdg.

Ihe na-akpali akpali gbasara ịtọlite ​​sava na-enweghị ọrụ ebube na njikwa nhazi
Osikapa. 3. njikwa nhazi.

Nlekọta ule

E gosipụtara nhazi anyị n'ụdị koodu. Ya mere, a na-amanye anyị igwu egwu site na otu iwu dị ka ndị mmepe software. Anyị kwesịrị ịhazi usoro nke mmepe, ule na-aga n'ihu, nnyefe na ngwa nke koodu nhazi na sava mmepụta.

Ọ bụrụ na emeghị nke a ozugbo, mgbe ahụ, ọrụ ndị edere maka nhazi ahụ ga-akwụsị ịkwado ma gbanwee, ma ọ bụ kwụsị ịmalite na mmepụta. A maara ọgwụgwọ maka mgbu a, ma o gosipụtala onwe ya na ọrụ a:

  • A na-ekpuchi ọrụ ọ bụla site na nyocha unit;
  • a na-anwale ule na-akpaghị aka mgbe ọ bụla mgbanwe ọ bụla dị na koodu na-achịkwa nhazi;
  • A na-ahapụ mgbanwe na koodu njikwa nhazi na mpaghara mmepụta naanị mgbe ịgafe ule niile na nyocha koodu.

Mmepe koodu na njikwa nhazi adịla jụụ ma bụrụ nke a na-ahụ anya. Iji hazie ule na-aga n'ihu, anyị jiri GitLab CI/CD Toolkit, wee were Molecule enwere ike.

Mgbe ọ bụla enwere mgbanwe na koodu njikwa nhazi, GitLab CI/CD na-akpọ Molecule:

  • ọ na-enyocha koodu syntax,
  • na-ebuli akpa Docker,
  • na-etinye koodu gbanwetụrụ na akpa emepụtara,
  • na-enyocha ọrụ maka idempotency ma na-agba ọsọ ule maka koodu a (granularity ebe a dị na ọkwa ọrụ nwere ike ime, lee Fig. 4).

Anyị na-ebuga nhazi na gburugburu ebe a na-emepụta ihe site na iji AWX Ansible. Ndị injinia na-arụ ọrụ tinyere mgbanwe nhazi site na ndebiri akọwapụtagoro. AWX n'onwe ya “arịọrọ” ụdị koodu kachasị ọhụrụ sitere na ngalaba nna ukwu GitLab oge ọ bụla ejiri ya. N'ụzọ dị otú a, anyị wepụrụ iji koodu na-anwalebeghị ma ọ bụ nke emechiela na gburugburu mmepụta. Dị ka o kwesịrị ịdị, koodu ahụ banyere alaka ụlọ ọrụ naanị mgbe anwalechara, nyocha na nkwenye.

Ihe na-akpali akpali gbasara ịtọlite ​​sava na-enweghị ọrụ ebube na njikwa nhazi
Osikapa. 4. Nnwale akpaaka nke ọrụ na GitLab CI/CD.

Enwekwara nsogbu metụtara ọrụ nke usoro mmepụta ihe. Na ndụ n'ezie, ọ na-esiri ike ime mgbanwe nhazi site na koodu CMS naanị. Ọnọdụ mberede na-ebilite mgbe onye injinia ga-agbanwe nhazi "ebe a na ugbu a", na-echeghị maka ndezi koodu, ule, nkwenye, wdg.

N'ihi ya, n'ihi mgbanwe akwụkwọ ntuziaka, ndịiche na-apụta na nhazi na otu ụdị ngwá ọrụ (dịka ọmụmaatụ, a na-ahazi ntọala sysctl dị iche iche na oghere ụyọkọ HA). Ma ọ bụ ezigbo nhazi na akụrụngwa dị iche na nke akọwapụtara na koodu CMS.

Ya mere, na mgbakwunye na ule na-aga n'ihu, anyị na-enyocha gburugburu mmepụta maka nhazi nhazi. Anyị họọrọ nhọrọ kachasị mfe: na-agba ọsọ koodu nhazi CMS na ọnọdụ "akọrọ akọrọ", ya bụ, na-enweghị itinye mgbanwe, ma na ngosi nke esemokwu niile n'etiti nhazi atụmatụ na n'ezie. Anyị mejupụtara nke a site na iji “—check” nhọrọ na sava mmepụta na-eji akwụkwọ egwu egwu oge niile. Dị ka oge niile, AWX nwere ike na-ahụ maka ịmalite na idowe akwụkwọ egwu egwu ọhụrụ (lee fig. 5):

Ihe na-akpali akpali gbasara ịtọlite ​​sava na-enweghị ọrụ ebube na njikwa nhazi
Osikapa. 5. Nyochaa maka nhazi nhazi na AWX nwere ike ime.

Mgbe nyochachara, AWX na-ezigara ndị nchịkwa mkpesa enweghị nkwekọrịta. Ha na-amụ nhazi nsogbu ahụ wee dozie ya site na akwụkwọ egwuregwu ndị edoziziri. Nke a bụ otú anyị si edozi nhazi na gburugburu ebe mmepụta ihe na CMS na-emelite mgbe niile na mekọrịta. Nke a na-ewepụ "ọrụ ebube" na-adịghị mma mgbe ejiri koodu CMS na sava "mmepụta".

Ugbu a, anyị nwere oyi akwa nnwale dị mkpa nke nwere AWX/GitLab/Molecule nwere ike ime (ọgụgụ 6).

Ihe na-akpali akpali gbasara ịtọlite ​​sava na-enweghị ọrụ ebube na njikwa nhazi
Osikapa. 6. Nlekọta ule.

Ọ siri ike? Anaghị m arụ ụka. Mana mgbagwoju anya nhazi nhazi dị otú ahụ aghọwo azịza zuru oke maka ọtụtụ ajụjụ metụtara akpaaka nke nhazi ihe nkesa. Ugbu a ọkọlọtọ ọkọlọtọ nke onye na-ere ahịa na-enwe nhazi nke ọma mgbe niile. CMS, n'adịghị ka onye injinia, agaghị echefu ịgbakwunye ntọala ndị dị mkpa, mepụta ndị ọrụ ma rụọ ọtụtụ ma ọ bụ ọtụtụ narị ntọala achọrọ.

Enweghị "ihe ọmụma nzuzo" na ntọala nke sava na gburugburu taa. A na-egosipụta atụmatụ niile dị mkpa n'akwụkwọ egwuregwu. Enweghị ike imepụta ihe na ntuziaka ndị na-edoghị anya: "Wụnye ya dị ka Oracle oge niile, mana ịkwesịrị ịkọwapụta ntọala sysctl abụọ wee tinye ndị ọrụ nwere UID achọrọ. Jụọ ụmụ okorobịa na-arụ ọrụ, ha maara".

Ikike ịchọpụta ọdịiche nhazi ma mezie ha na-arụsi ọrụ ike na-enye udo nke uche. Enweghị usoro nhazi nhazi, nke a na-adịkarị iche. Nsogbu na-agbakọta ruo otu ụbọchị ha "gbara" n'ime mmepụta. Mgbe ahụ, a na-eme nkọwapụta, a na-enyocha nhazi ma mezie ya. Na okirikiri na-emegharị ọzọ

Ma n'ezie, anyị accelerated mwepụta nke sava n'ime ọrụ site ọtụtụ ụbọchị ruo awa.

Ọfọn, na New Year's Eve n'onwe ya, mgbe ụmụaka na-eji ọṅụ na-ewepụ onyinye na ndị okenye na-eme ọchịchọ dị ka chimes na-akụ, ndị injinia anyị kwagara usoro SAP na sava ọhụrụ. Ọbụna Santa Claus ga-ekwu na ọrụ ebube kachasị mma bụ ndị a kwadebere nke ọma.

PS Ndị otu anyị na-ezutekarị eziokwu ahụ bụ na ndị ahịa chọrọ idozi nsogbu njikwa nhazi dị ka o kwere mee. Kwesịrị ekwesị, dị ka ma ọ bụrụ na anwansi - na otu ngwá ọrụ. Ma na ndụ ihe niile dị mgbagwoju anya (ee, a naghị ebupụta mgbọ ọlaọcha ọzọ): ị ga-emepụta usoro dum site na iji ngwaọrụ ndị dị mma maka otu ndị ahịa.

Onye edemede: Sergey Artemov, onye na-ese ụkpụrụ ụlọ Ihe ngwọta DevOps "Jet Infosystems"

isi: www.habr.com

Tinye a comment