Ndege ya data ya ma mesh motsutsana ndi ndege yowongolera

Pa Habr! Ndikupereka kwa inu kumasulira kwa nkhaniyi "Service mesh data plane vs control ndege" wolemba Matt Klein.

Ndege ya data ya ma mesh motsutsana ndi ndege yowongolera

Panthawiyi, "ndinafuna ndikumasulira" kufotokozera kwa zigawo zonse za mauna a utumiki, ndege ya data ndi ndege yolamulira. Kufotokozera uku kumawoneka kwa ine komveka komanso kosangalatsa, ndipo chofunikira kwambiri ndikumvetsetsa "Kodi ndikofunikira konse?"

Pamene lingaliro la "Service mesh" lakhala likudziwika kwambiri pazaka ziwiri zapitazi (Nkhani yoyambirira October 10, 2017) ndipo chiwerengero cha omwe atenga nawo mbali mu danga chikuwonjezeka, ndawona kuwonjezeka kwakukulu kwa chisokonezo pakati pa anthu onse. gulu laukadaulo la momwe mungafananizire ndikusiyanitsa mayankho osiyanasiyana.

Zinthuzi zikufotokozedwa mwachidule ndi ma tweets otsatirawa omwe ndidalemba mu Julayi:

Chisokonezo cha ma mesh #1: Linkerd ~ = Nginx ~ = Haproxy ~ = Envoy. Palibe amene ali wofanana ndi Istio. Istio ndi chinthu chosiyana kwambiri. 1/

Zoyamba ndi ndege za data chabe. Paokha samachita kalikonse. Ayenera kukhala ndi chidwi ndi zina. 2/

Istio ndi chitsanzo cha ndege yolamulira yomwe imagwirizanitsa zigawozo. Uyu ndi wosanjikiza wina. /TSIRIZA

Ma tweets am'mbuyomu amatchula ma projekiti angapo osiyanasiyana (Linkerd, NGINX, HAProxy, Envoy, ndi Istio), koma chofunikira kwambiri yambitsani malingaliro amtundu wa data, ma mesh, ndi ndege zowongolera. Mu positiyi, ndibwerera m'mbuyo ndikuyankhula zomwe ndikutanthauza ndi mawu akuti "ndege ya data" ndi "ndege yoyendetsa" pamtunda wapamwamba kwambiri, ndiyeno ndikulankhula za momwe mawuwa akugwiritsidwira ntchito ku ntchito zomwe zatchulidwa mu tweets.

Kodi mauna a service ndi chiyani kwenikweni?

Ndege ya data ya ma mesh motsutsana ndi ndege yowongolera
Chithunzi 1: Chidule cha mauna a service

Chithunzi 1 ikuwonetsa lingaliro la mesh ya service pamlingo wake wofunikira kwambiri. Pali magulu anayi a utumiki (AD). Ntchito iliyonse imalumikizidwa ndi seva ya proxy yakomweko. Magalimoto onse pamanetiweki (HTTP, REST, gRPC, Redis, ndi zina zotero) kuchokera pa pulogalamu imodzi yokha amadutsa pa proxy yakomweko kupita kumagulu oyenera akunja. Mwanjira iyi, mawonekedwe ogwiritsira ntchito samadziwa za netiweki yonse ndipo amangodziwa zoyimira zakomweko. M'malo mwake, ma network ogawidwa adachotsedwa pautumiki.

Ndege ya data

