Microservices - yon eksplozyon konbinezon de vèsyon

Bonjou, Habr! Mwen prezante nan atansyon ou tradiksyon otè a nan atik la Mikwosèvis - Eksplozyon konbinatoryal nan vèsyon yo.
Microservices - yon eksplozyon konbinezon de vèsyon
Nan yon moman kote mond lan IT ap deplase piti piti nan direksyon pou mikwosèvis ak zouti tankou Kubernetes, se yon sèl pwoblèm ki vin pi plis ak plis aparan. Pwoblèm sa a - eksplozyon konbinezon vèsyon mikwosèvis yo. Toujou, kominote IT la kwè ke sitiyasyon aktyèl la pi bon pase "Depandans lanfè" ansyen jenerasyon teknoloji. Sepandan, vèsyon microservices se yon pwoblèm trè konplèks. Yon prèv sa a kapab atik tankou "Remèt mwen monolit mwen an".

Si w toujou pa konprann pwoblèm nan lè w li tèks sa a, kite m eksplike. Ann di pwodwi ou a konsiste de 10 mikwosèvis. Koulye a, an n sipoze ke 1 nouvo vèsyon pibliye pou chak nan mikwosèvis sa yo. Se sèlman 1 vèsyon - Mwen espere ke nou tout ka dakò ke sa a se yon reyalite trè trivial ak ensiyifyan. Koulye a, sepandan, kite a pran yon lòt gade nan pwodwi nou an. Avèk sèlman yon nouvo vèsyon chak eleman, kounye a nou gen 2 ^ 10 - oswa 1024 pèmitasyon nan ki jan pwodwi nou an ka konpoze.

Si gen nenpòt enkonpreyansyon toujou, kite m kraze matematik la. Se konsa, nou gen 10 mikwosèvis, chak resevwa yon aktyalizasyon. Sa vle di, nou jwenn 2 vèsyon posib pou chak mikwosèvis (swa ansyen oswa nouvo). Koulye a, pou chak nan konpozan pwodwi yo, nou ka itilize youn nan de vèsyon sa yo. Matematikman, se menm jan ak si nou te gen yon nimewo binè 10 chif. Pou egzanp, an n di ke 1 se nouvo vèsyon an, ak 0 se vèsyon an ansyen - Lè sa a, yon sèl pèmitasyon posib yo ka endike kòm 1001000000 - kote 1ye ak 4yèm eleman yo mete ajou, ak tout lòt yo pa. Apati matematik nou konnen yon nonm binè 10 chif kapab genyen 2^10 oswa 1024 valè. Sa vle di, nou konfime echèl nimewo n ap fè fas a.

Ann kontinye rezònman nou pi lwen - kisa ki pral rive si nou gen 100 mikwosèvis epi chak gen 10 vèsyon posib? Tout sitiyasyon an vin byen dezagreyab - kounye a nou gen 10 ^ 100 pèmitasyon - ki se yon nimewo gwo. Sepandan, mwen pito mete etikèt sou sitiyasyon sa a konsa, paske kounye a nou pa kache dèyè mo tankou "kubernetes", men pito fè fas a pwoblèm nan jan li ye.

Poukisa mwen tèlman kaptive pa pwoblèm sa a? An pati paske, li te deja travay nan mond lan nan NLP ak AI, nou te diskite sou pwoblèm nan nan eksplozyon konbinatwa anpil sou 5-6 ane de sa. Se sèlman olye de vèsyon nou te gen mo endividyèl, ak olye pou yo pwodwi nou te gen fraz ak paragraf. Ak byenke pwoblèm yo nan NLP ak AI rete lajman pa rezoud, li dwe admèt ke pwogrè enpòtan yo te fè nan kèk ane ki sot pase yo. (nan opinyon mwen, pwogrè ka fètоLi ta pi bon si moun nan endistri a te peye yon ti kras mwens atansyon pou machin aprann ak yon ti kras plis pou lòt teknik - men sa deja hors sujet).

Ann retounen nan mond lan nan DevOps ak mikwosèvis. Nou ap fè fas ak yon gwo pwoblèm, maskaran kòm yon elefan nan Kunstkamera a - paske sa mwen tande souvan se "jis pran kubernetes ak Helm, ak tout bagay pral anfòm!" Men, non, tout bagay pa pral byen si tout bagay yo rete jan yo ye. Anplis, yon solisyon analyse pwoblèm sa a pa sanble akseptab akòz konpleksite li yo. Menm jan ak NLP, nou ta dwe premye apwoche pwoblèm sa a pa redui sijè ki abòde rechèch la—nan ka sa a, lè nou elimine pèmitasyon demode.

