Netramesh - otinga mata ratonga mama

I a tatou e neke ana mai i te tono monolithic ki te hoahoanga microservices, ka raru tatou i nga wero hou.

I roto i te tono monolithic, he maamaa noa te whakatau ko tehea waahanga o te punaha i puta te hapa. Ko te nuinga, ko te raruraru kei roto i te waehere o te monolith ake, kei roto ranei i te papaarangi. Engari ka tiimata ana taatau ki te rapu raru i roto i te hoahoanga microservice, kua kore e tino kitea nga mea katoa. Me kimihia te huarahi katoa i puta i te tono mai i te timatanga ki te mutunga ka kowhiri mai i nga rau o nga ratonga miihini. I tua atu, he maha o raatau kei a raatau ake waahi rokiroki, ka taea ano hoki nga hapa arorau, tae atu ki nga raru o te mahi me te aukati i te he.

Netramesh - otinga mata ratonga mama

Kua roa ahau e rapu ana mo tetahi taputapu hei awhina i enei raru (I tuhi ahau mo tenei i runga i a Habré: 1, 2), engari i te mutunga i hanga e ahau taku ake otinga puna tuwhera. I roto i tenei tuhinga ka korero ahau mo nga painga o te huarahi ratonga mesh me te tiri i tetahi taputapu hou mo tona whakatinanatanga.

Ko te whaiwhai toha he otinga noa ki te raru o te rapu hapa i roto i nga punaha toha. Engari he aha tenei huarahi ki te kohi korero mo nga taunekeneke whatunga kaore ano kia whakatinanahia i roto i te punaha, he kino ake ranei, i tetahi waahanga o te punaha kua pai te mahi, engari i tetahi waahanga kaore, na te mea kaore ano kia whakauruhia ki nga ratonga tawhito. ? Hei whakatau i te tino take o te raruraru, me whai pikitia katoa mo nga mea e tupu ana i roto i te punaha. He mea nui kia mohio ko wai nga ratonga moroiti e uru ana ki nga huarahi whakahirahira-pakihi.

I konei ka taea e te huarahi ratonga kawa ki te awhina i a maatau, ka mahi ki nga miihini katoa mo te kohi korero whatunga i te taumata iti ake i te mahi a nga ratonga. Ma tenei huarahi ka taea e tatou te haukoti i nga waka katoa me te tātari i runga i te rere. I tua atu, kaore nga tono e mohio ki tetahi mea mo taua mea.

Te huarahi ratonga mata

Ko te whakaaro nui mo te huarahi maatanga ratonga ko te taapiri i tetahi atu paparanga hanganga ki runga i te whatunga, ka taea e taatau te mahi i tetahi mea me te taunekeneke-a-ratonga. Ko te nuinga o nga mahi e whai ake nei: ka taapirihia he ipu taapiri me te takawaenga maramara ki ia ratonga moroiti, ma reira ka tukuna katoa nga waka taumai me te puta atu o te ratonga. Na koinei te waahi ka taea e taatau te whakarite i te whakataurite o nga kaihoko, te whakamahi i nga kaupapa here haumarutanga, te aukati i te maha o nga tono me te kohi korero nui mo te taunekeneke o nga ratonga i roto i te whakaputa.

Netramesh - otinga mata ratonga mama

Nga raruraru

He maha nga whakatinanatanga o tenei huarahi: Istio и linkerd2. Ka whakaratohia e ratou he maha o nga ahuatanga mai i te pouaka. Engari i te wa ano, ka puta he utu nui mo nga rauemi. I tua atu, ko te nui ake o te roopu e whakahaere ana taua punaha, ka nui ake nga rauemi hei pupuri i nga hanganga hou. I Avito, ka whakahaerehia e matou nga tautau kubernetes kei roto nga mano tini o nga waahi ratonga (a kei te tere haere tonu to raatau nama). I roto i tana whakatinanatanga o naianei, ka pau a Istio ~ 300Mb o RAM mo ia tauira ratonga. Na te nui o nga mea ka taea, ka pa ano te pauna marama ki te wa whakautu katoa o nga ratonga (tae atu ki te 10ms).

