Sèvis may done avyon vs kontwòl avyon

Hey Habr! Mwen prezante nan atansyon ou tradiksyon an nan atik la "Sèvis may done avyon vs kontwòl avyon" otè a Matt Klein.

Sèvis may done avyon vs kontwòl avyon

Fwa sa a, mwen "te vle ak tradui" deskripsyon tou de eleman may sèvis, avyon done ak avyon kontwòl. Deskripsyon sa a te sanble pi konpreyansib ak enteresan, epi pi enpòtan an te mennen nan konpreyansyon yo genyen sou "Èske li nesesè nan tout?"

Kòm lide yon "Sèvis may" te vin de pli zan pli popilè nan de dènye ane yo (Atik orijinal 10 oktòb 2017) ak kantite patisipan yo nan espas la te ogmante, mwen te wè yon ogmantasyon korespondan nan konfizyon nan mitan tout la. kominote teknoloji konsènan fason yo konpare ak kontras solisyon diferan.

Sitiyasyon an pi byen rezime pa seri tweet sa yo mwen te ekri an Jiyè:

Sèvis may konfizyon #1: Linkerd ~ = Nginx ~ = Haproxy ~ = Anvwaye. Okenn nan yo pa egal ak Istio. Istio se yon bagay konplètman diferan. 1/

Premye a se tou senpleman done avyon. Pou kont yo yo pa fè anyen. Yo dwe nan atitid la pou yon bagay plis. 2/

Istio se yon egzanp yon avyon kontwòl ki mare pati yo ansanm. Sa a se yon lòt kouch. /fen

Tweet anvan yo mansyone plizyè pwojè diferan (Linkerd, NGINX, HAProxy, Envoy, ak Istio), men sa ki pi enpòtan prezante konsèp jeneral nan avyon done, may sèvis, ak avyon kontwòl. Nan pòs sa a, mwen pral fè yon etap tounen epi pale sou sa mwen vle di nan tèm "avion done" ak "avyon kontwòl" nan yon nivo trè wo, epi answit pale sou fason tèm yo aplike nan pwojè yo mansyone nan tweet yo.

Ki sa ki se yon may sèvis, reyèlman?

Sèvis may done avyon vs kontwòl avyon
Figi 1: Apèsi sou may sèvis

KI MOUN KI Figi montre konsèp yon may sèvis nan nivo ki pi fondamantal. Gen kat gwoup sèvis (AD). Chak egzanp sèvis asosye ak yon sèvè proxy lokal. Tout trafik rezo (HTTP, REST, gRPC, Redis, elatriye) ki soti nan yon sèl aplikasyon an pase atravè yon prokurasyon lokal nan gwoup sèvis ekstèn ki apwopriye yo. Nan fason sa a, egzanp aplikasyon an pa okouran rezo a kòm yon antye epi sèlman okouran de proxy lokal li yo. An reyalite, yo te retire rezo sistèm distribiye nan sèvis la.

Avyon done

Nan yon may sèvis, yon sèvè proxy ki sitiye lokalman pou aplikasyon an fè travay sa yo:

  • Dekouvèt sèvis. Ki sèvis/aplikasyon ki disponib pou aplikasyon w lan?
  • Tcheke sante. Èske dekouvèt sèvis yo retounen nan ka sèvis yo an sante epi yo pare pou aksepte trafik rezo a? Sa ka gen ladan tou chèk sante aktif (egzanp repons/tèks sante) ak pasif (egzanp itilize 3 erè 5xx youn apre lòt kòm yon endikasyon de yon eta sèvis malsen).
  • Routage. Lè w ap resevwa yon demann pou "/foo" nan men yon sèvis REST, nan ki gwoup sèvis yo ta dwe voye demann lan?
  • Balanse chaj. Yon fwa yo chwazi yon gwoup sèvis pandan routage, nan ki egzanp sèvis yo ta dwe voye demann lan? Ak ki timeout? Avèk ki anviwònman kraze sikwi? Si demann lan echwe, èske li ta dwe eseye ankò?
  • Otantifikasyon ak otorizasyon. Pou demann k ap fèk ap rantre, èske sèvis apèl la ka idantifye/otorize kriptografikman lè l sèvi avèk mTLS oswa kèk lòt mekanis? Si yo rekonèt/otorize li, èske li pèmèt yo rele operasyon yo mande a (endpoint) sou sèvis la oswa èske yo ta dwe retounen yon repons ki pa otantifye?
  • Obsèvabilite. Estatistik detaye, mòso bwa / mòso bwa, ak done tras distribiye yo ta dwe pwodwi pou chak demann pou operatè yo ka konprann sikilasyon distribye trafik ak pwoblèm debogaj jan yo leve.

