Te Mata Ratonga: He aha nga Kaihanga Pūmanawa Me mohio mo te Hangarau Rawa

Tuhipoka. whakamaori.: Ko te mata o te ratonga he ahuatanga kaore ano kia mau te whakamaoritanga i roto i te reo Russian (neke atu i te 2 tau ki muri ka whakaarohia e matou te whiringa "mesh mo nga ratonga", a i muri tata mai ka timata etahi o nga hoa mahi ki te whakatairanga i te huinga "te tatari ratonga"). Ko te korero tonu mo tenei hangarau kua puta he ahuatanga e tino piri ana te maakete me nga waahanga hangarau. Ko tenei rauemi whakamiharo mai i tetahi o nga kaituhi o te kupu taketake e kii ana ki te whakamarama mo nga miihini me etahi atu.

Te Mata Ratonga: He aha nga Kaihanga Pūmanawa Me mohio mo te Hangarau Rawa
Komeke mai Sebastian Caceres

Whakataki

Mena he miihini rorohiko koe e mahi ana i tetahi waahi i te waahi o nga punaha o muri, kua mau tonu te kupu "mesh ratonga" ki to hinengaro i nga tau e rua kua hipa. He mihi ki tetahi mea rerekee, kei te kaha haere tenei kianga i runga i te umanga, a, ko te whakahiato me nga tuku whakatairanga e pa ana ki a ia kei te tipu haere ano he poihuka e rere ana ki raro me te kore e whakaatu i nga tohu o te puhoi haere.

I whanau mai te mata o te ratonga i roto i nga wai pouri o te puunaha rauwiringa kaiao taketake. Heoi ano, ko te tikanga ko te nuinga o nga tautohetohe e pa ana ki a ia mai i te "korero iti-calorie" ki-ki te whakamahi i te kupu hangarau-kore rawa. Engari ki te tapahia e koe nga ngangau katoa, ka kitea e koe he mahi tino pono, kua tautuhia me te nui o te mata ratonga.

I roto i tenei pou, ka ngana ahau ki te mahi i tera: whakarato i tetahi aratohu pono, hohonu, e arotahi ana ki te miihini ki te miihini ratonga. E kore ahau e whakautu noa i te patai: "He aha tena?", - engari ano hoki "He aha?"A "He aha inaianei?". Ka mutu, ka ngana ahau ki te whakaatu he aha (ki taku whakaaro) na tenei hangarau motuhake i whakaohooho te porangi, he korero whakamere ki roto ano.

Ko wai ahau?

Kia ora katoa! Ko toku ingoa Wiremu Morgan. Ko ahau tetahi o nga kaihanga Linkerd — Ko te kaupapa tuatahi o te ratonga mesh me te kaupapa e tika ana mo te ahua o te waa mata ratonga penei (sorry guys!). (Note transl.: Ma te ara, i te ata o te putanga mai o tenei wahanga, neke atu i te 2,5 tau ki muri, kua whakamaoritia e matou nga korero o mua o te kaituhi kotahi e kiia nei "He aha te mata ratonga me te aha e hiahia ana ahau [mo te tono kapua me nga ratonga miihini]?".) Ko ahau ano te upoko Kaihautu he whakaoho e hanga ana i nga mea matao ratonga matao rite Linkerd me Pupuhi.

Ka taea pea e koe te whakaaro he tino whirinaki, he tino whakaaro hoki ahau mo tenei take. Heoi, ka ngana ahau ki te pupuri i te piro ki te iti (haunga tetahi waahanga: "He aha te nui o nga korero mo te mata ratonga?", - i reira ka tohatoha tonu ahau i aku whakaaro kua puta mai). Ka whakapau kaha ahau ki te whakarite i tenei aratohu kia whai kiko. Mo nga tauira motuhake, ka tino whakawhirinaki ahau ki nga wheako a Linkerd, me te tohu i nga rereketanga (mehemea he) e mohio ana ahau mo te whakatinanatanga o etahi atu momo miihini ratonga.

Kaati, kua wa ki te haere ki nga mea pai.

He aha te mata ratonga?

Ahakoa nga mea whakahirahira katoa, he tino ngawari te hanganga o te miihini ratonga. He huinga takawaenga mokowāmahi noa tenei kei te taha "kei te taha" o nga ratonga (ka korero maatau mo te mea "a muri ake"), me te huinga o nga tikanga whakahaere. Ka karangahia nga takawaenga rererangi raraunga, ka karangahia nga tukanga whakahaere rererangi whakahaere. Ka haukotia e te rererangi raraunga nga waea i waenga i nga ratonga me te mahi "nga momo mea rereke" ki a raatau; Ko te rererangi whakahaere, na reira, ka whakarite i te whanonga o te takawaenga me te whai waahi ki a koe, i.e. kaiwhakahaere, ki te API, tuku i te whatunga ki te raweke me te ine i te katoa.

Te Mata Ratonga: He aha nga Kaihanga Pūmanawa Me mohio mo te Hangarau Rawa

He aha tenei momo takawaenga? He takawaenga TCP 7-aware tenei (arā, "whakaarohia" te paparanga 7 o te tauira OSI) rite HAProxy me NGINX. Ka taea e koe te whiriwhiri i tetahi takawaenga e pai ana koe; Ka whakamahia e Linkerd he takawaenga Rust, he ingoa noa linkerd-takawaenga. Ka whakakotahihia e maatau mo te mata ratonga. Ko etahi atu mata he pai ake ki etahi atu takawaenga (Ko te Envoy he whiriwhiri noa). Engari, ko te whiriwhiri i te takawaenga he kaupapa noa mo te whakatinanatanga.

