Service mesh data plane vs. control plane

Hlo Habr! Kuv nthuav qhia rau koj mloog cov lus txhais ntawm tsab xov xwm "Kev pabcuam mesh cov ntaub ntawv dav hlau vs tswj dav hlau" tus sau Matt Klein: koj puas xav tau ntau tus thwjtim?.

Service mesh data plane vs. control plane

Lub sijhawm no, kuv "xav tau thiab txhais" cov lus piav qhia ntawm ob qho tib si kev pabcuam mesh Cheebtsam, cov ntaub ntawv dav hlau thiab tswj dav hlau. Cov lus piav qhia no zoo li kuv qhov kev nkag siab zoo tshaj plaws thiab nthuav, thiab qhov tseem ceeb tshaj plaws ua rau kev nkag siab ntawm "Puas yog qhov tsim nyog?"

Raws li lub tswv yim ntawm "Kev Pabcuam Mesh" tau dhau los ua neeg nyiam nyob rau ob lub xyoos dhau los (Tsib tsab xov xwm Lub Kaum Hli 10, 2017) thiab tus naj npawb ntawm cov neeg koom nrog hauv qhov chaw tau nce, Kuv tau pom qhov sib txawv ntawm qhov tsis meej pem ntawm tag nrho. tech zej zog hais txog yuav ua li cas los sib piv thiab sib piv cov kev daws teeb meem sib txawv.

Qhov xwm txheej yog qhov zoo tshaj plaws los ntawm cov kab lus hauv qab no ntawm tweets kuv tau sau rau Lub Xya Hli:

Kev pabcuam mesh tsis meej pem #1: Linkerd ~ = Nginx ~ = Haproxy ~ = Envoy. Tsis muaj leej twg sib npaug rau Istio. Istio yog ib yam dab tsi txawv kiag li. 1 /

Thawj qhov tsuas yog cov ntaub ntawv dav hlau. Los ntawm lawv tus kheej lawv tsis ua dab tsi. Lawv yuav tsum nyob rau hauv lub siab rau ib yam dab tsi ntxiv. 2/

Istio yog ib qho piv txwv ntawm lub dav hlau tswj uas khi cov khoom ua ke. Qhov no yog lwm txheej. / kawg

Cov tweets yav dhau los hais txog ntau qhov haujlwm sib txawv (Linkerd, NGINX, HAProxy, Envoy, thiab Istio), tab sis qhov tseem ceeb tshaj qhia txog cov ntsiab lus dav dav ntawm cov ntaub ntawv dav hlau, kev pabcuam mesh, thiab tswj dav hlau. Hauv cov ntawv tshaj tawm no, kuv yuav rov qab los tham txog qhov kuv txhais tau li cas los ntawm cov ntsiab lus "cov ntaub ntawv dav hlau" thiab "tswj dav hlau" ntawm qib siab, thiab tom qab ntawd tham txog yuav ua li cas cov nqe lus siv rau cov haujlwm tau hais hauv tweets.

Dab tsi yog qhov kev pabcuam mesh, tiag tiag?

Service mesh data plane vs. control plane
Daim duab 1: Kev saib xyuas mesh

1 teeb duab qhia txog lub tswvyim ntawm kev pabcuam mesh ntawm nws cov theem pib tshaj plaws. Muaj plaub pawg pabcuam (AD). Txhua qhov kev pab cuam yog txuam nrog lub npe neeg rau zaub mov hauv zos. Tag nrho cov tsheb khiav hauv lub network (HTTP, REST, gRPC, Redis, thiab lwm yam) los ntawm ib daim ntawv thov piv txwv yog dhau los ntawm tus neeg sawv cev hauv zos rau cov pab pawg sab nraud uas tsim nyog. Txoj kev no, daim ntawv thov piv txwv tsis paub txog lub network tag nrho thiab tsuas yog paub txog nws lub npe hauv zos. Nyob rau hauv qhov tseeb, qhov kev faib system network raug tshem tawm ntawm qhov kev pabcuam.

Cov ntaub ntawv dav hlau

