Comparthing Logo
novērojamībamikropakalpojumimežizstrādeuzraudzībamākoņinfrastruktūraizkliedētās sistēmas

Novērojamība mikropakalpojumos salīdzinājumā ar monolītās sistēmas reģistrēšanu

Mikropakalpojumu novērojamība piedāvā izkliedētu izsekošanu, metriku un žurnālus neatkarīgos pakalpojumos, savukārt monolītā reģistrēšana koncentrējas uz centralizētiem ierakstiem no vienas lietojumprogrammas. Pareizā izvēle ir atkarīga no sistēmas sarežģītības, mēroga un tā, cik daudz ieskatu komandām ir nepieciešams pakalpojumu mijiedarbībā.

Iezīmes

  • Mikropakalpojumu novērojamība apstrādā pēdas, metrikas un žurnālus kā vienlīdzīgus signālus, savukārt monolītā reģistrēšana gandrīz pilnībā balstās uz teksta ierakstiem.
  • Izplatītā izsekošana ļauj komandām precīzi noteikt, kurš konkrētais pakalpojums izraisīja kļūmi, ar ko tradicionālajiem žurnāliem ir grūtības pārvarēt pakalpojumu robežas.
  • Monolītās mežizstrādes uzsākšanai ir nepieciešams daudz mazāk infrastruktūras un zināšanu, tāpēc tā ir pievilcīga mazākām vai mantotām sistēmām.
  • Novērojamība palielinās līdz ar sistēmas sarežģītību, savukārt monolīta reģistrēšana mēdz pasliktināties, pieaugot lietojumprogrammas lielumam un datplūsmai.

Kas ir Novērojamība mikropakalpojumos?

Daudzdimensionāla pieeja, kas apvieno izsekošanas datus, metrikas un žurnālus, lai izprastu uzvedību izkliedētos, neatkarīgi izvietotos pakalpojumos.

  • Balstīts uz trim pīlāriem: izkliedēta izsekošana, metrika un strukturēta reģistrēšana visos pakalpojumos
  • Izmanto korelācijas ID, lai sekotu vienam pieprasījumam, tam pārejot starp desmitiem vai simtiem pakalpojumu.
  • Datu vākšanai un vizualizācijai izmanto tādus rīkus kā OpenTelemetry, Jaeger, Prometheus un Grafana.
  • Izstrādāts īslaicīgas infrastruktūras apstrādei, kurā konteineri un pākstis pastāvīgi griežas augšup un lejup
  • Ļauj SRE komandām atklāt anomālijas, izmantojot pakalpojumu līmeņa mērķus un kļūdu budžetus

Kas ir Monolītās sistēmas reģistrēšana?

Tradicionāla pieeja, kurā viena lietojumprogramma raksta žurnāla ierakstus centralizētos failos vai vienā žurnālu krātuvē atkļūdošanai un auditēšanai.

  • Žurnāli tiek ģenerēti no vienas kodbāzes, kas darbojas kā viens process, tādējādi pieprasījumu ceļus ir viegli izsekot
  • Parasti izmanto uz failiem balstītu reģistrēšanu, sistēmas žurnālu (syslog) vai vienkāršus žurnālu apkopotājus, piemēram, Logback vai log4j.
  • Atkļūdošana parasti ietver žurnālfailu pārskatīšanu vai atsevišķas ELK steka instances vaicāšanu.
  • Veiktspējas izmaksas ir minimālas, jo reģistrēšana notiek vienā izpildlaika vidē
  • Vieglāk ieviest korelāciju, izmantojot pavedienu lokālo kontekstu vai vienkāršus sesijas ID

Salīdzinājuma tabula

Funkcija Novērojamība mikropakalpojumos Monolītās sistēmas reģistrēšana
Arhitektūra Izplatīts daudzos pakalpojumos Viena vienota lietojumprogramma
Primārie datu tipi Izsekošana, metrika un žurnāli Galvenokārt žurnāli, dažreiz metrikas
Pieprasījuma izsekošana Izplatīta izsekošana ar aptverošo kontekstu Pavedienu lokālā vai sesiju bāzes izsekošana
Instrumentu sarežģītība Augsts — nepieciešama instrumentācija visos pakalpojumos Zems — pietiek ar vienu žurnāla cauruļvadu
Mērogojamība Horizontāli mērogojas ar pakalpojumu skaitu Ierobežota ar vienas lietojumprogrammas caurlaidspēju
Neveiksmes diagnoze Norāda, kurš pakalpojums izraisīja latentumu vai kļūdas Vieglāk viena procesa ietvaros, grūtāk robežās
Uzglabāšanas prasības Liela apjoma, bieži vien laika rindu datubāzes Vidēji, parasti plakani faili vai viens indekss
Ieviešanas izmaksas Ievērojamas sākotnējās investīcijas Zemākas sākotnējās iestatīšanas izmaksas

