Mikroservizzi - splużjoni kombinatorja ta 'verżjonijiet

Hello, Habr! Nippreżenta għall-attenzjoni tiegħek traduzzjoni tal-awtur tal-artiklu Mikroservizzi – Splużjoni Kombinatorja ta’ Verżjonijiet.
Mikroservizzi - splużjoni kombinatorja ta 'verżjonijiet
Fi żmien meta d-dinja tal-IT qed timxi gradwalment lejn mikroservizzi u għodod bħal Kubernetes, problema waħda biss qed issir dejjem aktar notevoli. Din il-problema - splużjoni kombinatorja verżjonijiet tal-mikroservizz. Xorta waħda, il-komunità tal-IT temmen li s-sitwazzjoni attwali hija ħafna aħjar minn "infern tad-dipendenza" ġenerazzjoni preċedenti tat-teknoloġija. Madankollu, il-verżjoni tal-mikroservizzi hija problema kumplessa ħafna. Prova waħda ta 'dan tista' tkun artikoli simili "Agħtini lura l-monolitu tiegħi".

Jekk għadek ma tifhimx il-problema billi taqra dan it-test, ħalluni nispjega. Ejja ngħidu li l-prodott tiegħek jikkonsisti f'10 mikroservizzi. Issa ejja nassumu li hija rilaxxata verżjoni ġdida għal kull wieħed minn dawn il-mikroservizzi. Verżjoni 1 biss - Nittama li nistgħu lkoll naqblu li dan huwa fatt trivjali u insinifikanti ħafna. Issa, madankollu, ejja nagħtu ħarsa oħra lejn il-prodott tagħna. B'verżjoni ġdida waħda biss ta 'kull komponent, issa għandna 1 ^ 2 - jew 10 permutazzjonijiet ta' kif il-prodott tagħna jista 'jkun magħmul.

Jekk għad hemm xi nuqqas ta’ ftehim, ħalluni nkisser il-matematika. Għalhekk għandna 10 mikroservizzi, kull wieħed jirċievi aġġornament wieħed. Jiġifieri jkollna 2 verżjonijiet possibbli għal kull mikroservizz (jew qodma jew ġdida). Issa, għal kull wieħed mill-komponenti tal-prodott, nistgħu nużaw waħda minn dawn iż-żewġ verżjonijiet. Matematikament, huwa l-istess bħallikieku kellna numru binarju ta '10 ċifri. Pereżempju, ejja ngħidu li 1 hija l-verżjoni l-ġdida, u 0 hija l-verżjoni l-antika - allura permutazzjoni waħda possibbli tista 'tiġi indikata bħala 1001000000 - fejn l-ewwel u r-1 komponenti huma aġġornati, u l-oħrajn kollha mhumiex. Mill-matematika nafu li numru binarju b'4 figuri jista' jkollu 10^2 jew 10 valuri. Jiġifieri kkonfermajna l-iskala tan-numru li qed nittrattaw miegħu.

Ejja nkomplu nirraġunaw aktar - x'jiġri jekk ikollna 100 mikroservizz u kull wieħed ikollu 10 verżjonijiet possibbli? Is-sitwazzjoni kollha ssir pjuttost spjaċevoli - issa għandna 10^100 permutazzjoni - li huwa numru kbir. Madankollu, nippreferi nittratta din is-sitwazzjoni b’dan il-mod, għax issa m’għadniex ninħbew wara kliem bħal “kubernetes”, iżda pjuttost niffaċċjaw il-problema kif inhi.

Għaliex jien tant affaxxinat b'din il-problema? Parzjalment minħabba li, wara li qabel ħdimna fid-dinja ta 'NLP u AI, iddiskutejna l-problema ta' splużjoni kombinatorja ħafna madwar 5-6 snin ilu. Biss minflok verżjonijiet kellna kliem individwali, u minflok prodotti kellna sentenzi u paragrafi. U għalkemm il-problemi tal-NLP u l-AI għadhom fil-biċċa l-kbira mhux solvuti, wieħed għandu jammetti li sar progress sinifikanti matul l-aħħar ftit snin (fl-opinjoni tiegħi, jista' jsir progressоIkun aħjar jekk in-nies fl-industrija jagħtu ftit inqas attenzjoni lit-tagħlim tal-magni u ftit aktar lil tekniki oħra - iżda dan diġà huwa barra mis-suġġett).

Ejja nerġgħu lura għad-dinja tad-DevOps u l-mikroservizzi. Aħna qed iħabbtu wiċċna ma 'problema kbira, maskra bħala iljunfant fil-Kunstkamera - għaliex dak li spiss nisma' huwa "sempliċement ħu kubernetes u tmun, u kollox se jkun tajjeb!" Imma le, kollox mhux se jkun tajjeb jekk kollox jitħalla kif inhu. Barra minn hekk, soluzzjoni analitika għal din il-problema ma tidhirx aċċettabbli minħabba l-kumplessità tagħha. Bħal fl-NLP, l-ewwel għandna navviċinaw din il-problema billi nnaqqsu l-ambitu tat-tfittxija—f'dan il-każ, billi neliminaw permutazzjonijiet skaduti.