Hauv kev pabcuam mesh, lub npe neeg rau zaub mov nyob hauv zos rau daim ntawv thov ua cov haujlwm hauv qab no:

  • Kev pab nrhiav pom. Cov kev pabcuam/kev thov twg muaj rau koj daim ntawv thov?
  • Kev kuaj mob. Puas yog qhov kev pabcuam xa rov qab los ntawm kev pabcuam nrhiav kev noj qab haus huv thiab npaj txhij los lees txais kev sib txuas hauv network? Qhov no tuaj yeem suav nrog ob qho tib si ua haujlwm (xws li teb / kuaj xyuas kev noj qab haus huv) thiab passive (xws li siv 3 qhov sib law liag 5xx raws li qhov qhia tau tias muaj kev pabcuam tsis zoo) kev kuaj mob.
  • Txoj kev. Thaum tau txais kev thov rau "/foo" los ntawm REST kev pabcuam, pawg pabcuam twg yuav tsum tau xa mus rau?
  • Load ntsuas. Thaum ib pawg pabcuam tau raug xaiv thaum lub sijhawm ua haujlwm, qhov kev pabcuam twg yuav tsum tau xa mus? Nrog lub sijhawm twg? Nrog dab tsi Circuit Breaking settings? Yog tias qhov kev thov ua tsis tiav, nws yuav tsum rov qab ua dua?
  • Kev lees paub thiab kev tso cai. Rau kev thov tuaj, qhov kev pabcuam hu puas tuaj yeem raug txheeb pom / tso cai siv mTLS lossis lwm yam txheej txheem? Yog tias nws tau lees paub / tso cai, nws puas raug tso cai hu rau qhov kev thov ua haujlwm (qhov kawg) ntawm qhov kev pabcuam lossis yuav tsum tau txais cov lus teb tsis raug lees paub?
  • Kev soj ntsuam. Cov ntaub ntawv ntxaws ntxaws, cov ntawv teev / teev, thiab cov ntaub ntawv sib faib yuav tsum raug tsim tawm rau txhua qhov kev thov kom cov neeg ua haujlwm tuaj yeem nkag siab txog kev faib tsheb khiav thiab kev daws teeb meem thaum lawv tshwm sim.

Cov ntaub ntawv dav hlau yog lub luag haujlwm rau tag nrho cov ntsiab lus dhau los hauv kev pabcuam mesh. Qhov tseeb, tus neeg sawv cev hauv zos rau qhov kev pabcuam (sidecar) yog cov ntaub ntawv dav hlau. Hauv lwm lo lus, lub dav hlau cov ntaub ntawv yog lub luag haujlwm rau kev tshaj tawm xov xwm, xa mus, thiab saib xyuas txhua pob ntawv network uas xa mus rau lossis los ntawm kev pabcuam.

Lub dav hlau tswj

Lub network abstraction uas ib lub zos proxy muab rau hauv cov ntaub ntawv dav hlau yog tej yam yees siv (?). Txawm li cas los xij, tus neeg sawv cev paub li cas txog txoj kev "/foo" rau kev pabcuam B? Yuav ua li cas cov kev pab cuam nrhiav tau cov ntaub ntawv uas yog populated los ntawm proxy thov siv? Yuav ua li cas yog cov tsis configure rau load balancing, timeout, Circuit Court breaking, thiab lwm yam? Koj siv daim ntawv thov li cas siv txoj kev xiav / ntsuab lossis txoj kev hloov tsheb zoo nkauj? Leej twg configures system-wide authentication thiab tso cai chaw?

Tag nrho cov khoom saum toj no yog nyob rau hauv kev tswj ntawm lub dav hlau tswj ntawm kev pabcuam mesh. Lub dav hlau tswj tau siv cov txheej txheem ntawm cov neeg tsis muaj npe nyob hauv lub xeev thiab hloov lawv mus rau hauv ib qho kev faib tawm.

Kuv xav tias vim li cas ntau tus kws tshaj lij pom cov ntsiab lus sib cais ntawm cov ntaub ntawv dav hlau thiab tswj lub dav hlau tsis meej pem yog vim rau cov neeg feem coob cov ntaub ntawv dav hlau paub thaum lub dav hlau tswj yog txawv teb chaws / tsis to taub. Peb tau ua haujlwm nrog lub cev network routers thiab keyboards tau ntev. Peb nkag siab tias pob ntawv / thov yuav tsum mus ntawm point A mus rau point B thiab peb tuaj yeem siv kho vajtse thiab software ua qhov no. Lub cim tshiab ntawm software proxies tsuas yog cov qauv zoo nkauj ntawm cov cuab yeej peb tau siv ntev.

Service mesh data plane vs. control plane
Daim duab 2: Tib neeg tswj lub dav hlau

Txawm li cas los xij, peb tau siv cov dav hlau tswj tau ntev, txawm hais tias feem ntau cov neeg ua haujlwm hauv lub network yuav tsis koom nrog qhov no ntawm cov kab ke nrog cov khoom siv thev naus laus zis. Qhov laj thawj yog yooj yim:
Feem ntau tswj cov dav hlau siv niaj hnub no yog ... peb.