Avyon done a responsab pou tout pwen anvan yo nan may sèvis la. An reyalite, prokurasyon lokal la nan sèvis la (sidecar) se avyon an done. Nan lòt mo, avyon done a responsab pou difize kondisyonèl, voye, ak kontwole chak pake rezo ke yo voye nan oswa soti nan yon sèvis.

Avyon kontwòl la

Abstraksyon rezo ke yon prokurasyon lokal bay nan plan done a se majik(?). Sepandan, ki jan prokurasyon an aktyèlman konnen sou wout "/foo" nan sèvis B? Ki jan yo ka itilize done dekouvèt sèvis ki ranpli pa demann prokurasyon? Kouman yo konfigirasyon paramèt yo pou balanse chaj, delè, kraze sikwi, elatriye? Ki jan ou deplwaye yon aplikasyon lè l sèvi avèk metòd ble/vèt la oswa metòd tranzisyon trafik grasyeuz? Ki moun ki configured otantifikasyon ak otorizasyon nan tout sistèm?

Tout atik ki anwo yo anba kontwòl avyon kontwòl may sèvis la. Avyon kontwòl la pran yon seri proxy apatrid izole epi li fè yo tounen yon sistèm distribiye.

Mwen panse ke rezon ki fè anpil teknològ jwenn konsèp separe yo nan avyon done ak avyon kontwòl konfizyon se paske pou pifò moun avyon an done abitye pandan y ap avyon an kontwòl se etranje / pa konprann. Nou te travay ak routeurs rezo fizik ak switch pou yon tan long. Nou konprann ke pake/demann yo bezwen ale soti nan pwen A nan pwen B epi ke nou ka itilize pyès ki nan konpitè ak lojisyèl pou fè sa. Nouvo jenerasyon proxy lojisyèl yo se tou senpleman vèsyon anpenpan nan zouti nou te itilize pou yon tan long.

Sèvis may done avyon vs kontwòl avyon
Figi 2: Avyon kontwòl imen

Sepandan, nou te itilize avyon kontwòl pou yon tan long, byenke pifò operatè rezo yo pa ka asosye pati sa a nan sistèm nan ak nenpòt eleman teknoloji. Rezon ki fè la se senp:
Pifò avyon kontwòl yo itilize jodi a se... nou.

Sou figi 2 montre sa mwen rele "Avyon kontwòl imen an." Nan kalite deplwaman sa a, ki toujou trè komen, yon operatè imen pwobableman mosad kreye konfigirasyon estatik - potansyèlman atravè scripts - ak deplwaye yo atravè kèk pwosesis espesyal nan tout proxy yo. Lè sa a, proxy yo kòmanse sèvi ak konfigirasyon sa a epi kòmanse trete avyon an done lè l sèvi avèk anviwònman yo mete ajou.

Sèvis may done avyon vs kontwòl avyon
Figi 3: Avyon kontwòl avanse sèvis may

Sou figi 3 montre plan kontwòl "pwolonje" may sèvis la. Li konsiste de pati sa yo:

  • Moun nan: Gen toujou yon moun (espere ke mwens fache) ki pran desizyon wo nivo konsènan tout sistèm nan kòm yon antye.
  • Kontwòl avyon UI: Yon moun reyaji ak kèk kalite koòdone itilizatè pou kontwole sistèm nan. Sa a ta ka yon pòtal entènèt, yon aplikasyon liy lòd (CLI), oswa kèk lòt koòdone. Sèvi ak koòdone itilizatè a, operatè a gen aksè a paramèt konfigirasyon sistèm mondyal tankou:
    • Kontwòl deplwaman, tranzisyon trafik ble/vèt ak/oswa gradyèl
    • Opsyon Otantifikasyon ak Otorizasyon
    • Espesifikasyon tab routage, pou egzanp lè aplikasyon A mande enfòmasyon sou "/foo" sa k ap pase
    • Anviwònman balanse chaj, tankou timeouts, retry, anviwònman kraze sikwi, elatriye.
  • Orè travayè: Sèvis yo kouri sou enfrastrikti a atravè kèk kalite sistèm orè/okèstasyon, tankou Kubernetes oswa Nomad. Planifikatè a responsab pou chaje sèvis la ansanm ak prokurasyon lokal li yo.
  • Dekouvèt sèvis. Lè pwogramè a kòmanse epi sispann enstans sèvis yo, li rapòte estati sante a nan sistèm dekouvèt sèvis la.
  • Sidecar proxy konfigirasyon APIs : Pwoksi lokal yo ekstrèmman eta a nan divès konpozan sistèm lè l sèvi avèk yon modèl evantyèlman konsistan san entèvansyon operatè. Tout sistèm nan, ki gen ladann tout enstans sèvis k ap travay kounye a ak sèvè prokurasyon lokal yo, finalman konvèje nan yon sèl ekosistèm. API inivèsèl avyon done Envoy la se youn egzanp sou fason sa a travay an pratik.