He aha te mahi a enei tūmau takawaenga? Ko te tikanga, he waea takawaenga ki a mai i nga ratonga (me te tino korero, ka mahi ratou hei takawaenga me te takawaenga whakamuri, e whakahaere ana i nga waea taumai me nga waea puta). Na ka whakatinanahia e raatau he huinga waahanga e aro ana ki nga waea i waenganui i te ratonga. Ko tenei arotahi ki te hokohoko i waenga i nga ratonga ko te mea e wehewehe ana i te takawaenga mata o te ratonga mai i, me kii, ko nga kuaha API me nga takawaenga whakauru (ko enei e aro ana ki nga waea ka uru mai ki roto i te roopu mai i te ao o waho). (Tuhipoka. whakamaori.: Mo te whakataurite o nga kaiwhakahaere Ingress o naianei mo Kubernetes, he maha o raatau e whakamahi ana i te Envoy kua whakahuahia ake nei, tirohia. tenei tuhinga.)

Na, kua tohua e matou te paparangi raraunga. He maamaa ake te waka rererangi: he huinga o nga waahanga e whakarato ana i nga miihini katoa e hiahiatia ana e te waka rererangi raraunga ki te whakahaere i runga i te tikanga ruruku, tae atu ki te kitenga ratonga, te tuku tiwhikete TLS, te whakahiato ine, me era atu. tona whanonga; i te wa ano, ka whakaratohia e te rererangi whakahaere he API e taea ai e koe te whakarereke me te aroturuki i te whanonga o te rererangi raraunga i te katoa.

Kei raro ko te hoahoa o te rererangi whakahaere me te rererangi raraunga i Linkerd. Kei te kite koe, he maha nga waahanga rereke kei roto i te waka rererangi, tae atu ki tetahi tauira Prometheus e kohi inenga mai i nga kaitoro takawaenga, me etahi atu waahanga penei i te destination (whakakitenga ratonga), identity (mana tiwhikete, CA) me public-api (nga pito mo te paetukutuku me te CLI). Engari, ko te rererangi raraunga he hononga hono-takawaenga ngawari ki te taha o te tauira tono. He hoahoa arorau noa tenei; I roto i te whakatakotoranga o te ao, ka toru pea nga tauira o ia waahanga rererangi whakahaere me nga rau, mano ranei o nga takawaenga i roto i te rererangi raraunga.

(Ko nga tapawhā puru o tenei hoahoa he tohu mo nga rohenga o nga pene Kubernetes. Ka kite koe ko nga ipu whai hononga-kaiwaenga kei roto i te putea kotahi me nga ipu tono. E mohiotia ana tenei kaupapa ko te ipu tahataha.)

Te Mata Ratonga: He aha nga Kaihanga Pūmanawa Me mohio mo te Hangarau Rawa

He maha nga paanga nui o te hoahoanga mata ratonga. Tuatahi, i te mea ko te mahi a te takawaenga ko te haukoti i nga waea i waenga i nga ratonga, ka whai tikanga noa te kupenga ratonga mena i hangaia to tono mo etahi momo ratonga. Matau taea whakamahia me nga monoliths, engari he maamaa tenei mo te whakaaro o te takawaenga kotahi, a, kaore pea e hiahiatia ana te mahi.

Ko tetahi atu hua nui ko te hiahia o te miihini ratonga nui maha o nga takawaenga. Inaa, ka hono a Linkerd i tetahi hononga-kaiwaenga ki nga tauira katoa o ia ratonga (ko etahi atu whakatinanatanga ka taapiri he takawaenga ki ia node/host/miihini mariko. He nui tera). Ko te whakamahinga kaha o nga takawaenga i a ia ano he maha atu nga raru:

  1. Me noho nga takawaenga i roto i te rererangi raraunga tere, i te mea mo ia waea he rua nga waea ki te takawaenga: kotahi ki te taha o te kiritaki, kotahi ki te taha tūmau.
  2. Me waiho ano nga takawaenga iti и ngawari. Ka pau i ia tangata te mahara me nga rauemi CPU, a ka tipu haere tenei kohi me te tono.
  3. Ka hiahia koe ki tetahi tikanga ki te tuku me te whakahou i te maha o nga takawaenga. Ko te mahi a-ringa ehara i te mea he whiringa.

I te nuinga o te waa, he penei te ahua o te mata o te ratonga (i te iti rawa mai i te tirohanga a te manu): ka horahia e koe he paihere mokowāwhakamahi takawaenga e "mahi ai" me te waka o roto, i waenga-ratonga, me te whakamahi i te waka rererangi ki te aro turuki me te whakahaere.

Inaianei kua tae ki te wa ki te patai i te patai "He aha?"

He aha te mea he mata ratonga?

Ko te hunga i tupono tuatahi ki te whakaaro mo te maaka ratonga ka taea te murua mo te ahua mataku. Ko te hoahoa mesh ratonga ko te tikanga ehara i te mea ka whakapiki ake i te waatea i roto i te tono, engari ano hoki pau rauemi me ka taapiri he paihere o nga tikanga hou i roto i te hanganga. I te tuatahi ka whakarite koe i tetahi mata ratonga, katahi ka kitea e koe te hiahia ki te mahi i nga rau (mehemea ehara i te mano) o nga kaiwawao. Ko te patai, ma wai e mahi i tenei mahi?

E rua nga wahanga o te whakautu ki tenei patai. Tuatahi, ko nga utu tauwhitinga e pa ana ki te tuku i enei takawaenga ka taea te tino whakaheke na runga i etahi huringa ka puta ki te puunaha rauwiringa kaiao (nui atu mo tenei i muri mai).