rau Daim duab 2 qhia qhov kuv hu ua "Human control plane." Hauv hom kev xa tawm no, uas tseem muaj ntau heev, tej zaum tus neeg ua haujlwm tsis txaus ntseeg tsim cov teeb tsa zoo li qub - muaj peev xwm ntawm cov ntawv sau - thiab xa lawv los ntawm qee cov txheej txheem tshwj xeeb rau txhua tus neeg sawv cev. Cov neeg sawv cev ces pib siv qhov kev teeb tsa no thiab pib ua cov ntaub ntawv dav hlau siv cov kev hloov kho tshiab.

Service mesh data plane vs. control plane
Daim duab 3: Advanced service mesh tswj dav hlau

rau Daim duab 3 qhia qhov "extended" tswj dav hlau ntawm cov kev pabcuam mesh. Nws muaj cov ntu hauv qab no:

  • Tib neeg: Tseem muaj ib tug neeg (vam tias tsis tshua npau taws) uas txiav txim siab theem siab hais txog lub kaw lus tag nrho.
  • Tswj lub dav hlau UI: Ib tug neeg cuam tshuam nrog qee hom neeg siv interface los tswj lub kaw lus. Qhov no tuaj yeem yog lub vev xaib portal, daim ntawv thov kab hais kom ua (CLI), lossis qee qhov sib txuas. Siv tus neeg siv interface, tus neeg teb xov tooj tau nkag mus rau thoob ntiaj teb kev teeb tsa kev teeb tsa tsis zoo xws li:
    • Kev tswj hwm kev xa tawm, xiav / ntsuab thiab / lossis kev hloov pauv hloov mus
    • Authentication thiab tso cai xaiv
    • Routing table specifications, piv txwv li thaum daim ntawv thov A thov cov ntaub ntawv hais txog "/foo" dab tsi tshwm sim
    • Load balancer settings, xws li timeouts, retry, circuit breaking settings, etc.
  • Lub sijhawm ua haujlwm: Cov kev pabcuam tau khiav ntawm cov txheej txheem los ntawm qee hom kev teem sijhawm / kev ua haujlwm, xws li Kubernetes lossis Nomad. Tus teem sijhawm yog lub luag haujlwm rau kev thauj khoom nrog rau nws lub npe hauv zos.
  • Kev pab nrhiav pom. Thaum tus neeg teem sijhawm pib thiab tso tseg cov xwm txheej pabcuam, nws qhia txog kev noj qab haus huv rau cov kev pabcuam nrhiav pom.
  • Sidecar proxy configuration APIs : Local proxies dynamically rho tawm lub xeev los ntawm ntau yam system Cheebtsam siv ib tug thiaj li zoo ib yam qauv yam tsis muaj kev cuam tshuam tus neeg teb xov tooj. Tag nrho cov kab ke, suav nrog tag nrho cov kev pabcuam tam sim no thiab cov npe neeg siv hauv zos, thaum kawg sib koom ua ib qho kev sib txuas. Envoy's universal data plane API yog ib qho piv txwv ntawm qhov no ua haujlwm li cas hauv kev xyaum.

Qhov tseem ceeb, lub hom phiaj ntawm lub dav hlau tswj yog los teeb tsa txoj cai uas yuav tau txais thaum kawg ntawm cov ntaub ntawv dav hlau. Ntau lub dav hlau tswj hwm qib siab yuav tshem tawm ntau qhov ntawm qee lub tshuab los ntawm tus neeg teb xov tooj thiab yuav tsum tau ua haujlwm tsawg dua, yog tias lawv ua haujlwm raug! ...

Cov ntaub ntawv dav hlau thiab tswj dav hlau. Cov ntaub ntawv dav hlau vs. tswj lub dav hlau cov ntsiab lus

  • Service mesh data dav hlau: Muaj feem xyuam rau txhua pob ntawv / thov hauv qhov system. Lub luag haujlwm rau daim ntawv thov / kev pabcuam nrhiav pom, tshuaj xyuas kev noj qab haus huv, routing, load balancing, authentication/authorization thiab observability.
  • Service mesh tswj dav hlau: Muab txoj cai thiab teeb tsa rau txhua lub dav hlau khiav cov ntaub ntawv hauv cov kev pabcuam network. Tsis kov tej pob khoom / thov ntawm qhov system. Lub dav hlau tswj hloov tag nrho cov ntaub ntawv dav hlau mus rau hauv ib qho kev faib tawm.

Tam sim no qhov project toj roob hauv pes

Tau nkag siab cov lus piav qhia saum toj no, cia peb saib lub xeev tam sim no ntawm qhov kev pabcuam mesh.

  • Cov ntaub ntawv dav hlau: Linkerd, NGINX, HAProxy, Envoy, Traefik
  • Tswj cov dav hlau: Istio, Nelson, SmartStack