Youn nan bagay ki ta ka ede se yon bagay mwen te ekri ane pase a sou bezwen an kenbe yon diferans minimòm ant vèsyon ki afiche pou kliyan yo. Li enpòtan tou sonje ke yon pwosesis CI/CD ki byen fèt anpil ede nan diminye varyasyon. Sepandan, eta aktyèl la nan zafè ak CI/CD pa bon ase yo rezoud pwoblèm nan nan pèmitasyon san zouti adisyonèl pou konpozan kontablite ak swiv.

Ki sa nou bezwen se yon sistèm eksperimantasyon nan etap entegrasyon an, kote nou ka detèmine faktè risk pou chak eleman, epi tou gen yon pwosesis otomatik pou mete ajou divès eleman ak tès san entèvansyon operatè - yo wè sa ki travay ak sa ki pa fè sa.

Yon sistèm eksperyans konsa ka sanble sa a:

  1. Devlopè yo ekri tès (sa a se yon etap kritik - paske otreman nou pa gen okenn kritè evalyasyon - se tankou etikèt done nan aprantisaj machin).
  2. Chak eleman (pwojè) resevwa pwòp sistèm CI li - kounye a pwosesis sa a byen devlope, epi pwoblèm nan kreye yon sistèm CI pou yon sèl eleman te lajman rezoud.
  3. "Sistèm entegrasyon entelijan" kolekte rezilta divès sistèm CI ak rasanble pwojè konpozan nan pwodwi final la, fè tès la epi finalman kalkile chemen ki pi kout la pou jwenn fonksyonalite pwodwi yo vle ki baze sou eleman ki deja egziste ak faktè risk. Si yon aktyalizasyon pa posib, sistèm sa a avèti devlopè yo sou eleman ki egziste deja yo ak kilès nan yo ki lakòz erè a. Yon fwa ankò, sistèm tès la gen anpil enpòtans isit la - depi sistèm entegrasyon an sèvi ak tès kòm yon kritè evalyasyon.
  4. Sistèm CD, ki Lè sa a, resevwa done ki soti nan Sistèm Entegrasyon Entelijan ak fè aktyalizasyon a dirèkteman. Etap sa a fini sik la.

Pou rezime, pou mwen youn nan pi gwo pwoblèm yo kounye a se mank nan tankou yon "Sistèm Entegrasyon Entelijan" ki ta konekte eleman yo divès kalite nan yon pwodwi epi konsa pèmèt ou swiv ki jan pwodwi a kòm yon antye yo mete ansanm. Mwen pral enterese nan panse kominote a sou sa a (spoiler - mwen kounye a ap travay sou yon pwojè Reliza, ki ka vin tankou yon sistèm entegrasyon entelijan).

Yon dènye bagay mwen vle mansyone se ke, pou mwen, yon monolith pa akseptab pou nenpòt pwojè nan menm yon gwosè mwayen. Pou mwen, tantativ pou pi vit aplikasyon tan ak bon jan kalite nan devlopman pa retounen nan yon monolith lakòz gwo dout. Premyèman, yon monolit gen yon pwoblèm ki sanble nan jere eleman - nan mitan bibliyotèk yo divès kalite ke li konsiste de, sepandan, tout bagay sa a se pa tèlman aparan ak manifeste tèt li prensipalman nan tan an pase pa devlopè. Konsekans pwoblèm nan monolith se enposib vityèl pou fè chanjman nan kòd la - ak vitès devlopman trè dousman.

Mikwosèvis amelyore sitiyasyon an, men Lè sa a, achitekti mikwosèvis la ap fè fas ak pwoblèm eksplozyon combinatoryal nan etap entegrasyon an. Wi, an jeneral, nou te deplase menm pwoblèm nan soti nan etap devlopman nan etap entegrasyon an. Sepandan, nan opinyon mwen, apwòch mikwosèvis yo toujou mennen nan pi bon rezilta, ak ekip yo reyalize rezilta pi vit (pwobableman sitou akòz rediksyon nan gwosè inite devlopman an - oswa gwosè pakèt). Sepandan, deplase soti nan monolit nan mikwosèvis poko amelyore pwosesis la ase - eksplozyon konbinezon an nan vèsyon mikwosèvis se yon gwo pwoblèm, epi nou gen anpil potansyèl amelyore sitiyasyon an pandan n ap rezoud li.

Sous: www.habr.com

Add nouvo kòmantè