Detalizēts salīdzinājums

Galvenā filozofija un pieeja

Mikropakalpojumu novērojamība pieņem, ka nav iespējams iepriekš paredzēt katru kļūmes režīmu, tāpēc tiek apkopoti pietiekami dažādi telemetrijas dati, lai pēc problēmu rašanās uzdotu jaunus jautājumus. Monolītā reģistrēšana izmanto vienkāršāku pieeju: tiek apkopoti pietiekami daudz teksta ierakstu, lai rekonstruētu notikušo pieprasījuma laikā. Pirmā pieeja žurnālus traktē kā vienu signālu starp daudziem, bet otrā pieeja žurnālus traktē kā primāro signālu sistēmas uzvedības izpratnei.

Kļūdu novēršana un cēloņu analīze

Kad mikropakalpojumu iestatījumos rodas problēmas, inženieri pāriet uz izkliedētajām trasēm, lai precīzi redzētu, kurš pakalpojums radīja latentumu vai atgrieza kļūdu. Monolītā izstrādātāji parasti atver žurnālfailu, meklē laika zīmogu vai lietotāja ID un izlasa secīgus ierakstus. Monolīta ceļš šķiet intuitīvāks, taču tas nedarbojas, kad sistēma kļūst pietiekami liela, ka viens žurnālfails kļūst apgrūtinošs.

Instrumenti un infrastruktūra

Novērojamības steki parasti apvieno instrumentācijas bibliotēku, piemēram, OpenTelemetry, izsekošanas aizmugursistēmu, piemēram, Jaeger vai Tempo, metriku krātuvi, piemēram, Prometheus, un informācijas paneļa slāni, piemēram, Grafana. Monolītai reģistrēšanai bieži vien ir nepieciešams daudz mazāk — reģistrēšanas ietvars, žurnālu nosūtītājs, piemēram, Filebeat, un varbūt ELK vai OpenSearch klasteris. Mikropakalpojumu rīku ķēdei ir nepieciešama lielāka operacionālā brieduma pakāpe, taču tā atmaksājas, kad sistēmas kļūst sarežģītas.

Veiktspēja un pieskaitāmās izmaksas

Izkliedētā izsekošana palielina tīkla lēcienus un serializācijas izmaksas, jo posmi tiek izplatīti pāri pakalpojumu robežām, lai gan izlases stratēģijas ļauj pārvaldīt papildu izmaksas. Monolītā reģistrēšana notiek tuvu lietojumprogrammas procesam, tāpēc veiktspējas kritums galvenokārt rodas diska ievades/izvades un žurnāla formatēšanas dēļ. Abas pieejas var pasliktināt veiktspēju, ja reģistrēšana ražošanas vidē tiek atstāta detalizētā līmenī, taču mikropakalpojumu vidēm parasti ir nepieciešama rūpīgāka pielāgošana.

Kad katram ir jēga

Novērojamība izceļas vidēs ar biežu izvietošanu, poliglotiem pakalpojumiem un komandām, kurām nepieciešama neatkarīga komponentu īpašniecība. Monolītā reģistrēšana joprojām ir piemērota mazākām lietojumprogrammām, mantotajām sistēmām vai scenārijiem, kuros atbilstība normatīvajiem aktiem prasa vienkāršas audita takas. Daudzas organizācijas faktiski izmanto abus — saglabā tradicionālos žurnālus atbilstības nodrošināšanai, vienlaikus pievienojot novērošanas rīkus inženiertehniskai ieskatu iegūšanai.

Priekšrocības un trūkumi

Novērojamība mikropakalpojumos

Iepriekšējumi

  • + Pilnīga pieprasījuma redzamība
  • + Daudzsignālu korelācija
  • + Mērogi ar sarežģītību
  • + Nodrošina SRE praksi

Ievietots

  • Augstākas instrumentu izmaksas
  • Stāvāka mācīšanās līkne
  • Vairāk krātuves izmaksu
  • Nepieciešama instrumentācijas disciplīna

Monolītās sistēmas reģistrēšana

Iepriekšējumi

  • + Vienkārši ieviest
  • + Zemākas ekspluatācijas izmaksas
  • + Pazīstams lielākajai daļai komandu
  • + Vienkārša audita taka

Ievietots

  • Ierobežota ieskatu starppakalpojumu jomā
  • Slikti pielāgojas izmēram
  • Viena kļūmes punkta
  • Grūtāk korelēt notikumus

Biežas maldības

Mīts

Ar žurnāliem vien pietiek, lai atkļūdotu jebkuru sistēmu.

Realitāte

Žurnāli labi darbojas monolītos, bet zaudē efektivitāti izkliedētās sistēmās, kur viens pieprasījums skar daudzus pakalpojumus. Metrika un izsekošanas dati aizpilda nepilnības, parādot modeļus un cēloņsakarības, ko žurnāli nevar viegli atklāt.