Tuarua, ko te taputapu penei he tino huarahi pai ki te whakauru i etahi atu arorau ki roto i te punaha. Ehara i te mea ka taea e te maa ratonga te taapiri i nga mahi hou, engari na te mea ka taea te mahi me te kore e pokanoa ki te puunaha rauwiringa kaiao. Ko te mea pono, ko te tauira katoa o te ratonga mata i runga i tenei kaupapa: i roto i te punaha ratonga maha, ahakoa he aha hanga ratonga takitahi, waka i waenganui i a ratou Ko te waahi pai ki te taapiri i nga mahi.

Hei tauira, i Linkerd (penei i te nuinga o nga mata) ka aro nui te mahi ki nga waea HTTP, tae atu ki te HTTP/2 me te gRPC*. He tino taonga te mahi - ka taea te wehewehe ki nga akomanga e toru:

  1. Nga ahuatanga e pa ana ki pono. Ko nga tono tukurua, nga waahi, te huarahi canary (wehenga waka/whakaaroaro), aha atu.
  2. Nga ahuatanga e pa ana ki te aroturuki. Te whakahiatotanga o nga reiti angitu, whakaroa me nga pukapuka tono mo ia ratonga, mo ia tohutohu takitahi ranei; hanga mahere topological o nga ratonga, etc.
  3. Nga ahuatanga e pa ana ki ahuru. TLS Mutual, mana uru, etc.

* Mai i te tirohanga a Linkerd, karekau he rerekee te gRPC mai i te HTTP/2: ka whakamahi noa i te protobuf i roto i te utu. Mai i te tirohanga a te kaiwhakawhanake, he rereke nga mea e rua.

Ko te nuinga o enei tikanga e mahi ana i te taumata tono (no reira ko te "L7 takawaenga"). Hei tauira, ki te waea HTTP te ratonga Foo ki te ratonga Pae, ka taea e te hono-kaiwaenga i te taha Foo te mahi i te whakataurite kawenga mohio me nga waea ara mai i te Foo ki te Pae i runga i te roanga kua kitea; ka taea e ia te whakahoki ano i te tono mena e tika ana (mehemea he ngoikoretanga); ka taea e ia te tuhi i te waehere whakautu me te waahi, me etahi atu. Waihoki, ka taea e te linkerd-proxy i te taha Pae te whakakore i te tono ki te kore e whakaaetia, ka hipa ake ranei te rohe tono; ka taea te tuhi i te roa o tana waahanga, aha atu.

Ka taea e nga takawaenga te "mahi i tetahi mea" i te taumata hononga ano hoki. Hei tauira, ka taea e te linkerd-proxy i te taha Foo te timata i te hononga TLS, ka taea e te linkerd-proxy i te taha Pae te whakamutu, ka taea e nga taha e rua te manatoko i nga tiwhikete TLS o tetahi ki tetahi*. Ehara i te mea ko te whakamunatanga anake i waenga i nga ratonga, engari he huarahi haumaru hoki hei tautuhi i nga ratonga: Ka taea e Foo me Bar te "whakamatautau" ko wai ratau e kii ana.

* Ko te tikanga "Tetahi o te hoa" ka whakamanahia ano te tiwhikete a te kiritaki (mutua TLS). I roto i te "matarohia" TLS, hei tauira i waenganui i te kaitirotiro me te tūmau, ko te tiwhikete o tetahi taha anake (te tūmau) ka whakamanahia.

Ahakoa te mahi i runga i te tono, i te taumata hononga ranei, he mea nui ki te whakanui i nga mahi katoa o te mata ratonga. whakahaere huru. Kaore e taea e Linkerd te huri i nga tohu o te utu utu - hei tauira, te taapiri mara ki te kongakonga JSON, ki te whakarereke ranei ki te protobuf. Ka korero tatou mo tenei waahanga nui i muri mai ka korero tatou mo te ESB me te middleware.

Koinei te huinga o nga ahuatanga e tukuna ana e te mata ratonga. Ka puta ake te patai: he aha e kore ai e whakatinana tika i roto i te tono? A he aha te raruraru me te takawaenga?

He aha he whakaaro pai te mata ratonga

Ahakoa he mea whakahihiri nga kaha o te kupenga ratonga, kare te uara matua e takoto i roto i ona ahuatanga. I te mutunga ko tatou Ka taea whakatinana tika i roto i te tono (ka kite tatou i muri mai koinei te takenga mai o te mata ratonga). Hei ngana me te whakarāpopoto i roto i te rerenga kotahi, ko te uara o te mata ratonga ko: e whakarato ana i nga ahuatanga tino nui ki te whakahaere i nga raupaparorohiko tūmau hou i runga i te riterite puta noa i te puranga katoa me te motuhake o te waehere tono.

Kia wetewetehia tenei tono.

«Ko nga ahuatanga tino nui ki te whakahaere i nga punaha tūmau hou" Mena kei te hanga koe i tetahi tono tūmau tauwhitinga e hono ana ki te Ipurangi tūmatanui, te whakaae ki nga tono mai i te ao o waho me te whakautu ki a raatau i roto i te wa poto - hei tauira, he tono tukutuku, he tūmau API, me te nuinga o etahi atu tono hou. - a ki te whakatinanahia e koe hei huinga o nga ratonga e mahi tahi ana ki a raua ano, a mena kei te whakapai tonu koe i tenei punaha, me te taapiri i nga ahuatanga hou, a mena ka pehia koe ki te pupuri i tenei punaha i roto i te raupapa mahi i te wa o te whakarereketanga - i tenei te take, tena koe, kei te hanga koe i nga raupaparorohiko tūmau hou. A ko enei ahuatanga pai katoa kua whakarārangihia i runga ake nei ka puta he mea tino nui mo koe. Ko te tono kia pono, kia mau, me kaha koe ki te mataki i tana mahi. Koia tonu nga patai ka awhinahia e te mata ratonga ki te whakaoti.