Ko te mutunga mai, i ata tirohia e matou he aha nga kaha e hiahiatia ana e matou i tenei wa, ka whakatau ko te tino take i timata ai matou ki te whakatinana i aua otinga ko te kaha ki te kohi korero tirotiro mai i te punaha katoa. I hiahia hoki matou ki te whai mana whakahaere i runga i te taunekeneke o nga ratonga me te mahi i nga momo whawhe me nga pane e whakawhiti ana i waenga i nga ratonga.

Ko te mutunga mai, ka whakatauhia e matou:  Netramesh.

Netramesh

Netramesh he otinga mata ratonga mama me te kaha ki te tauine mutunga kore, ahakoa te maha o nga ratonga kei roto i te punaha.

Ko nga whainga matua o te otinga hou ko te iti rawa o nga rauemi i runga ake me te mahi nui. I roto i nga waahanga nui, i hiahia tonu matou kia kaha ki te tuku i nga waahanga tirotiro ki ta maatau punaha Jaeger.

I tenei ra, ko te nuinga o nga otinga kapua ka whakatinanahia ki Golang. A, o te akoranga, he take mo tenei. Ko te tuhi i nga tono whatunga ki Golang e mahi ana me te I/O me te tauine puta noa i nga uho ka hiahiatia he watea me te ngawari. Na, he aha te mea nui, he ranea te mahi ki te whakaoti i tenei raru. Koia hoki i whiriwhiria e matou a Golang.

Te whai hua

Kua arotahi matou i a matou mahi ki te whakatutuki i te hua tino nui. Mo tetahi otinga ka tukuna ki te taha o ia waahanga o te ratonga, me iti te kai o te RAM me te wa CPU. A, ko te tikanga, me iti ano te roa o te whakautu.

Kia kite tatou he aha nga hua i puta mai.

RAM

Ka pau te Netramesh ~ 10Mb kaore he waka me te 50Mb te teitei me te uta ki runga ki te 10000 RPS ia tauira.

Istio karere takawaenga pau tonu ~300Mb i roto i to tatou tautau me nga mano o nga wa. Kare e taea e tenei te whakahiatohia ki te huinga katoa.

Netramesh - otinga mata ratonga mama

Netramesh - otinga mata ratonga mama

Ma te Netramesh ka whiwhi matou i te ~10x whakaiti i te kohi mahara.

PTM

He rite tonu te whakamahi PTM i raro i te kawenga. Kei runga i te maha o nga tono mo ia waeine wa ki te waka taha. Ko nga uara i te 3000 tono mo ia hekona i te tihi:

Netramesh - otinga mata ratonga mama

Netramesh - otinga mata ratonga mama

He mea nui ake ano: Netramesh - he otinga kaore he rererangi whakahaere me te kore kawenga kaore e pau te wa CPU. Ma te Istio, ka whakahouhia e nga motuka taha nga waahi mutunga ratonga. Ko te mutunga, ka kite tatou i tenei pikitia kaore he kawenga:

Netramesh - otinga mata ratonga mama

Ka whakamahi matou i te HTTP/1 mo te whakawhitiwhiti korero i waenga i nga ratonga. Ko te pikinga o te wa whakautu mo Istio i te wa e mahi takawaenga ana ma te kaikawe kua eke ki te 5-10ms, he tino nui mo nga ratonga kua rite ki te whakautu i roto i te mirihakona. Ki a Netramesh kua heke tenei wa ki te 0.5-2ms.

Tauineine

Ko te iti o nga rauemi e pau ana e ia takawaenga ka taea te whakanoho ki te taha o ia ratonga. He mea hanga a Netramesh me te kore he waahanga rererangi whakahaere hei pupuri noa i ia motuka taha. I te nuinga o nga wa i roto i nga otinga ratonga mata, ka tohatohahia e te waka rererangi nga korero rapu ratonga ki ia motuka. Ka tae mai nga korero mo nga waahi me nga tautuhinga taurite. Ko enei mea katoa ka taea e koe te mahi i te maha o nga mea whai hua, engari, karekau, ka pupuhi i nga sidecars i te rahi.

Te kitenga ratonga

Netramesh - otinga mata ratonga mama