Mu mesh yautumiki, seva ya proxy yomwe ili komweko kuti igwiritse ntchito imagwira ntchito izi:

  • Kupeza ntchito. Kodi ndi ntchito ziti/mapulogalamu omwe alipo pa pulogalamu yanu?
  • Kuwunika thanzi. Kodi zochitika zomwe zabwezedwa ndi kupezeka kwa ntchito zathanzi komanso zokonzeka kuvomereza kuchuluka kwa magalimoto pamaneti? Izi zitha kuphatikizira zonse zomwe zikuchitika (monga kuyankha / kuwunika thanzi) ndi kungokhala chete (mwachitsanzo kugwiritsa ntchito zolakwika 3 zotsatizana 5xx ngati chizindikiritso cha vuto lazaumoyo) kuyezetsa zaumoyo.
  • Njira. Mukalandira pempho ku "/foo" kuchokera ku ntchito ya REST, ndi gulu liti la ntchito zomwe pempholo liyenera kutumizidwa?
  • Katundu kusanja. Gulu la mautumiki likasankhidwa poyendetsa, pempho liyenera kutumizidwa pati? Ndi nthawi yanji? Ndi zoikamo zothyola dera ziti? Ngati pempho likulephera, kodi liyesedwenso?
  • Kutsimikizika ndi chilolezo. Pazopempha zomwe zikubwera, kodi ntchito yoyimba foniyo ingazindikiridwe mwachinsinsi / kuloledwa kugwiritsa ntchito mTLS kapena makina ena? Ngati izindikirika/yololedwa, kodi ndiyololedwa kuyimba ntchito yomwe mwafunsidwa (mapeto) pa ntchitoyo kapena yankho losavomerezeka libwezedwe?
  • Kuwoneka. Ziwerengero zatsatanetsatane, zipika/zipika, ndi zomwe zagawidwa ziyenera kupangidwa pa pempho lililonse kuti ogwiritsira ntchito azitha kumvetsetsa momwe magalimoto akugawidwira ndikuwongolera zovuta zikabuka.

Ndege ya data ndiyomwe imayang'anira mfundo zonse zam'mbuyomu mu mesh yautumiki. M'malo mwake, projekiti yam'deralo ku ntchitoyo (sidecar) ndiye ndege ya data. Mwanjira ina, ndege ya data ili ndi udindo wotsatsa, kutumiza, ndi kuyang'anira paketi iliyonse ya netiweki yomwe imatumizidwa kapena kuchokera ku ntchito.

Ndege yowongolera

Chidule cha netiweki chomwe projekiti yakomweko amapereka mu ndege ya data ndi yamatsenga(?). Komabe, kodi woyimirayo amadziwa bwanji za njira ya "/foo" yopita ku B? Kodi deta yodziwikiratu yomwe ili ndi zopempha za proxy ingagwiritsidwe ntchito bwanji? Kodi ma parameter amakonzedwa bwanji kuti azitha kuwongolera katundu, nthawi yopuma, kuswa dera, ndi zina? Kodi mumayika bwanji pulogalamu pogwiritsa ntchito njira ya buluu/yobiriwira kapena njira yabwino yosinthira magalimoto? Ndindani amakonza zodziwikiratu ndi zilolezo za dongosolo lonse?

Zonse zomwe zili pamwambazi zili pansi pa ulamuliro wa ndege yoyendetsa mauna a utumiki. Ndege yoyang'anira imatenga ma proxies osakhazikika omwe ali kutali ndikuwasandutsa njira yogawidwa.

Ndikuganiza kuti chifukwa chomwe akatswiri ambiri amakono amapeza kuti malingaliro osiyana a ndege ya deta ndi ndege yoyendetsa ndege akusokoneza chifukwa kwa anthu ambiri ndege ya data imadziwika pamene ndege yoyendetsa ndege ndi yachilendo / yosamvetsetseka. Takhala tikugwira ntchito ndi ma network network routers ndi ma switch kwa nthawi yayitali. Timamvetsetsa kuti mapaketi / zopempha ziyenera kuchoka pa point A kupita kumalo a B ndikuti titha kugwiritsa ntchito zida ndi mapulogalamu kuti tichite izi. M'badwo watsopano wa proxies wa mapulogalamu amangotengera zida zomwe takhala tikugwiritsa ntchito kwa nthawi yayitali.

Ndege ya data ya ma mesh motsutsana ndi ndege yowongolera
Chithunzi 2: Ndege yolamulira anthu

Komabe, takhala tikugwiritsa ntchito ndege zowongolera kwa nthawi yayitali, ngakhale kuti ambiri ogwiritsira ntchito maukonde sangagwirizane ndi gawo ili ladongosolo ndi gawo lililonse laukadaulo. Chifukwa chake ndi chosavuta:
Ndege zambiri zowongolera zomwe zikugwiritsidwa ntchito masiku ano ndi ... ife.