(Ae, kei roto tonu i te whiti o mua taku whakapono ko tenei huarahi te huarahi hou ki te hanga i te rorohiko tūmau. Ko etahi e pai ana ki te hanga monoliths, "reactive microservices" me etahi atu mea kaore e taka ki raro i te whakamaramatanga kua homai i runga ake nei. Ko enei tangata pea kei a raatau He rereke te whakaaro mai i taku, ki taku whakaaro he "he" ratou - ahakoa he aha te ahua o te kupenga ratonga kaore e tino whai hua mo ratou).

«He kakahu mo te puranga katoa" Ko nga mahi e whakaratohia ana e te mahanga ratonga ehara i te mea he miihana noa. Ka pa ana ki nga ratonga katoa i roto i te tono, ahakoa he aha te reo i tuhia ai, he aha te anga e whakamahia ana e ratou, na wai i tuhi, pehea i horahia ai, me etahi atu hianga o te whanaketanga me te whakamahinga.

«Motuhake o te waehere tono" Ka mutu, ehara i te mea ka whakarato noa te mata ratonga i nga taumahinga riterite puta noa i te puranga katoa, ka mahia ma te kore e hiahia kia whakatikahia te tono. Ko te kaupapa matua o te mahinga mesh ratonga, tae atu ki nga mahi mo te whirihoranga, te whakahou, te mahi, te tiaki, me era atu, kei te noho katoa ki te taumata o te papaarangi me te motuhake o te tono. Ka taea e te tono te huri me te kore e pa ki te mata ratonga. Ka huri, ka taea te huri i te mata o te ratonga me te kore e whai waahi mai i te tono.

I roto i te poto, ehara i te mea e whakarato ana te mata ratonga i nga mahi tino nui, engari ano hoki i roto i te ao, te kakahu, me te tono-motuhake. Na, ahakoa ka taea te whakatinana i nga mahi mata mahi i roto i te waehere ratonga (hei tauira, he whare pukapuka kei roto i ia ratonga), kaore tenei huarahi e whakarato i te riterite me te mana motuhake e tino whai hua ana i roto i te keehi o te miihini ratonga.

Ko nga mea katoa e hiahia ana koe ki te mahi he taapiri i te roopu takawaenga! Ka oati ahau ka titiro tatou ki nga utu whakahaere e pa ana ki te taapiri i enei takawaenga ina tata nei. Engari ko te tuatahi ka mutu ka titiro ki tenei whakaaro mo te motuhake mai i nga tirohanga rereke. iwi.

Ko wai ka awhina i te mata ratonga?

Ahakoa he mea whakararu, kia noho te hangarau hei waahanga nui o te rauwiringa kaiao, me whakaae e te tangata. Na ko wai e aro ana ki te mata ratonga? Ko wai ka whai hua mai i tana whakamahinga?

Mena kei te whakawhanake koe i nga rorohiko tūmau hou, ka taea e koe te whakaaro mo to roopu hei roopu rangatira ratongako wai e whakawhanake tahi me te whakatinana i te arorau pakihi, a rangatira papa, te whakawhanake i te papa o roto e whakahaere ana enei ratonga. I roto i nga whakahaere iti, he tangata ano enei, engari i te tipu haere o te kamupene, ka kaha ake te ahua o enei mahi, ka wehewehea ano ki nga wahanga iti... te awenga whakahaere o nga ratonga moroiti, me etahi atu) n. Engari i tenei wa me tango enei whakaahuatanga kua hoatu).

Mai i tenei tirohanga, ko nga tangata whai hua o te mata ratonga ko nga rangatira o te papa. I muri i nga mea katoa, ko te whainga o te roopu papaaho ko te hanga i tetahi papaa-roto e taea ai e nga rangatira o nga ratonga te whakatinana i nga whakaaro pakihi me te mahi i runga i te huarahi e whakarite kia noho motuhake ratou mai i nga korero pouri o ana mahi. Ehara i te mea ka tukuna e te mata ratonga nga kaha tino nui ki te whakatutuki i tenei whainga, ka mahia e ia kia kore ai e whakatau i te whakawhirinaki ki nga kaipupuri ratonga.

Ka whai hua ano nga rangatira o nga ratonga, ahakoa i roto i te ara autaki. Ko te whainga o te rangatira o te ratonga kia whai hua ki te whakatinana i te arorau o te mahi pakihi, me te iti ake o tana awangawanga mo nga take whakahaere, ka pai ake. Engari ki te mahi ki te whakatinana, me kii, ngana ano i nga kaupapa here, i te TLS ranei, ka taea e ratou te aro noa ki nga whaainga pakihi me te tumanako ka maataki e te turanga te toenga. He painga nui tenei mo ratou.

Ko te uara whakahaere o taua wehewehenga i waenga i nga rangatira o nga papaahi me nga ratonga kaore e taea te whakaaro nui. Ki taku whakaaro ka whai koha ia nga matua takoha ki te uara o te mata ratonga.

I akohia e matou tenei akoranga i te wa i korero mai tetahi kaiwhaiwhai Linkerd ki a matou he aha ta ratou i whiriwhiri ai i te miihini ratonga: na te mea ka taea e ratou te "whakaiti i te toa korero." Anei etahi korero: ko nga taangata mai i tetahi kamupene nui i heke to raatau papaahi ki Kubernetes. I te mea i whakahaerehia e te tono nga korero tairongo, i hiahia ratou ki te whakamuna i nga korero katoa puta noa i nga tautau. Heoi, i uaua te ahuatanga na te noho mai o nga rau o nga ratonga me nga rau o nga roopu whanaketanga. Ko te tumanako ki te whakapā atu ki nga tangata katoa me te whakatenatena kia whakaurua te tautoko TLS ki o raatau mahere kaore i tino koa. I muri i te whakauru i a Linkerd, ka whakawhiti ratou nama mai i nga kaiwhakawhanake (mai i te tirohanga he raru koretake tenei) ki nga kaitirotiro papaarangi, he mea tino nui tenei. I etahi atu kupu, i whakatauhia e Linkerd mo ratou ehara i te mea he raruraru hangarau engari he whakahaere.