Esansyèlman, objektif avyon kontwòl la se mete politik ki pral finalman aksepte pa avyon done a. Avyon kontwòl pi avanse yo pral retire plis pati nan kèk sistèm nan operatè a epi yo mande pou mwens operasyon manyèl, depi yo travay kòrèkteman!...

Avyon done ak avyon kontwòl. Done avyon vs kontwòl plan rezime

  • Sèvis may done avyon: Afekte chak pake/demann nan sistèm nan. Responsab pou dekouvèt aplikasyon/sèvis, tcheke sante, routage, balans chaj, otantifikasyon/otorizasyon ak obsèvasyon.
  • Sèvis may kontwòl avyon: Bay règleman ak konfigirasyon pou tout avyon done k ap kouri nan rezo sèvis la. Pa manyen okenn pakè/demann sou sistèm nan. Avyon kontwòl la vire tout avyon done nan yon sistèm distribiye.

Pwojè aktyèl jaden flè

Lè w fin konprann eksplikasyon ki anwo a, ann gade nan eta aktyèl pwojè may sèvis la.

  • Avyon done: Linkerd, NGINX, HAProxy, Envoy, Traefik
  • Avyon kontwòl: Istio, Nelson, SmartStack

Olye ke yo antre nan yon analiz apwofondi nan chak nan solisyon ki anwo yo, mwen pral yon ti tan adrese kèk nan pwen yo ke mwen kwè ki lakòz anpil nan konfizyon nan ekosistèm nan kounye a.

Linkerd se te youn nan premye sèvè prokurasyon avyon done pou may sèvis la nan kòmansman ane 2016 e li te fè yon travay kokenn nan sansibilizasyon ak atansyon sou modèl konsepsyon may sèvis la. Apeprè 6 mwa apre sa, Envoy te rantre nan Linkerd (byenke li te avèk Lyft depi fen 2015). Linkerd ak Envoy se de pwojè ki pi souvan mansyone lè n ap diskite sou may sèvis yo.

Istio te anonse nan mwa me 2017. Objektif pwojè Istio yo sanble anpil ak plan kontwòl pwolonje yo montre nan figi 3. Anvwaye pou Istio se prokurasyon default la. Kidonk, Istio se avyon kontwòl, ak Envoy se avyon done. Nan yon ti tan, Istio te pwodwi anpil eksitasyon, ak lòt avyon done yo te kòmanse entegre kòm yon ranplasman pou Envoy (tou de Linkerd ak NGINX te demontre entegrasyon ak Istio). Lefèt ke diferan avyon done yo ka itilize nan menm plan kontwòl la vle di ke avyon an kontwòl ak avyon an done yo pa nesesèman byen sere makonnen. Yon API tankou API jenerik avyon done Envoy ka fòme yon pon ant de pati nan sistèm nan.

Nelson ak SmartStack ede plis ilistre separasyon avyon kontwòl la ak avyon done a. Nelson itilize Envoy kòm prokurasyon li epi li bati yon avyon kontwòl serye pou may sèvis la ki baze sou pil HashiCorp la, i.e. Nomad, elatriye. SmartStack te petèt premye nan yon nouvo vag sèvis may. SmartStack bati yon avyon kontwòl alantou HAProxy oswa NGINX, ki demontre kapasite nan dekouple avyon kontwòl la soti nan may sèvis la soti nan avyon an done.

Achitekti mikwosèvis ak yon may sèvis ap pran plis ak plis atansyon (byen!), ak plis ak plis pwojè ak machann yo ap kòmanse travay nan direksyon sa a. Pandan kèk ane kap vini yo nou pral wè anpil inovasyon nan tou de avyon an done ak avyon an kontwòl, osi byen ke plis melanje nan diferan eleman. Finalman, achitekti mikwosèvis yo ta dwe vin pi transparan ak majik (?) pou operatè a.
Nou swete ke mwens ak mwens irite.

Prensip kle yo

  • Yon may sèvis konsiste de de pati diferan: avyon an done ak avyon an kontwòl. Tou de eleman yo obligatwa, epi san yo pa sistèm lan pa pral travay.
  • Tout moun se abitye ak avyon an kontwòl, ak nan pwen sa a, avyon an kontwòl ta ka ou!
  • Tout avyon done konpetisyon youn ak lòt sou karakteristik, pèfòmans, configurability, ak ekstansibilite.
  • Tout avyon kontwòl konpetisyon youn ak lòt nan karakteristik, konfigirasyon, ekstansibilite, ak fasilite nan itilize.
  • Yon plan kontwòl ka genyen bon abstrè ak API pou plizyè avyon done ka itilize.

Sous: www.habr.com

Add nouvo kòmantè