Waħda mill-affarijiet li jistgħu jgħinu hija xi ħaġa li ktibt is-sena l-oħra dwar il-ħtieġa li tinżamm differenza minima bejn il-verżjonijiet stazzjonati għall-klijenti. Huwa importanti wkoll li wieħed jinnota li proċess CI/CD iddisinjat tajjeb jgħin ħafna fit-tnaqqis tal-varjazzjonijiet. Madankollu, l-istat attwali tal-affarijiet ma 'CI/CD mhuwiex tajjeb biżżejjed biex issolvi l-problema tal-permutazzjonijiet mingħajr għodod addizzjonali għall-komponenti tal-kontabilità u t-traċċar.

Dak li għandna bżonn huwa sistema ta 'esperimentazzjoni fl-istadju ta' integrazzjoni, fejn nistgħu niddeterminaw il-fattur ta 'riskju għal kull komponent, u wkoll ikollna proċess awtomatizzat għall-aġġornament ta' diversi komponenti u ttestjar mingħajr intervent tal-operatur - biex naraw x'jaħdem u x'ma jaħdimx.

Sistema ta’ esperimenti bħal din tista’ tidher bħal din:

  1. L-iżviluppaturi jiktbu testijiet (dan huwa stadju kritiku - għax inkella m'għandna l-ebda kriterju ta 'evalwazzjoni - huwa bħall-ittikkettar tad-dejta fit-tagħlim tal-magni).
  2. Kull komponent (proġett) jirċievi s-sistema CI tiegħu stess - dan il-proċess issa huwa żviluppat sew, u l-kwistjoni tal-ħolqien ta 'sistema CI għal komponent wieħed ġiet solvuta fil-biċċa l-kbira
  3. Is-"sistema ta 'integrazzjoni intelliġenti" tiġbor ir-riżultati ta' diversi sistemi CI u tiġbor proġetti ta 'komponenti fil-prodott finali, tmexxi l-ittestjar u finalment tikkalkula l-iqsar triq biex tikseb il-funzjonalità tal-prodott mixtieqa bbażata fuq komponenti eżistenti u fatturi ta' riskju. Jekk aġġornament ma jkunx possibbli, din is-sistema tavża lill-iżviluppaturi dwar il-komponenti eżistenti u liema minnhom qed jikkawża l-iżball. Għal darb'oħra, is-sistema tat-test hija ta' importanza kritika hawnhekk - peress li s-sistema ta' integrazzjoni tuża t-testijiet bħala kriterju ta' evalwazzjoni.
  4. Sistema CD, li mbagħad tirċievi data mis-Sistema ta 'Integrazzjoni Intelliġenti u twettaq l-aġġornament direttament. Dan l-istadju itemm iċ-ċiklu.

Fil-qosor, għalija waħda mill-akbar problemi issa hija n-nuqqas ta '"Sistema ta' Integrazzjoni Intelliġenti" bħal din li torbot id-diversi komponenti fi prodott u b'hekk tippermettilek issegwi kif il-prodott kollu kemm hu jitqiegħed flimkien. Inkun interessat fil-ħsibijiet tal-komunità dwar dan (spoiler - bħalissa qed naħdem fuq proġett Reliza, li tista 'ssir tali sistema ta' integrazzjoni intelliġenti).

L-aħħar ħaġa li rrid insemmi hija li, għalija, monolith mhux aċċettabbli għal kwalunkwe proġett ta 'daqs medju. Għalija, it-tentattivi biex iħaffu l-ħin tal-implimentazzjoni u l-kwalità tal-iżvilupp billi nirritornaw għal monolitu jikkawżaw xettiċiżmu kbir. L-ewwelnett, monolith għandu problema simili ta 'ġestjoni tal-komponenti - fost il-libreriji varji li jikkonsisti fihom, madankollu, dan kollu mhuwiex daqshekk notevoli u jimmanifesta ruħu primarjament fil-ħin mqatta' mill-iżviluppaturi. Il-konsegwenza tal-problema tal-monolith hija l-impossibbiltà virtwali li jsiru bidliet fil-kodiċi - u l-veloċità ta 'żvilupp bil-mod estremament.

Il-mikroservizzi jtejbu s-sitwazzjoni, iżda mbagħad l-arkitettura tal-mikroservizzi tiffaċċja l-problema ta 'splużjoni kombinatorja fl-istadju ta' integrazzjoni. Iva, b'mod ġenerali, mxejna l-istess problema mill-istadju ta 'żvilupp għall-istadju ta' integrazzjoni. Madankollu, fl-opinjoni tiegħi, l-approċċ tal-mikroservizzi għadu jwassal għal riżultati aħjar, u t-timijiet jiksbu riżultati aktar malajr (probabbilment prinċipalment minħabba t-tnaqqis fid-daqs tal-unità tal-iżvilupp - jew daqs tal-lott). Madankollu, il-bidla minn monolith għal mikroservizzi għadha ma ġabitx biżżejjed titjib fil-proċess - l-isplużjoni kombinatorja tal-verżjonijiet tal-mikroservizzi hija problema kbira, u għandna ħafna potenzjal biex intejbu s-sitwazzjoni hekk kif insolvuha.

Sors: www.habr.com

Żid kumment