I roto i te poto, ko te mata ratonga he nui ake te otinga, ehara i te mea hangarau, engari pāpori-hangarau Nga raruraru. (Mauruuru Cindy Sridharan mo te whakauru i tenei kupu.)

Ka whakaotihia e te mata ratonga oku raru katoa?

Ae. Ko taku tikanga, kaore!

Mena ka titiro koe ki nga waahanga e toru o nga ahuatanga kua whakahuahia i runga ake nei—te pono, te haumarutanga, me te maataki—ka marama ko te mahanga ratonga ehara i te otinga katoa mo enei raru. Ahakoa ka taea e Linkerd te tuku ano i nga tono (mehemea ka mohio ia he tino kaha), kaore e taea e ia te whakatau he aha te whakahoki ki te kaiwhakamahi mena kua rahua tonu te ratonga—me whakatau e te tono enei whakatau. Ka taea e Linkerd te pupuri i nga tatauranga o nga tono angitu, engari kaore e taea e ia te titiro ki te ratonga me te whakarato i ana inenga o roto - me whai taputapu pera te tono. A ahakoa kei te kaha a Linkerd ki te whakarite mTLS, he nui ake te hiahia o nga otinga haumarutanga.

Ko tetahi waahanga o nga ahuatanga o enei waahanga e tukuna ana e te mata ratonga e pa ana ki āhuatanga tūāpapa. Ko taku tikanga he mahi e:

  1. Motuhake o te arorau pakihi. Ko te huarahi e hangaia ai nga tohu tohu tohu waea i waenga i te Foo me te Pae he mea motuhake he aha Ka karanga a Foo ki a Bar.
  2. He uaua ki te whakatinana tika. I Linkerd, ka whakatairitehia nga ngana ano me nga momo mea papai katoa penei i nga tahua moni (ngana ano nga tahua), i te mea ko te huarahi tino kore, he tino aro ki te whakatinana i aua mea ka tino puta mai he "tohe tono" (whakamatau ano te tupuhi) me etahi atu raruraru o nga punaha toha.
  3. He tino whai hua ina tono rite. Ko te tikanga TLS anake ka whai tikanga mena ka whakamahia ki nga waahi katoa.

I te mea ka whakatinanahia enei mahi ki te taumata takawaenga (kaore i te taumata tono), ka tukuna e te mata ratonga ki a raatau i te платформы, ehara i nga tono. No reira, ahakoa he aha te reo i tuhia ai nga ratonga, he aha te anga e whakamahia ana, na wai i tuhi me te aha. Ka mahi nga kaiwawao i waho o enei korero katoa, a ko te kaupapa matua o tenei mahi, tae atu ki nga mahi mo te whirihoranga, te whakahou, te mahi, te tiaki, me era atu, kei te taumata o te turanga anake.

Ko nga tauira o nga kaha o te ratonga mata

Te Mata Ratonga: He aha nga Kaihanga Pūmanawa Me mohio mo te Hangarau Rawa

Hei whakarāpopototanga, ehara i te mea he otinga tino tika te mata o te ratonga mo te pono, te maataki, te haumaru ranei. Ko te whanuitanga o enei waahi me whai waahi nga rangatira o nga ratonga, nga roopu Ops/SRE me etahi atu hinonga kamupene. Ko te mata ratonga anake e whakarato ana i te "poro" taumata-tupapa mo ia waahanga.

He aha te take i rongonui ai te mata ratonga inaianei?

I tenei wa kei te miharo pea koe: pai, mena he pai rawa te mata o te ratonga, he aha tatou i kore ai i timata ki te tuku miriona takawaenga i roto i te puranga tekau tau ki muri?

He whakautu ngawari ki tenei patai: kotahi tekau tau ki muri ka hangaia e te katoa nga monoliths, a kaore he tangata e hiahia ana ki te miihini ratonga. He pono tenei, engari ki taku whakaaro ka ngaro tenei whakautu. Ahakoa tekau tau ki muri, ko te kaupapa o te microservices hei huarahi pai ki te hanga i nga punaha nui-nui i korero whanuitia me te tono ki nga kamupene penei i a Twitter, Facebook, Google me Netflix. Ko te tirohanga whanui—i nga wahanga o te umanga i uru atu ahau—ko nga microservices te "ara tika" ki te hanga i nga punaha nui, ahakoa he uaua.

Ae ra, ahakoa tekau tau ki muri he kamupene e whakahaere ana i nga ratonga moroiti, kaore ratou i piri i nga takawaenga ki nga waahi katoa ka taea e ratou te hanga i tetahi miihini ratonga. Heoi, ki te ata titiro koe, he rite ano ta ratou mahi: he maha o enei kamupene e hiahia ana kia whakamahia he whare pukapuka o roto motuhake mo te whakawhitiwhiti korero whatunga (i etahi wa ka kiia he whare pukapuka kiritaki matotoru, whare pukapuka kiritaki momona).