Karekau a Netramesh e taapiri etahi atu tikanga mo te rapu ratonga. Ko nga waka katoa ka tukuna ma te maramara ma te waka taha netra.

Ka tautoko a Netramesh i te kawa tono HTTP/1. Hei tautuhi, ka whakamahia he rarangi tauranga whirihora. Ko te tikanga, he maha nga tauranga o te punaha e puta ai te whakawhitiwhiti HTTP. Hei tauira, ka whakamahia e matou te 80, 8890, 8080 mo te taunekeneke i waenga i nga ratonga me nga tono o waho. NETRA_HTTP_PORTS.

Mena kei te whakamahi koe i a Kubernetes hei kaitoi me tana tikanga hinonga Ratonga mo te whakawhitiwhiti-a-roto i waenga i nga ratonga, ka noho rite tonu te tikanga. Tuatahi, ka whiwhi te microservice i tetahi wahitau IP ratonga ma te whakamahi i te kube-dns ka whakatuwhera i tetahi hononga hou ki a ia. I te tuatahi ka whakauhia tenei hononga me te netra-sidecar o te rohe, ka tae tuatahi nga paakete TCP katoa ki te netra. I muri mai, ka whakatauhia e te netra-sidecar he hononga ki te haerenga taketake. Ko te NAT i runga i te pod IP i runga i te node he rite tonu ki te kore netra.

Tohaina te whainga me te tuku horopaki

Ka whakarato a Netramesh i nga mahi e hiahiatia ana hei tuku i nga waahanga tirotiro mo nga taunekeneke HTTP. Ko te Netra-sidecar ka poroporoaki i te kawa HTTP, ka ine i nga whakaroa tono, ka tango i nga korero e tika ana mai i nga pane HTTP. I te mutunga, ka whiwhi tatou i nga tohu katoa i roto i te punaha Jaeger kotahi. Mo te whirihoranga pai, ka taea hoki e koe te whakamahi i nga taurangi taiao e whakaratohia ana e te whare pukapuka mana jaeger haere whare pukapuka.

Netramesh - otinga mata ratonga mama

Netramesh - otinga mata ratonga mama

Engari he raruraru. Kia tae ra ano nga ratonga ki te whakaputa me te tuku i tetahi pane uber motuhake, kare matou e kite i nga waahanga tirotiro hono i roto i te punaha. A koinei te mea e tika ana kia tere te kimi i te take o nga raru. Anei ano he otinga a Netramesh. Ka panuihia e te hunga takawaenga nga pane HTTP, a, ki te kore e mau te id tohu uber, hangaia tetahi. Ka penapena a Netramesh i nga korero e pa ana ki nga tono taumai me nga tono puta i roto i te waka taha ka whakataurite i a raatau ma te whakarangatira i a raatau ki nga pane tono whakaputa e tika ana. Ko nga mea katoa hei mahi i roto i nga ratonga ko te tuku i tetahi pane anake X-Request-Id, ka taea te whirihora ma te whakamahi i te taurangi taiao NETRA_HTTP_REQUEST_ID_HEADER_NAME. Hei whakahaere i te rahi o te horopaki i Netramesh, ka taea e koe te whakarite i nga taurangi taiao e whai ake nei: NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS (te wa e penapena ai te horopaki) me te NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL (te auau o te whakapai i te horopaki).

Ka taea hoki te whakakotahi i nga huarahi maha i runga i to punaha ma te tohu ki tetahi tohu huihuinga motuhake. Netra ka taea e koe te whakauru HTTP_HEADER_TAG_MAP ki te huri i nga pane HTTP ki nga tohu tohu mokowhiti. Ka tino whai hua tenei mo te whakamatautau. Whai muri i te paahitanga o te whakamatautau mahi, ka kite koe ko tehea waahanga o te punaha i pa mai i te tātari ma te kii hui e pa ana.

Te whakatau i te Puna Tono

Hei whakatau no hea te tono, ka taea e koe te whakamahi i te mahi o te taapiri aunoa i te pane me te puna. Te whakamahi i te taurangi taiao NETRA_HTTP_X_SOURCE_HEADER_NAME Ka taea e koe te tautuhi i tetahi ingoa pane ka whakauruhia aunoa. Ma te whakamahi NETRA_HTTP_X_SOURCE_VALUE ka taea e koe te whakarite i te uara ka whakatauhia te pane X-Source mo nga tono puta katoa.

