Ha re tloha ts'ebetsong ea monolithic ho ea mohahong oa microservices, re tobana le mathata a macha.
Ts'ebelisong ea monolithic, hangata ho bonolo ho tseba hore na phoso e etsahetse ho karolo efe ea sistimi. Ho ka etsahala hore ebe bothata bo ho khoutu ea monolith ka boeona, kapa ho database. Empa ha re qala ho batla bothata mohahong oa microservice, ntho e 'ngoe le e' ngoe ha e sa bonahala. Re hloka ho fumana tsela eohle eo kopo e e nkileng ho tloha qalong ho fihlela qetellong ebe re e khetha ho tsoa ho makholo a microservices. Ho feta moo, ba bangata ba bona ba boetse ba na le lisebelisoa tsa bona tsa polokelo, tse ka bakang liphoso tse utloahalang, hammoho le mathata a ts'ebetso le mamello ea liphoso.
Ke khale ke batla sesebelisoa se ka thusang ho sebetsana le mathata a joalo (ke ngotse ka sena ho Habré:
Ts'ebetso e ajoang ke tharollo e tloaelehileng bothateng ba ho fumana liphoso lits'ebetsong tse ajoang. Empa ho thoe'ng haeba mokhoa ona oa ho bokella tlhahisoleseding mabapi le litšebelisano tsa marang-rang ha o e-s'o sebelisoe tsamaisong, kapa, ho hobe le ho feta, karolo ea tsamaiso e se e ntse e sebetsa hantle, empa karolo e 'ngoe ha e joalo, kaha ha e e-s'o kenyelletsoe litšebeletsong tsa khale. ? Ho fumana hore na sesosa sa bothata ke sefe, ho hlokahala hore ho be le setšoantšo se feletseng sa se etsahalang tsamaisong. Ho bohlokoa haholo ho utloisisa hore na ke li-microservices life tse amehang litseleng tsa bohlokoa tsa khoebo.
Mona mokhoa oa mesh oa litšebeletso o ka re thusa, o tla sebetsana le mechine eohle ea ho bokella tlhahisoleseding ea marang-rang ka tekanyo e tlaase ho feta litšebeletso tseo ka botsona li sebetsang ka tsona. Mokhoa ona o re lumella ho thibela sephethephethe sohle le ho se sekaseka ka fofa. Ho feta moo, lits'ebetso ha lia tlameha ho tseba letho ka eona.
Mokhoa oa litšebeletso tsa mesh
Mohopolo o ka sehloohong oa mokhoa oa ts'ebeletso ea mesh ke ho kenyelletsa karolo e 'ngoe ea litšebeletso holim'a marang-rang, e tla re lumella ho etsa ntho leha e le efe ka tšebelisano-'moho le litšebeletso. Bongata ba ts'ebetsong bo sebetsa ka tsela e latelang: sejana se eketsehileng sa koloi se ka thōko se nang le proxy e hlakileng se eketsoa ho microservice e 'ngoe le e' ngoe, eo ho eona ho fetisoang sephethephethe sohle se kenang le se tsoang. Hona ke hona moo re ka etsang ho leka-lekanya bareki, ho sebelisa maano a tšireletso, ho beha lithibelo palo ea likopo le ho bokella lintlha tsa bohlokoa mabapi le tšebelisano ea lits'ebeletso tlhahisong.
Tharollo
Ho na le mekhoa e mengata ea ho sebelisa mokhoa ona:
Ka lebaka leo, re ile ra sheba hantle hore na ke bokhoni bofe boo re bo hlokang hona joale, 'me ra etsa qeto ea hore lebaka le ka sehloohong le entseng hore re qale ho kenya ts'ebetsong litharollo tse joalo e ne e le bokhoni ba ho bokella tlhahisoleseding ea ho latella tsamaiso eohle ka mokhoa o hlakileng. Re ne re boetse re batla ho ba le taolo holim'a tšebelisano ea lits'ebeletso le ho etsa maqheka a fapaneng ka lihlooho tse fetisetsoang lipakeng tsa lits'ebeletso.
Ka lebaka leo, re fihletse qeto ea rona:
Netramesh
Lipakane tse ka sehloohong tsa tharollo e ncha e ne e le lisebelisoa tse fokolang tsa lisebelisoa le ts'ebetso e phahameng. Har'a likarolo tsa mantlha, hang-hang re ne re batla ho khona ho romella marang-rang ka mokhoa o hlakileng ho sistimi ea rona ea Jaeger.
Kajeno, litharollo tse ngata tsa maru li sebelisoa Golang. 'Me, ho hlakile, ho na le mabaka a sena. Ho ngola lits'ebetso tsa marang-rang ho Golang tse sebetsang ka mokhoa o ts'oanang le I/O le ho lekanya li-cores ka moo ho hlokahalang ho bonolo ebile ho bonolo. Hape, se bohlokoa haholo, ts'ebetso e lekane ho rarolla bothata bona. Ke kahoo le rona re khethileng Golang.
Tlhahiso
Re tsepamisitse matsapa a rona ho fihlelleng tlhahiso e phahameng. Bakeng sa tharollo e behiloeng haufi le mohlala o mong le o mong oa ts'ebeletso, ho hlokahala tšebeliso e nyane ea nako ea RAM le CPU. 'Me, ehlile, tieho ea karabelo le eona e lokela ho ba nyane.
Ha re boneng hore na re fumane liphetho life.
RAM
Netramesh e ja ~ 10Mb ntle le sephethephethe le 50Mb boholo ka mojaro o fihlang ho 10000 RPS ka mohlala.
Moemeli oa Istio o lula a sebelisa ~ 300Mb ka har'a lihlopha tsa rona ka makhetlo a likete. Sena ha se lumelle hore e fetisetsoe sehlopheng sohle.
Ka Netramesh re fumane phokotso ea ~ 10x ea tšebeliso ea mohopolo.
CPU
Tšebeliso ea CPU e batla e lekana tlas'a mojaro. E ipapisitse le palo ea likopo ka yuniti ea nako ho koloi e ka thoko. Boleng ba likopo tse 3000 motsotsoana ka sehlohlolong:
Ho na le ntlha e 'ngoe ea bohlokoa: Netramesh - tharollo ntle le sefofane sa taolo le ntle le mojaro ha e je nako ea CPU. Ka Istio, li-sidecars li lula li ntlafatsa lits'ebeletso tsa ho qetela. Ka lebaka leo, re ka bona setšoantšo sena ntle le mojaro:
Re sebelisa HTTP/1 bakeng sa puisano lipakeng tsa lits'ebeletso. Keketseho ea nako ea karabelo bakeng sa Istio ha e le moemeli ka moemeli e ne e fihla ho 5-10ms, e leng ntho e ngata haholo bakeng sa lits'ebeletso tse ikemiselitseng ho arabela ka millisecond. Ka Netramesh nako ena e theohile ho 0.5-2ms.
Ho se sebetse
Chelete e nyane ea lisebelisoa tse sebelisoang ke moemeli ka mong e etsa hore ho khonehe ho e beha haufi le ts'ebeletso ka 'ngoe. Netramesh e entsoe ka boomo ntle le karolo ea sefofane sa taolo ho boloka koloi e 'ngoe le e 'ngoe e le bobebe. Hangata litharollong tsa mesh ea lits'ebeletso, sefofane sa taolo se fana ka tlhaiso-leseling ea ts'ebeletso ho koloi e 'ngoe le e 'ngoe. Hammoho le eona ho na le tlhahisoleseling mabapi le linako tsa nako le litlhophiso tsa ho leka-lekanya. Sena sohle se u lumella ho etsa lintho tse ngata tse molemo, empa, ka bomalimabe, li bloats li-sidecars ka boholo.
Ho sibolloa ha litšebeletso
Netramesh ha e kenye mekhoa e meng ea ho sibolla litšebeletso. Sephethephethe sohle se entsoe ka mokhoa o hlakileng ka netra sidecar.
Netramesh e ts'ehetsa protocol ea ts'ebeliso ea HTTP/1. Ho e hlalosa, ho sebelisoa lethathamo le lokisehang la likou. Ka tloaelo, tsamaiso e na le likou tse 'maloa tseo puisano ea HTTP e hlahang ka eona. Mohlala, re sebelisa 80, 8890, 8080 bakeng sa tšebelisano lipakeng tsa lits'ebeletso le likopo tsa kantle. Boemong bona, li ka hlophisoa ho sebelisoa phetoho ea tikoloho. NETRA_HTTP_PORTS
.
Haeba u sebelisa Kubernetes e le 'mino oa liletsa le mochini oa eona oa Setsi sa Ts'ebeletso bakeng sa puisano ea intra-cluster lipakeng tsa lits'ebeletso, mochini o ntse o ts'oana hantle. Taba ea mantlha, microservice e fumana aterese ea IP ea ts'ebeletso e sebelisa kube-dns mme e bula khokahano e ncha ho eona. Khokahano ena e thehiloe pele le netra-sidecar ea lehae mme lipakete tsohle tsa TCP li qala ho fihla netra. Ka mor'a moo, netra-sidecar e theha khokahano le sebaka seo e eang ho sona. NAT ho pod IP ho node e lula e tšoana hantle le ntle le netra.
Phatlalatso e ajoang le phetiso ea litaba
Netramesh e fana ka ts'ebetso e hlokahalang ho romella marang-rang mabapi le litšebelisano tsa HTTP. Netra-sidecar e fetisa protocol ea HTTP, e lekanya tieho ea kopo, 'me e ntša lintlha tse hlokahalang ho tsoa lihloohong tsa HTTP. Qetellong, re fumana mesaletsa eohle tsamaisong e le 'ngoe ea Jaeger. Bakeng sa tlhophiso e hlakileng, o ka sebelisa le mefuta e fapaneng ea tikoloho e fanoeng ke laeborari ea semmuso
Empa ho na le bothata. Ho fihlela lits'ebeletso li hlahisa le ho romella sehlooho se ikhethileng sa uber, re ke ke ra bona likarolo tse hokahaneng tsa ho latella sistimi. 'Me sena ke seo re se hlokang ho potlakela ho fumana sesosa sa mathata. Mona hape Netramesh e na le tharollo. Li-proxies li bala lihlooho tsa HTTP 'me, haeba li se na uber trace id, li hlahise e le 'ngoe. Netramesh e boetse e boloka tlhahisoleseling mabapi le likopo tse kenang le tse tsoang ka koloing e ka thoko 'me e li bapise ka ho li ruisa ka lihlooho tse hlokahalang tse tsoang. Seo u hlokang ho se etsa feela lits'ebeletso ke ho romella hlooho e le 'ngoe feela X-Request-Id
, e ka hlophisoang ho sebelisoa phetoho ea tikoloho NETRA_HTTP_REQUEST_ID_HEADER_NAME
. Ho laola boholo ba moelelo ho Netramesh, o ka beha mefuta e latelang ea tikoloho: NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS
(nako eo moelelo oa taba o tla bolokoa ka eona) le NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL
(khafetsa ea tlhoekiso ea litaba).
Hape hoa khoneha ho kopanya litsela tse ngata tsamaisong ea hau ka ho li tšoaea ka lets'oao le khethehileng la lenaneo. Netra e u lumella ho kenya HTTP_HEADER_TAG_MAP
ho fetola lihlooho tsa HTTP hore e be li-tag tse tsamaellanang tsa span. Sena se ka ba molemo haholo bakeng sa tlhahlobo. Ka mor'a ho feta teko ea ts'ebetso, u ka bona hore na ke karolo efe ea tsamaiso e anngoeng ke ho sefa ka konopo ea nako e lumellanang.
Ho khetholla Mohloli oa Kopo
Ho fumana hore na kopo e tsoa hokae, u ka sebelisa ts'ebetso ea ho eketsa hlooho ka mohloli. Ho sebedisa phetoho ya tikoloho NETRA_HTTP_X_SOURCE_HEADER_NAME
O ka hlakisa lebitso la hlooho le tla kenngoa ka bo eona. Ka ho sebelisa NETRA_HTTP_X_SOURCE_VALUE
o ka beha boleng boo hlooho ea X-Mohloli o tla behoa ho eona bakeng sa likopo tsohle tse tsoang.
Sena se lumella ho ajoa ha sehlooho sena se molemo hore se ajoe ka mokhoa o ts'oanang ho pholletsa le marang-rang. Ebe o ka e sebelisa lits'ebeletso mme oa e eketsa ho logs le metrics.
Tsela ea sephethephethe le basebetsi ba ka hare ba Netramesh
Netramesh e na le likarolo tse peli tse kholo. Ea pele, netra-init, e beha melao ea marang-rang ho thibela sephethephethe. Oa sebelisa INBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS
.
Sesebelisoa se boetse se na le tšobotsi e khahlisang - probabilistic routing. Haeba u sebelisa Netramesh feela bakeng sa ho bokella marang-rang, joale sebakeng sa tlhahiso u ka boloka lisebelisoa le ho nolofalletsa mokhoa oa ho sebelisa mekhoa e fapaneng. NETRA_INBOUND_PROBABILITY
и NETRA_OUTBOUND_PROBABILITY
(ho tloha ho 0 ho isa ho 1). Boleng ba kamehla ke 1 (sephethephethe kaofela se amohetsoe).
Kamora ho kenella ka katleho, netra sidecar e amohela khokahano e ncha le ts'ebeliso SO_ORIGINAL_DST
khetho ea socket ho fumana moo u eang teng. Netra joale e bula khokahano e ncha ho aterese ea pele ea IP mme e theha puisano ea litsela tse peli tsa TCP pakeng tsa lihlopha, ho mamela sephethephethe sohle se fetang. Haeba boema-kepe bo hlalosoa e le HTTP, Netra e leka ho e bala le ho e latela. Haeba HTTP parsing e hloleha, Netra e khutlela ho TCP mme e fana ka li-byte pepeneneng.
Ho aha kerafo ea ho itšetleha
Ka mor'a ho fumana boitsebiso bo bongata ba ho latela mokhoa oa Jaeger, ke batla ho fumana setšoantšo se feletseng sa litšebelisano tsamaisong. Empa haeba sisteme ea hau e na le thepa e ngata 'me libilione tsa sebaka sa ho latela li bokellana ka letsatsi, ho li kopanya ha se mosebetsi o bonolo. Ho na le mokhoa oa molao oa ho etsa sena:
Haeba u sebelisa Elasticsearch ho boloka spans, u ka e sebelisa
Mokhoa oa ho sebelisa Netramesh
Netra e ka eketsoa habonolo ts'ebeletso efe kapa efe e tsamaisang 'mino oa liletsa. O ka bona mohlala
Hajoale, Netra ha e na bokhoni ba ho kenya tšebetsong li-sidecars ho lits'ebeletso, empa ho na le merero ea ts'ebetsong.
Bokamoso ba Netramesh
sepheo se seholo
Nakong e tlang, Netramesh e tla tšehetsa liprothokholo tse ling tsa lera la kopo ntle le HTTP. L7 routing e tla fumaneha haufinyane.
Sebelisa Netramesh haeba u kopana le mathata a tšoanang 'me u re ngolle ka lipotso le litlhahiso.
Source: www.habr.com