Na Netflix a Hysterix, na Google a Stubby, na Twitter te whare pukapuka Finagle. Ko te Finagle, hei tauira, he whakahau mo ia ratonga hou i runga i Twitter. I whakahaerea e ia te taha o te kiritaki me te taha tūmau o nga hononga, ka whakaaetia mo nga tono tukurua, te tautoko i te ararere tono, te whakataurite kawenga me te ine. I whakaratohia he paparanga rite tonu o te pono me te maataki puta noa i te puranga Twitter katoa, ahakoa he aha te mahi a te ratonga. Ae ra, i mahi noa mo nga reo JVM a i ahu mai i runga i te tauira papatono me whakamahi mo te tono katoa. Heoi, he rite tonu tana mahi ki tera o te mata ratonga. (Ae, ko te putanga tuatahi o Linkerd he mea takai noa a Finagle ki te puka takawaenga.)

No reira, tekau tau ki muri ehara i te microservices anake, engari ano hoki nga whare pukapuka proto-service-mesh motuhake i whakatau i nga raru e whakatauhia ana e te mata ratonga i enei ra. Heoi, karekau ano te kupenga ratonga i tera wa. Me kotahi ano te neke i mua i tana putanga mai.

Na kei konei te whakautu hohonu, huna i roto i tetahi atu huringa kua puta i roto i nga tau 10 kua hipa: kua tino heke te utu mo te tuku ratonga miihini. Ko nga kamupene kua whakahuahia i runga ake nei i whakamahi i nga ratonga moroiti kotahi tekau tau ki muri—Twitter, Netflix, Facebook, Google—he kamupene nui te rahi me te nui o nga rawa. Ehara i te mea ko te hiahia anake, engari ko te kaha ki te hanga, ki te toha, ki te whakahaere i nga tono a-rorohiko nui. He mea whakamiharo te kaha me te whakapau kaha a nga miihini Twitter ki te neke mai i te monolithic ki te huarahi microservices. (Ki te tika, ko te meka i angitu.) Ko enei momo mahi hangahanga kaore e taea e nga kamupene iti.

Tere tonu ki tenei wa. He tiimata i tenei ra ko te tauwehenga o nga microservices ki nga kaiwhakawhanake ko te 5:1 (ara 10:1), me te aha atu, ka tutuki pai ratou! Mena ka taea e te whakaoho 5-tangata te ngawari ki te whakahaere i nga ratonga miihini 50, na tetahi mea kua tino heke te utu mo to raatau whakatinanatanga.

Te Mata Ratonga: He aha nga Kaihanga Pūmanawa Me mohio mo te Hangarau Rawa
1500 microservices i Monzo; ia raina he ture whatunga kua whakaritea e taea ai te hokohoko

Ko te whakahekenga nui o te utu mo te whakahaere microservices ko te hua o te tukanga kotahi: te piki haere o te rongonui o nga ipu и nga kaiwhakatangi puoro. Koinei tonu te whakautu hohonu ki te patai he aha te mea i puta mai ai te mata o te ratonga. Na taua hangarau ano i tino ataahua nga mata ratonga me nga ratonga miihini: Kubernetes me Docker.

He aha? Kaati, ka whakatauhia e Docker tetahi raru nui - ko te raru kapi. Ma te whakakao i tetahi tono me ona (kore-whatunga) nga herenga wa whakahaere ki roto i tetahi ipu, ka huri a Docker i te tono ki tetahi waahanga whakawhiti ka taea te manaaki me te whakahaere ki hea. I te wa ano, ka tino ngawari te mahi reo maha Tāpae: Na te mea he waeine ngota te ipu, mo te horahanga me nga kaupapa whakahaere, ahakoa he aha kei roto, ahakoa he tono JVM, Node, Haere, Python, Ruby ranei. Ka whakarewa noa koe, ka mutu.

Ka kawea e Kubernetes nga mea katoa ki te taumata e whai ake nei. Inaianei he maha nga "mea hei whakahaere" me te maha o nga miihini hei whakahaere i a raatau, he hiahia mo tetahi taputapu e taea ai te hono tetahi ki tetahi. I roto i te tikanga whanui, ka hoatu e koe ki a Kubernetes te maha o nga ipu me te maha o nga miihini, a ka mapi ki a raatau ano (ae, he mahi hihiri me te huri haere tonu: ka huri nga ipu hou ki te punaha, ka tiimata ka mutu nga miihini. , me etahi atu. Heoi, ka whakaarohia e Kubernetes enei mea katoa ).

Kia whirihorahia a Kubernetes, he iti ke te utu o te wa ki te tuku me te whakahaere i tetahi ratonga mai i te utu mo te tuku me te whakahaere i nga ratonga tekau (he pono, he rite tonu mo nga ratonga 100). Taapirihia ki roto i enei ipu hei taputapu whakangao e akiaki ana i te whakatinanatanga reo maha, a he maha nga tono hou kei a koe i te ahua o nga microservices kua tuhia ki roto i nga reo rereke - he rite tonu te ahua o te taiao e tino pai ana mo te miihini ratonga.

Na, ka tae mai ki te whakautu mo te patai he aha i rongonui ai te whakaaro mo te mata ratonga inaianei: ko te whakakotahitanga e whakaratohia ana e Kubernetes mo nga ratonga e pa ana ki nga wero whakahaere e pa ana ki te miihini ratonga. Ka kohia e koe nga takawaenga ki roto i nga ipu, hoatu ki a Kubernetes te mahi ki te piri ki nga waahi katoa ka taea, ka voila! Ko te mutunga mai, ka whiwhi koe i te mata ratonga, ko nga miihini katoa o tana tukunga kei te whakahaerehia e Kubernetes. (I te iti rawa mai i te tirohanga a te manu. Ae ra, he maha nga ahuatanga o tenei mahi.)

Hei whakarāpopototanga: ko te take i rongonui ai nga mahanga ratonga inaianei, kaore i te tekau tau ki muri, ko Kubernetes me Docker ehara i te mea kua tino piki ake. hiahia i roto, kua whakangwarihia te whakatinanatanga o nga tono hei huinga moroiti reo maha, engari kua tino heke iho utu mo tana mahi, te whakarato tikanga mo te tuku me te tautoko i nga waka takawaenga tahataha.