Mīts

Novērojamība ir tikai iedomāta reģistrēšana ar jaunu nosaukumu.

Realitāte

Novērojamība ir plašāka disciplīna, kas ietver žurnālus, bet pievieno arī metrikas un pēdas kā pirmās klases signālus. Mērķis mainās no ierakstu meklēšanas uz patvaļīgu jautājumu uzdošanu par sistēmas darbību, neizplatot jaunu kodu.

Mīts

Monolītām sistēmām nav nepieciešama novērojamība.

Realitāte

Pat atsevišķas lietojumprogrammas gūst labumu no metrikas, izsekošanas datiem un strukturētiem žurnāliem, kad tie sasniedz jēgpilnu mērogu. Novērojamība ir saistīta ar sistēmas stāvokļa izpratni, kas attiecas neatkarīgi no arhitektūras.

Mīts

Izplatītā izsekošana ir pārāk dārga lietošanai ražošanā.

Realitāte

Mūsdienu izsekošanas sistēmas izmanto uz lietotāju galviņu vai asti balstītu izlasi, lai iegūtu reprezentatīvu pieprasījumu apakškopu. Tas samazina papildu slodzi, vienlaikus nodrošinot pietiekami daudz datu, lai diagnosticētu lielāko daļu problēmu.

Mīts

Pāreja uz mikropakalpojumiem automātiski uzlabo novērojamību.

Realitāte

Mikropakalpojumi apgrūtina novērojamību, nevis atvieglo to, jo tagad ir jāuzrauga vairāk kustīgu daļu. Bez atbilstošas instrumentācijas un rīkiem redzamība faktiski samazinās, salīdzinot ar labi instrumentētu monolītu.

Bieži uzdotie jautājumi

Kāda ir atšķirība starp novērojamību un reģistrēšanu?
Reģistrēšana ir viens no telemetrijas datu veidiem — diskrēti notikumi, ko reģistrē lietojumprogramma. Novērojamība ir sistēmas īpašība, kas apraksta, cik labi jūs varat izprast tās iekšējo stāvokli no ārējām izvades datiem. Novērojamība izmanto žurnālus, metrikas un izsekošanas datus kopā, savukārt reģistrēšana koncentrējas tikai uz teksta ierakstiem.
Kāpēc mikropakalpojumiem ir nepieciešama izkliedēta izsekošana?
Viena lietotāja pieprasījums mikropakalpojumu arhitektūrā var tikt izpildīts, izmantojot piecus, desmit vai vairāk pakalpojumus. Izplatītā izsekošana seko šim pieprasījumam pāri pakalpojumu robežām, izmantojot korelācijas ID un posmus, ļaujot redzēt, kur tika patērēts laiks un kur radās kļūmes.
Vai mikropakalpojumu vidē var izmantot tradicionālo reģistrēšanu?
Jā, bet bez koplietotiem identifikatoriem žurnālu korelācija starp pakalpojumiem kļūst sarežģītāka. Lielākā daļa komandu pievieno strukturētu reģistrēšanu ar korelācijas ID, pēc tam virsū slāņu izsekošanu un metriku, lai iegūtu pilnīgu priekšstatu par sistēmas darbību.
Kādi ir trīs novērojamības pīlāri?
Trīs pīlāri ir žurnāli, metrika un izsekošanas dati. Žurnāli fiksē atsevišķus notikumus, metrika laika gaitā reģistrē skaitliskus datus, un izsekošanas dati parāda pieprasījuma ceļu izkliedētās sistēmās. Kopā tie ļauj komandām atbildēt uz jautājumiem par veiktspēju, kļūdām un lietotāja pieredzi.
Vai OpenTelemetry ir novērojamības standarts?
OpenTelemetry ir kļuvis par faktisko instrumentācijas standartu lielākajā daļā valodu un platformu. Tas apvienoja OpenTracing un OpenCensus projektus, un tagad to atbalsta Cloud Native Computing Foundation ar plašu pārdevēju un atvērtā pirmkoda rīku atbalstu.
Cik maksā novērojamība salīdzinājumā ar reģistrēšanu?
Novērojamība parasti izmaksā vairāk papildu krātuves, instrumentu licenču un instrumentācijas izstrādes laika dēļ. Tomēr tā bieži vien samazina vidējo problēmu risināšanas laiku un novērš dārgus darbības pārtraukumus, kas var atsvērt sākotnējos ieguldījumus organizācijām, kuras pārvalda sarežģītas sistēmas.
Vai monolītiem ir noderīgi novērojamības rīki?
Pilnīgi noteikti. Pat atsevišķas lietojumprogrammas gūst vērtību no izkliedētas izsekošanas savā procesā, no metrikas, kas atklāj veiktspējas tendences, un no strukturētiem žurnāliem, kurus ir vieglāk vaicāt. Novērojamības rīki nav paredzēti tikai mikropakalpojumiem.
Kas ir laidums izkliedētajā izsekošanā?
Laipnums apzīmē vienu darba vienību izsekošanas datos, piemēram, datubāzes vaicājumu vai HTTP izsaukumu starp pakalpojumiem. Laipnumiem ir nosaukums, sākuma laiks, ilgums un metadati, un tie ir saistīti kopā, izmantojot vecāku un bērnu attiecības, veidojot pilnīgu izsekošanas datējumu.
Kā jūs korelējat žurnālus dažādos mikropakalpojumos?
Komandas parasti ievada korelācijas ID sistēmas malā un izplata to, izmantojot HTTP galvenes, ziņojumu metadatus vai pavediena kontekstu. Katrs pakalpojums iekļauj šo ID savos žurnāla ierakstos, tāpēc viena meklēšana visos pakalpojumos atgriež pilnu pieprasījuma ceļu.
Vai jaunuzņēmumiem vajadzētu izmantot novērojamību vai pieturēties pie reģistrēšanas?
Agrīnās stadijas jaunuzņēmumi parasti sāk ar strukturētu reģistrēšanu un pamata metriku izmantošanu, jo tie tiek piegādāti ātrāk un maksā mazāk. Sistēmai augot un komandām palielinoties, izsekošanas un vienotas novērošanas platformas pievienošana kļūst vērtīga, lai saglabātu izstrādes ātrumu.