Ma tenei ka taea te tohatoha o tenei pane whai hua ki te tohatoha rite puta noa i te whatunga. Na ka taea e koe te whakamahi i roto i nga ratonga ka taapiri atu ki nga raarangi me nga inenga.

Te ararere waka me nga roto o Netramesh

E rua nga waahanga matua o Netramesh. Ko te tuatahi, netra-init, ka whakatakoto i nga ture whatunga hei haukoti i nga waka. Ka whakamahia e ia iptables anga ture ki te haukoti i te katoa, i tetahi waahanga ranei o nga waka i runga i nga waka taha, koinei te waahanga matua tuarua o Netramesh. Ka taea e koe te whirihora ko nga tauranga e tika ana kia haukotia mo nga huihuinga TCP taumai me te puta: INBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS.

He mea whakamere ano te taputapu - ararere pea. Mena ka whakamahi koe i a Netramesh anake mo te kohi i nga waahi whaiwhai, katahi ka taea e koe te penapena rauemi i roto i te taiao whakangao me te whakaahei i te ararere tūponotanga ma te whakamahi taurangi. NETRA_INBOUND_PROBABILITY и NETRA_OUTBOUND_PROBABILITY (mai i te 0 ki te 1). Ko te uara taunoa he 1 (ka haukotia nga waka katoa).

Whai muri i te wawaotanga angitu, ka whakaae a netra sidecar te hononga hou me te whakamahi SO_ORIGINAL_DST kōwhiringa turanga ki te tiki i te ūnga taketake. Ka whakatuwherahia e Netra tetahi hononga hou ki te wahitau IP taketake me te whakatuu korero TCP-rua i waenga i nga roopu, whakarongo ki nga waka katoa e haere ana. Mena kua tautuhia te tauranga hei HTTP, ka ngana a Netra ki te tarai me te whai. Ki te rahua te poroporoaki HTTP, ka hoki a Netra ki TCP me te whakamaarama i nga paita.

Te hanga kauwhata whakawhirinaki

Whai muri i te whiwhi i te maha o nga korero tirotiro i Jaeger, e hiahia ana ahau ki te tiki kauwhata katoa o nga taunekeneke i roto i te punaha. Engari ki te tino utaina to punaha me te maha o nga piriona mo te tirotiro i ia ra, ehara i te mea ngawari te mahi whakahiato. He huarahi whaimana hei mahi i tenei: korakora-whakawhirinaki. Heoi, ka pau nga haora ki te hanga kauwhata katoa, ka akiaki koe ki te tango i nga huinga raraunga katoa mai i a Jaeger mo nga haora XNUMX kua hipa.

Mena kei te whakamahi koe i te Elasticsearch ki te penapena i nga waahanga tirotiro, ka taea e koe te whakamahi he taputapu Golang ngawari, ka hanga i taua kauwhata i roto i nga meneti ma te whakamahi i nga ahuatanga me nga kaha o Elasticsearch.

Netramesh - otinga mata ratonga mama

Me pehea te whakamahi Netramesh

Ka taea te taapiri a Netra ki tetahi ratonga e whakahaere ana i tetahi kaitoi. Ka kite koe i tetahi tauira konei.

I tenei wa, kaore a Netra i te kaha ki te whakauru aunoa i nga sidecars ki nga ratonga, engari he mahere mo te whakatinanatanga.

Te heke mai o Netramesh

whāinga matua Netramesh ko te whakatutuki i nga utu rauemi iti me nga mahi teitei, te whakarato i nga kaha taketake mo te mataki me te whakahaere i nga whakawhitiwhiti korero i waenga i nga ratonga.

Hei nga ra kei mua, ka tautoko a Netramesh i etahi atu kawa paparanga tono i tua atu i te HTTP. Ka watea mai te ararere L7 i nga wa e heke mai nei.

Whakamahia a Netramesh mena ka pa ki a koe etahi raru ka tuhi mai ki a maatau me nga patai me nga whakaaro.

Source: will.com

Tāpiri i te kōrero