Tsis yog mus rau hauv kev tsom xam qhov tob ntawm txhua qhov kev daws teeb meem saum toj no, kuv yuav hais luv luv txog qee cov ntsiab lus uas kuv ntseeg tias ua rau muaj kev tsis sib haum xeeb hauv ecosystem tam sim no.

Linkerd yog ib qho ntawm thawj cov ntaub ntawv dav hlau proxy servers rau cov kev pabcuam mesh thaum ntxov 2016 thiab tau ua txoj haujlwm zoo heev ntawm kev txhawb kev paub thiab kev saib xyuas rau cov kev pabcuam mesh tsim qauv. Txog 6 lub hlis tom qab ntawd, Envoy tau koom nrog Linkerd (txawm tias nws tau nrog Lyft txij thaum lig 2015). Linkerd thiab Envoy yog ob txoj haujlwm uas feem ntau hais thaum tham txog kev pabcuam meshes.

Istio tau tshaj tawm thaum lub Tsib Hlis 2017. Lub hom phiaj ntawm Istio qhov project zoo ib yam li lub dav hlau txuas ntxiv uas tau pom hauv Daim duab 3. Envoy rau Istio yog tus neeg sawv cev ua ntej. Yog li, Istio yog lub dav hlau tswj, thiab Envoy yog lub dav hlau cov ntaub ntawv. Nyob rau hauv ib lub sij hawm luv luv, Istio ua rau muaj kev zoo siab heev, thiab lwm cov ntaub ntawv dav hlau pib ua ke los ua ib qho kev hloov rau Envoy (ob leeg Linkerd thiab NGINX pom kev koom ua ke nrog Istio). Qhov tseeb tias cov ntaub ntawv sib txawv tuaj yeem siv nyob rau hauv tib lub dav hlau tswj txhais tau hais tias lub dav hlau tswj thiab cov ntaub ntawv dav hlau tsis tas yuav tsum nruj ua ke. Ib qho API xws li Envoy's generic data plane API tuaj yeem tsim tus choj ntawm ob feem ntawm lub cev.

Nelson thiab SmartStack pab qhia ntxiv txog kev sib cais ntawm lub dav hlau tswj thiab cov ntaub ntawv dav hlau. Nelson siv Envoy ua nws tus neeg sawv cev thiab tsim lub dav hlau tswj kev ntseeg siab rau cov kev pabcuam mesh raws li HashiCorp pawg, piv txwv li. Nomad, thiab lwm yam. SmartStack yog kab tias thawj zaug ntawm nthwv dej tshiab ntawm kev pabcuam meshes. SmartStack tsim lub dav hlau tswj nyob ib puag ncig HAProxy lossis NGINX, ua kom pom lub peev xwm los txiav txim siab lub dav hlau tswj los ntawm kev pabcuam mesh los ntawm cov ntaub ntawv dav hlau.

Microservice architecture nrog kev pabcuam mesh tau txais kev saib xyuas ntau thiab ntau dua (yog!), thiab ntau thiab ntau cov haujlwm thiab cov neeg muag khoom tau pib ua haujlwm hauv cov lus qhia no. Ob peb xyoos tom ntej no peb yuav pom ntau qhov kev hloov pauv tshiab hauv ob lub dav hlau cov ntaub ntawv thiab lub dav hlau tswj, nrog rau kev sib xyaw ntxiv ntawm cov khoom sib txawv. Thaum kawg, microservice architecture yuav tsum dhau los ua pob tshab thiab tej yam yees siv (?) rau tus neeg teb xov tooj.
Vam tias tsawg dua thiab tsis khaus.

Cov khoom tseem ceeb

  • Ib qho kev pabcuam mesh muaj ob qhov sib txawv: cov ntaub ntawv dav hlau thiab lub dav hlau tswj. Ob qho tib si yuav tsum tau ua, thiab tsis muaj lawv lub kaw lus yuav tsis ua haujlwm.
  • Txhua tus paub txog lub dav hlau tswj, thiab ntawm lub sijhawm no, lub dav hlau tswj yuav yog koj!
  • Tag nrho cov ntaub ntawv dav hlau sib tw nrog ib leeg ntawm cov yam ntxwv, kev ua tau zoo, kev teeb tsa, thiab kev nthuav dav.
  • Txhua lub dav hlau tswj tau sib tw nrog ib leeg hauv cov yam ntxwv, kev teeb tsa, kev nthuav dav, thiab kev siv yooj yim.
  • Ib lub dav hlau tswj tau tuaj yeem muaj qhov kev paub zoo thiab APIs kom siv ntau lub dav hlau cov ntaub ntawv.

Tau qhov twg los: www.hab.com

Ntxiv ib saib