He aha te nui o nga korero mo te mata ratonga?

Ko te ārai: I tenei wahanga ka whakamahia e au nga momo whakapae, whakapae, tito me nga korero o roto.

Rapua he "matau ratonga" ka kite koe i te tini o nga ihirangi iti-calorie hangarua, nga kaupapa tipua, me te kaleidoscope o te whakakorikori e tika ana mo te ruuma paoro. Ko nga hangarau hou hou e mahi ana i tenei, engari i roto i te keehi o te miihini ratonga ka tino kaha te raru. He aha?

Ana, ko tetahi wahi o te he naku. Kua whakapau kaha ahau ki te whakatairanga i a Linkerd me te ratonga katoo i nga wa katoa ka taea e au ma te maha o nga panui rangitaki me nga tuhinga penei. Engari ehara ahau i te tino kaha. Hei whakautu i tenei patai, me korero iti mo te ahuatanga katoa. A kaore e taea te korero mo te kore e whakahua i tetahi kaupapa: Istio he mata ratonga puna tuwhera i whakawhanakehia tahi e Google, IBM me Lyft.

(He tino rereke nga mahi a nga kamupene e toru: Ko te ahua o te whakauru a Lyft ko te ingoa anake; ko ratou nga kaituhi o Envoy, engari kaore e whakamahi ana, e whai waahi ana ranei ki te whakawhanaketanga o Istio. Kei te whai waahi a IBM me te whakamahi i te whanaketanga o Istio. Kei te kaha a Google ki te mahi a Istio. whanaketanga , engari kaore e tino whakamahia e au ki taku korero.)

Ko te kaupapa Istio he mea rongonui mo nga mea e rua. Tuatahi, he nui te mahi hokohoko a Google, ina koa, kei te whakatairanga. Ki taku whakaaro ko te nuinga o nga tangata e mohio ana ki te ariā mesh ratonga i tenei ra i ako tuatahi ma Istio. Ko te mea tuarua ko te kino o te whiwhi a Istio. I roto i tenei take, he tino paanga ahau, engari e ngana ana ki te noho i runga i te whainga ka taea, kaore e taea e au te awhina Mark tino kino waiaro, ehara i te mea motuhake (ahakoa ehara i te mea ahurei: systemd ka puta ki te hinengaro, whakataurite i mahia kua toutou...) mo te kaupapa Open Source.

(I roto i te mahi, ko te ahua he raruraru a Istio ehara i te mea uaua me te UX, engari me nga mahi. Hei tauira, i te wa Whakatauranga hononga honoI roto i te rangahau a te hunga tuatoru, i kitea e nga kairangahau nga ahuatanga i 100 nga wa teitei ake o te hiku o Istio i a Linkerd, tae atu ki nga ahuatanga matekai rawa i noho pai ai a Linkerd i te wa i mutu te mahi a Istio.)

Ma te whakarere i aku whakaaro mo te take i tupu ai tenei, e whakapono ana ahau ko te tino harikoa i te taha o te mata o te ratonga na te whakaurunga a Google. Ara, he huinga o nga mea e toru e whai ake nei:

  1. Ko te whakatairanga a Google mo Istio;
  2. he ahua whakahē, he whakaaro arohaehae ki te kaupapa;
  3. ko te pikinga o te meteoric tata nei i te rongonui o Kubernetes, he hou tonu nga maharatanga.

Ka hono tahi enei mea ki te hanga i tetahi taiao rorirori, hāora-kore e ngoikore ai te kaha ki te whakatau tika, a ko te momo tipua anake e toe ana. tulip mania.

Mai i te tirohanga a Linkerd, koinei...ko taku korero he manaakitanga whakauru. Ko taku tikanga, he rawe te kuhu atu o te mata ratonga ki te auraki i runga i te huarahi kaore i tae mai i te tau 2016 i te timatanga o Linkerd, a he tino uaua ki te whai whakaaro nga tangata ki te kaupapa. Inaianei kaore he raru penei! Engari ko te korero kino ko te ahua o te whenua o nga ratonga karekau e tino rangirua ana i tenei ra, kare e taea te mohio ko wai nga kaupapa kei roto i te waahanga mesh ratonga (kia mohio ko wai te mea e pai ana mo tetahi keehi whakamahi). He tino kaikorero tenei mo nga tangata katoa (a tera ano etahi keehi ka pai ake a Istio, tetahi atu kaupapa ranei i a Linkerd, na te mea kaore ano te mutunga i te otinga mo te ao).

I te taha o Linkerd, ko ta matou rautaki ko te kore e aro ki te ngangau, te aro tonu ki te whakaoti rapanga o te hapori, me te tatari kia mate te panui. I te mutunga iho, ka memeha haere te hianga ka taea e tatou te mahi marie.

I tenei wa, me manawanui tatou katoa.

Ka whai hua te mata o te ratonga ki ahau, he miihini rorohiko ngawari?

Ma te patai e whai ake nei ka awhina koe ki te whakautu i tenei patai:

Kei te whai waahi noa koe ki te whakatinana i te arorau pakihi? I tenei keehi, kaore e whai hua te mata o te ratonga ki a koe. Ko te tikanga, kei te pirangi koe ki a koe, engari ko te mea pai kia kaua e pa atu te mata o te ratonga ki tetahi mea i to taiao. Me mahi tonu ki nga mea e utua ana koe.