pa Chithunzi 2 ikuwonetsa zomwe ndimatcha "ndege yowongolera anthu." Mu mtundu uwu wa kutumiza, womwe udakali wofala kwambiri, wogwiritsa ntchito munthu wokhumudwa amapanga masinthidwe osasunthika - mwina kudzera m'malemba - ndikuwatumiza kudzera munjira yapadera kwa ma proxies onse. Ma proxies amayamba kugwiritsa ntchito kasinthidwe uku ndikuyamba kukonza ndege ya data pogwiritsa ntchito zosintha zosinthidwa.

Ndege ya data ya ma mesh motsutsana ndi ndege yowongolera
Chithunzi 3: Ndege yowongolera ma mesh apamwamba kwambiri

pa Chithunzi 3 ikuwonetsa ndege yowongolera "yowonjezera" ya mauna a service. Lili ndi magawo otsatirawa:

  • Munthu: Padakali munthu (mwachiyembekezo wokwiya pang'ono) yemwe amapanga zisankho zapamwamba zokhudzana ndi dongosolo lonse.
  • Control ndege UI: Munthu amalumikizana ndi mtundu wina wa mawonekedwe ogwiritsa ntchito kuti aziwongolera dongosolo. Izi zitha kukhala tsamba lawebusayiti, kugwiritsa ntchito mzere wolamula (CLI), kapena mawonekedwe ena. Pogwiritsa ntchito mawonekedwe a wogwiritsa ntchito, wogwiritsa ntchito amatha kupeza magawo a dongosolo lonse lapansi monga:
    • Kuwongolera kutumiza, kusintha kwa buluu/zobiriwira ndi/kapena pang'onopang'ono
    • Zosankha Zovomerezeka ndi Zovomerezeka
    • Kufotokozera kwa tebulo, mwachitsanzo pulogalamu A ikafunsa zambiri za "/foo" zomwe zimachitika
    • Tsegulani zoikamo za balancer, monga kutha kwa nthawi, zoyesereranso, zoikamo zosweka, ndi zina.
  • Wolemba ntchito: Ntchito zimayendetsedwa pazomangamanga kudzera mumitundu ina yamakonzedwe/oyimba, monga Kubernetes kapena Nomad. Wokonza ndandanda ali ndi udindo wotsegula ntchitoyo pamodzi ndi projekiti yapafupi.
  • Kupeza ntchito. Wokonza mapulani akayamba ndikuyimitsa zochitika zantchito, imafotokoza za thanzi kudongosolo lodziwira ntchito.
  • Sidecar proxy configuration APIs : Ma proxies amderali amachotsa boma kuchokera kuzinthu zosiyanasiyana zamakina pogwiritsa ntchito mtundu wokhazikika popanda kulowererapo. Dongosolo lonse, lokhala ndi zochitika zonse zomwe zikugwira ntchito pano ndi ma seva oyimira am'deralo, pamapeto pake amasintha kukhala chilengedwe chimodzi. Envoy's universal data plane API ndi chitsanzo chimodzi cha momwe izi zimagwirira ntchito.

Kwenikweni, cholinga cha ndege yowongolera ndikukhazikitsa ndondomeko yomwe pamapeto pake idzavomerezedwe ndi ndege ya data. Ndege zowongolera zotsogola zimachotsa mbali zambiri zamakina ena kuchokera kwa woyendetsa ndipo zimafuna kuti zizigwira ntchito pang'onopang'ono, ngati zikugwira ntchito moyenera!...

Ndege ya data ndi ndege yowongolera. Ndege ya data motsutsana ndi chidule cha ndege yowongolera

  • Service mesh data ndege: Imakhudza paketi / pempho lililonse pamakina. Ndiwoyang'anira kugwiritsa ntchito / kupeza ntchito, kuyang'anira thanzi, mayendedwe, kusanja katundu, kutsimikizira / kuvomereza ndi kuwonera.
  • Service mesh control ndege: Amapereka ndondomeko ndi kasinthidwe kwa ndege zonse zoyendetsa data mkati mwa netiweki yautumiki. Simakhudza phukusi/zopempha zilizonse padongosolo. Ndege yowongolera imatembenuza ndege zonse za data kukhala dongosolo logawidwa.

Mawonekedwe a polojekiti

Popeza tamvetsetsa zomwe zili pamwambapa, tiyeni tiwone momwe ntchito ya mesh ya service ilili.

  • Ndege za data: Linkerd, NGINX, HAProxy, Envoy, Traefik
  • Kuwongolera ndege: Istio, Nelson, SmartStack

M'malo mopenda mozama yankho lililonse lomwe lili pamwambapa, ndifotokoza mwachidule mfundo zina zomwe ndikukhulupirira kuti zikuyambitsa chisokonezo m'chilengedwe pakali pano.

Linkerd inali imodzi mwama seva oyamba oyimira ndege pamayendedwe a mesh koyambirira kwa 2016 ndipo yachita ntchito yabwino kwambiri yodziwitsa anthu ndi chidwi pamitundu yopangira ma mesh. Pafupifupi miyezi 6 zitatha izi, Envoy adalumikizana ndi Linkerd (ngakhale adakhala ndi Lyft kuyambira kumapeto kwa 2015). Linkerd ndi Envoy ndi mapulojekiti awiri omwe amatchulidwa nthawi zambiri pokambirana ma meshes.

Istio idalengezedwa mu Meyi 2017. Zolinga za polojekiti ya Istio ndizofanana kwambiri ndi ndege yowonjezereka yomwe ikuwonetsedwa Chithunzi 3. Mtumiki wa Istio ndiye woyimira wokhazikika. Chifukwa chake, Istio ndiye ndege yowongolera, ndipo Envoy ndiye ndege ya data. Posakhalitsa, Istio inapanga chisangalalo chochuluka, ndipo ndege zina za deta zinayamba kugwirizanitsa monga m'malo mwa Envoy (onse a Linkerd ndi NGINX adawonetsa kugwirizanitsa ndi Istio). Mfundo yakuti ndege za data zosiyanasiyana zingagwiritsidwe ntchito mkati mwa ndege imodzi yolamulira zikutanthawuza kuti ndege yoyendetsa ndege ndi ndege ya data sizigwirizana kwambiri. API monga API ya Envoy's generic data plane imatha kupanga mlatho pakati pa magawo awiri a dongosolo.

Nelson ndi SmartStack amathandizira kuwonetseranso kulekanitsidwa kwa ndege yowongolera ndi ndege ya data. Nelson amagwiritsa ntchito Envoy ngati projekiti yake ndikupanga ndege yodalirika yowongolera mauna amtundu wautumiki potengera stack ya HashiCorp, i.e. Nomad, etc. SmartStack mwina inali yoyamba mwa ma meshes atsopano. SmartStack imamanga ndege yolamulira mozungulira HAProxy kapena NGINX, kusonyeza kuthekera kochotsa ndege yolamulira kuchokera ku mesh yautumiki kuchokera ku ndege ya data.

Zomangamanga za Microservice zokhala ndi mauna a ntchito zikuchulukirachulukira (moyenera!), Ndipo mapulojekiti ochulukirachulukira ndi ogulitsa akuyamba kugwira ntchito motere. Pazaka zingapo zotsatira tidzawona zatsopano zambiri mu ndege ya deta ndi ndege yolamulira, komanso kusakanikirana kwina kwa zigawo zosiyanasiyana. Pamapeto pake, kamangidwe ka microservice kuyenera kukhala kowonekera komanso zamatsenga (?) kwa wogwiritsa ntchito.
Mwachiyembekezo mocheperapo ndi kukwiya.

Zotengera zofunika

  • Ukonde wautumiki uli ndi magawo awiri osiyana: ndege ya data ndi ndege yowongolera. Zigawo zonse ziwiri ndizofunikira, ndipo popanda iwo dongosolo silingagwire ntchito.
  • Aliyense amadziwa ndege yowongolera, ndipo pakadali pano, ndege yowongolera ikhoza kukhala inu!
  • Ndege zonse za data zimapikisana pa mawonekedwe, magwiridwe antchito, kusinthika, ndi kukulitsa.
  • Ndege zonse zowongolera zimapikisana wina ndi mnzake mu mawonekedwe, kusinthika, kukulitsa, komanso kugwiritsa ntchito mosavuta.
  • Ndege imodzi yolamulira ikhoza kukhala ndi zotsalira zolondola ndi ma API kuti ndege zambiri za data zitha kugwiritsidwa ntchito.

Source: www.habr.com

Kuwonjezera ndemanga