Spriedums

Izvēlieties mikropakalpojumu novērojamību, ja jūsu sistēma aptver daudzus neatkarīgus pakalpojumus un jums ir jāsaprot starppakalpojumu mijiedarbība reāllaikā. Vienkāršākām lietojumprogrammām, kur centralizēti ieraksti nodrošina pietiekamu redzamību un darbības izmaksas ir svarīgākas par detalizētu ieskatu, izvēlieties monolītu reģistrēšanu. Praksē nobriedušas sistēmas bieži vien apvieno abas pieejas, nevis pilnībā apņemas izmantot vienu.

Saistītie salīdzinājumi

Adaptīvā infrastruktūra pret statisko infrastruktūras dizainu

Adaptīvā infrastruktūra dinamiski pielāgojas mainīgajām darba slodzēm, izmantojot automatizāciju un mērogošanu reāllaikā, savukārt statiskās infrastruktūras dizains balstās uz fiksētiem, iepriekš konfigurētiem resursiem. Izvēle starp tiem ir atkarīga no darba slodzes mainīguma, budžeta paredzamības un darbības brieduma jūsu mākoņvidē.

Augstas caurlaidspējas apkalpošanas sistēmas salīdzinājumā ar zemas datplūsmas API

Augstas caurlaidspējas apkalpošanas sistēmas apstrādā milzīgu pieprasījumu apjomu ar milisekundes līmeņa latentumu, nodrošinot ieteikumu dzinēju un reklāmu platformu darbību. API ar mazu datplūsmu apkalpo mazākas lietotāju bāzes, kur vienkāršība, izmaksu efektivitāte un uzturēšanas vieglums ir svarīgāki par neapstrādātu mērogu.

Augstas caurlaidspējas ieteikumu apkalpošana salīdzinājumā ar zemas latentuma API sistēmām

Augstas caurlaidspējas ieteikumu apkalpošana koncentrējas uz miljonu vienumu ranžēšanu katrā pieprasījumā plašā mērogā, savukārt zemas latentuma API sistēmas piešķir prioritāti ātram, paredzamam atbildes laikam vispārējas nozīmes vaicājumiem. Abas pieprasa veiktspēju zem 100 ms, bet risina fundamentāli atšķirīgas inženiertehniskās problēmas mūsdienu mākoņinfrastruktūrā.

AWS pret Google Cloud

Šis salīdzinājums izvērtē Amazon Web Services un Google Cloud, analizējot to pakalpojumu piedāvājumus, cenu modeļus, globālo infrastruktūru, veiktspēju, izstrādātāju pieredzi un optimālos lietošanas gadījumus, palīdzot organizācijām izvēlēties mākoņplatformu, kas vislabāk atbilst to tehniskajām un biznesa prasībām.

Baitu nobīdes kontrolpunktēšana salīdzinājumā ar bezvalstnieku atkopšanu

Baitu nobīdes kontrolpunkti un bezstāvokļa atkopšana ir principiāli atšķirīgas pieejas kļūdu tolerancei izkliedētās sistēmās, kur pirmā saglabā precīzas straumes pozīcijas precīzai atsākšanas iespējai, bet otrā atjauno stāvokli no nulles, izmantojot nemainīgus datu avotus, aizstājot krātuves pieskaitāmās izmaksas rekonstrukcijas vienkāršības labad.