Kei te tautoko koe i te turanga i tetahi kamupene e whakamahi ana i a Kubernetes? Ae, i roto i tenei keehi ka hiahia koe ki te mata ratonga (mehemea, ko te tikanga, kei te whakamahi koe i nga K8s ki te whakahaere i te monolith, i te tukatuka puranga ranei - engari ka hiahia ahau ki te patai he aha koe e hiahia ai ki te K8s). Ka mutu pea koe ki te maha o nga ratonga miihini i tuhia e nga tangata rereke. Ka pahekoheko raua ki a raua ano, ka herea ki roto i nga herenga o te wa whakahaere, a me rapu koe i tetahi huarahi hei whakatutuki i enei mea katoa. Ma te whakamahi i nga Kubernetes ka taea e koe te whiriwhiri i tetahi mata ratonga "mo koe." Hei mahi i tenei, kia mohio koe ki o raatau kaha me o raatau ahuatanga me te whakautu i te patai mehemea he pai tetahi o nga kaupapa e waatea ana mo koe (Ka tūtohu ahau kia timata to rangahau me Linkerd).

He kamupene turanga koe i tetahi kamupene KORE e whakamahi i nga Kubernetes engari e whakamahi ana i nga ratonga miihini? I roto i tenei take, ka whai hua te mata o te ratonga ki a koe, engari ko tana whakamahinga ka kore noa iho. Ko te akoranga ka taea e koe peehia mahi mahi ma te whakanoho i te roopu takawaenga, engari ko te painga nui o Kubernetes ko te tauira tukunga: ma te pupuri a-ringa i enei takawaenga ka nui ake te wa, te whakapau kaha me te whakapaunga.

Ko koe te kawenga mo te turanga i roto i tetahi kamupene e mahi ana me nga monoliths? I tenei keehi, kare pea koe e hiahia ki te mata ratonga. Mena kei te mahi koe me nga monoliths (he kohinga mokowhiti ranei) he pai te tautuhi me te onge te whakarereke i nga tauira taunekeneke, katahi ka iti noa te utu o te mata ratonga ki a koe. Na ka taea e koe te wareware noa me te tumanako ka ngaro ano he moemoea kino ...

mutunga

Akene, kaore ano kia kiia ko te miihini "te hangarau tino rongonui o te ao" - na Bitcoin, AI ranei tenei honore. Ko ia pea kei roto i te rima o runga. Engari ki te tapahia e koe nga papa o te haruru, ka marama kei te kawe mai te mata o te ratonga i nga tino painga ki te hunga e hanga tono ana ki runga Kubernetes.

Kei te pirangi au kia whakamatau koe i a Linkerd - te whakauru ki runga i te kahui Kubernetes (me Minikube ranei ki runga pona) e 60 hēkona te roa, a ka kite koe i taku e korero nei.

FAQ

— Mena ka warewarehia e ahau te mata o te ratonga, ka ngaro?
— Me whakama ahau ki a koe: kei a matou te mata o te ratonga mo te wa roa.

- Engari KAORE ahau e pirangi ki te whakamahi i te mata ratonga!
- Ae, kaore e tika! Me panui noa taku patai i runga ake nei kia mohio ai koe me mohio koe ki ona kaupapa.

— Ehara i te mea pai tenei ESB/waenganui tawhito me te ranu hou?
- Ko te mata o te ratonga e pa ana ki te arorau whakahaere, ehara i te mea korero. Koinei te tino raru pahi ratonga umanga (KO B). Ko te pupuri i tenei wehenga ka awhina i te mata o te ratonga ki te karo i taua mate.

— He aha te rerekee o te mata ratonga mai i nga kuaha API?
— He miriona nga tuhinga mo tenei kaupapa. Google noa.

— He mata ratonga te karere?
- Kao, ehara te Envoy i te mahanga ratonga, he tūmau takawaenga. Ka taea te whakamahi ki te whakarite i tetahi mata ratonga (me te maha atu - he takawaenga kaupapa whanui). Engari i roto i a ia ake ehara i te maatanga ratonga.

— Whatunga Ratonga Mesh he mata ratonga?
- Kao. Ahakoa te ingoa, ehara tenei i te mahanga ratonga (me pehea koe e pai ai ki nga tohu hokohoko?).

— Ka awhina tetahi mata ratonga ki taku punaha tukutahi-a-tuira korero?
- Kao, karekau koe e awhina i te mata ratonga.

— Ko tehea mata ratonga me whakamahi e au?
- Linkerd, kaore he roro.

- He kino te tuhinga! / Tena koa te kaituhi!
— Tena koa tohaina te hono ki o hoa katoa kia kite ai ratou!

Nga Mihi

I whakaaro pea koe mai i te taitara, i whakaaweahia tenei tuhinga e te tuhinga whakahirahira a Jay Kreps "Ko te Rangitaki: Me mohio nga miihini rorohiko katoa mo te tangohanga whakakotahitanga o nga raraunga tuuturu" I tutaki ahau ki a Jay i te tekau tau ki muri i taku uiui ki a ia i runga i te Linked In, a kua noho ia hei whakahihiri ki ahau mai ano.

Ahakoa e pai ana ahau ki te kii i ahau he "kaiwhakawhanake Linkerd", ko te mea pono ko ahau ake te kaitiaki o te konae README.md i runga i tetahi kaupapa. Kei te mahia a Linkerd i tenei ra tino, tino, tino много tangata, a ka kore tenei kaupapa e puta me te kore e uru mai tetahi hapori whakamiharo o nga kaikoha me nga kaiwhakamahi.

Ka mutu, he mihi nui ki te kaihanga o Linkerd, Oliver Gould (primus inter pares), ko wai, me ahau i nga tau maha kua pahure ake nei, i ruku haere ki roto i enei ngangau katoa me te mata mahi.

PS mai i te kaiwhakamaori

Pānuihia hoki i runga i ta maatau blog:

Source: will.com