Serivisy mesh data fiaramanidina vs. fiaramanidina fanaraha-maso

Hey Habr! Atolotro ho anareo ny fandikana ilay lahatsoratra "Fiara angon-drakitra momba ny serivisy vs fiaramanidina fanaraha-maso" ny mpanoratra Matt Klein.

Serivisy mesh data fiaramanidina vs. fiaramanidina fanaraha-maso

Tamin'ity indray mitoraka ity dia "naniry sy nandika" ny famaritana ny singa roa amin'ny serivisy aho, ny fiaramanidina data ary ny fiaramanidina fanaraha-maso. Ity famaritana ity dia toa azoko sy nahaliana indrindra, ary ny tena zava-dehibe dia nitarika ho amin'ny fahatakarana ny hoe "Ilaina ve izany?"

Satria nitombo be ny hevitra momba ny "Service mesh" tato anatin'ny roa taona farany (Lahatsoratra tany am-boalohany 10 Oktobra 2017) ary nitombo ny isan'ny mpandray anjara tao amin'ny habaka, dia nahita fitomboana mifanentana amin'ny fisafotofotoana eo amin'ny rehetra aho. fiaraha-monina teknolojia momba ny fampitahana sy fampifanoherana vahaolana samihafa.

Ny toe-javatra no fintinina indrindra amin'ireto andiana sioka manaraka ireto izay nosoratako tamin'ny volana Jolay:

Misafotofoto amin'ny serivisy #1: Linkerd ~ = Nginx ~ = Haproxy ~ = Envoy. Tsy misy mitovy amin'i Istio amin'izy ireo. Istio dia zavatra hafa tanteraka. 1 /

Ny voalohany dia fiaramanidina data tsotra. Tsy manao na inona na inona izy ireo. Tokony ho ao anatin'ny toe-po kokoa izy ireo. 2/

Istio dia ohatra iray amin'ny fiaramanidina fanaraha-maso izay mampifandray ny ampahany. Ity dia sosona iray hafa. /tapitra

Ireo bitsika teo aloha dia manonona tetik'asa maro samihafa (Linkerd, NGINX, HAProxy, Envoy, ary Istio), fa ny tena zava-dehibe dia mampiditra ny hevitra ankapobeny momba ny fiaramanidina data, ny serivisy serivisy ary ny fiaramanidina fanaraha-maso. Amin'ity lahatsoratra ity, hihemotra aho ary hiresaka momba ny tiako holazaina amin'ny teny hoe "fiaramanidina data" sy "fiaramanidina fanaraha-maso" amin'ny ambaratonga avo dia avo, ary avy eo dia hiresaka momba ny fomba ampiharana ireo teny ireo amin'ireo tetikasa voalaza ao amin'ny bitsika.

Inona no atao hoe mesh serivisy?

Serivisy mesh data fiaramanidina vs. fiaramanidina fanaraha-maso
Sary 1: Topimaso mesh serivisy

1 Figure mampiseho ny foto-kevitry ny harato serivisy amin'ny ambaratonga fototra indrindra. Misy vondrona serivisy efatra (AD). Ny ohatra serivisy tsirairay dia mifandray amin'ny mpizara proxy eo an-toerana. Ny fifamoivoizana amin'ny tambajotra rehetra (HTTP, REST, gRPC, Redis, sns.) avy amin'ny ohatra iray amin'ny fampiharana dia alefa amin'ny proxy eo an-toerana mankany amin'ireo vondron'asa serivisy ivelany mifanaraka amin'izany. Amin'izany fomba izany, ny ohatra fampiharana dia tsy mahafantatra ny tambajotra manontolo ary mahafantatra ny proxy eo an-toerana ihany. Raha ny marina, nesorina tamin'ny serivisy ny tambajotran'ny rafitra zaraina.

Data fiaramanidina

Ao amin'ny harato serivisy, ny mpizara proxy misy eo an-toerana ho an'ny fampiharana dia manao ireto asa manaraka ireto:

  • Fahitana serivisy. Inona ny serivisy/fampiharana azo alaina amin'ny fangatahanao?
  • Fanamarinana ara-pahasalamana. Moa ve salama tsara sy vonona hanaiky ny fifamoivoizana amin'ny tambajotra ve ireo trangan'asa naverina tamin'ny alalan'ny fikarohana serivisy? Ity dia mety ahitana ny fisavana ara-pahasalamana mavitrika (oh: valin-kafatra / fitsirihana ara-pahasalamana) sy passive (ohatra ny fampiasana fahadisoana 3xx in-5 misesy ho famantarana ny toetry ny serivisy tsy salama).
  • tambazotra. Rehefa mahazo fangatahana "/foo" avy amin'ny serivisy REST, sampana serivisy inona no tokony halefa ny fangatahana?
  • Load balancing. Raha vantany vao voafantina ny klustern'ny serivisy mandritra ny fandalovana, amin'ny ohatra serivisy inona no tokony halefa ny fangatahana? Amin'ny fe-potoana inona? Amin'ny toe-javatra manapaka circuit inona? Raha tsy nahomby ny fangatahana, tokony haverina ve izany?
  • Fanamarinana sy fanomezan-dàlana. Ho an'ny fangatahana ho avy, afaka hamantatra/ahazoana alalana ve ny serivisy antso amin'ny alàlan'ny mTLS na mekanika hafa? Raha ekena / nahazo alalana, azo atao ve ny miantso ny hetsika nangatahana (endpoint) amin'ny serivisy sa tokony haverina ny valiny tsy voamarina?
  • Observability. Ny antontan'isa amin'ny antsipiriany, ny logs/logs, ary ny angona trace zaraina dia tokony hatsangana ho an'ny fangatahana tsirairay mba ahafahan'ny mpandraharaha mahazo ny fizotry ny fifamoivoizana mizara sy ny olana momba ny debugging rehefa mitranga izany.

Ny fiaramanidina data dia tompon'andraikitra amin'ny teboka rehetra teo aloha ao amin'ny mesh serivisy. Raha ny marina, ny proxy eo an-toerana amin'ny serivisy (sidecar) dia ny fiaramanidina data. Raha lazaina amin'ny teny hafa, ny fiaramanidina angon-drakitra dia tompon'andraikitra amin'ny fandefasana, fandefasana ary fanaraha-maso ny fonosan'ny tambajotra rehetra alefa na avy amin'ny serivisy iray.

Ny fiaramanidina fanaraha-maso

Mahagaga (?) ny abstraction tambajotra izay omen'ny proxy eo an-toerana ao amin'ny fiaramanidina data. Na izany aza, ahoana no ahafantaran'ny proxy ny lalana "/foo" mankany amin'ny serivisy B? Ahoana no fomba ampiasana ny angon-drakitra momba ny serivisy izay feno fangatahana proxy? Ahoana no amboarina ny masontsivana ho an'ny fampifandanjana entana, ny fe-potoana, ny fanapahana ny faritra, sns.? Ahoana ny fametrahana fampiharana amin'ny alàlan'ny fomba manga/maitso na ny fomba fifindrana fifamoivoizana mahafinaritra? Iza no manitsy ny firafitry ny fanamarinana sy ny fanomezan-dàlana manerana ny rafitra?

Ireo entana rehetra voalaza etsy ambony ireo dia eo ambany fifehezan'ny fiaramanidina fanaraha-maso ny mesh serivisy. Ny fiaramanidina fanaraha-maso dia maka andiana proxy tsy misy fanjakana mitoka-monina ary mamadika azy ireo ho rafitra mizara.

Heveriko fa ny antony mahatonga ny teknôlôjia maro hahita ny hevitra misaraka momba ny fiaramanidina data sy ny fiaramanidina mifehy dia satria ho an'ny ankamaroan'ny olona dia mahazatra ny fiaramanidina data raha vahiny / tsy takatry ny saina ny fiaramanidina fanaraha-maso. Efa ela izahay no niara-niasa tamin'ny router sy switches physique. Fantatsika fa mila mandeha avy any amin'ny teboka A mankany amin'ny teboka B ny fonosana/fangatahana ary afaka mampiasa fitaovana sy rindrambaiko hanaovana izany isika. Ny taranaka vaovaon'ny proxy rindrambaiko dia dikan-teny raitra fotsiny amin'ny fitaovana efa nampiasainay hatry ny ela.

Serivisy mesh data fiaramanidina vs. fiaramanidina fanaraha-maso
Sary 2: fiaramanidina mifehy ny olombelona

Na izany aza, efa ela no nampiasa fiaramanidina fanaraha-maso izahay, na dia mety tsy hampifandray ity ampahany amin'ny rafitra ity amin'ny singa teknolojia rehetra aza ny ankamaroan'ny mpandraharaha amin'ny tambajotra. Tsotra ny antony:
Ny ankamaroan'ny fiaramanidina fanaraha-maso ampiasaina ankehitriny dia... isika.

amin'ny isa 2 mampiseho ilay antsoiko hoe “fiaramanidina mifehy ny olombelona”. Amin'ity karazana fanaparitahana ity, izay mbola fahita matetika, ny operateur olombelona saro-kenatra angamba dia mamorona configurations static - mety amin'ny alàlan'ny script - ary mametraka azy ireo amin'ny alàlan'ny dingana manokana amin'ny proxy rehetra. Ny proxy dia manomboka mampiasa ity fanamafisana ity ary manomboka manodina ny fiaramanidina data amin'ny alàlan'ny fanovana nohavaozina.

Serivisy mesh data fiaramanidina vs. fiaramanidina fanaraha-maso
Sary 3: Fiaramanidina fanaraha-maso harato serivisy

amin'ny isa 3 mampiseho ny fiaramanidina fanaraha-maso "lava" amin'ny harato serivisy. Izy io dia ahitana ireto ampahany manaraka ireto:

  • Ny olombelona: Mbola misy olona (enga anie tsy ho tezitra loatra) mandray fanapahan-kevitra avo lenta momba ny rafitra iray manontolo.
  • Fifehezana fiaramanidina UI: Mifandray amin'ny karazana interface tsara sasany ny olona iray mba hifehezana ny rafitra. Mety ho vavahadin-tranonkala, fampiharana baiko (CLI), na interface hafa. Amin'ny fampiasana ny mpampiasa interface tsara, ny mpandraharaha dia afaka miditra amin'ny rafitra fanamafisam-peo manerantany toy ny:
    • Fanaraha-maso ny fandefasana, fifindrana fifamoivoizana manga/maitso sy/na miandalana
    • Safidy fanamarinana sy fanomezan-dàlana
    • Famaritan'ny tabilao fandrindrana, ohatra rehefa mangataka fampahalalana momba ny "/foo" momba ny zava-mitranga ny application A
    • Fanelanelanana load balancer, toy ny fiatoan'ny fotoana, ny andrana indray, ny firafitry ny fizarazarana, sns.
  • Mpandrindra ny enta-mavesatra: Ny serivisy dia atao amin'ny fotodrafitrasa amin'ny alàlan'ny karazana rafitra fandrindrana/orkestra, toy ny Kubernetes na Nomad. Ny mpandrindra dia tompon'andraikitra amin'ny fametrahana ny serivisy miaraka amin'ny proxy eo an-toerana.
  • Fahitana serivisy. Rehefa manomboka sy atsahatra ny fotoanan'ny serivisy ny mpandrindra dia mitatitra ny toetry ny fahasalamana amin'ny rafitra fitadiavana serivisy.
  • Sidecar proxy configuration APIs : Ny proxy eo an-toerana dia manala ny fanjakana avy amin'ny singa rafitra isan-karazany amin'ny alàlan'ny modely tsy miovaova tsy misy fitsabahan'ny mpandraharaha. Ny rafitra iray manontolo, ahitana ny serivisy rehetra mandeha amin'izao fotoana izao sy ny mpizara proxy eo an-toerana, dia mifamatotra amin'ny tontolo iainana iray. Ohatra iray amin'ny fomba fiasan'izany amin'ny fampiharana ny API fiaramanidina data manerantany an'ny Envoy.

Amin'ny ankapobeny, ny tanjon'ny fiaramanidina fanaraha-maso dia ny fametrahana ny politika izay eken'ny fiaramanidina data amin'ny farany. Ny fiaramanidina fanaraha-maso mandroso kokoa dia hanaisotra ampahany bebe kokoa amin'ny rafitra sasany amin'ny mpandraharaha ary mitaky fampandehanana kely kokoa, raha toa ka miasa tsara izy ireo!...

Ny fiaramanidina data sy ny fiaramanidina fanaraha-maso. Fiaramanidina data vs. famintinana fiaramanidina fanaraha-maso

  • Serivisy mesh data fiaramanidina: Misy fiantraikany amin'ny fonosana/fangatahana rehetra ao amin'ny rafitra. Tompon'andraikitra amin'ny fitadiavana fampiharana/serivisy, fitsirihana ara-pahasalamana, zotra, fifandanjana entana, fanamarinana/fahazoan-dalana ary fanaraha-maso.
  • Fiaramanidina fanaraha-maso mesh serivisy: Manome politika sy fandrindrana ho an'ny fiaramanidina data mandeha rehetra ao anatin'ny tambajotran'ny serivisy. Tsy mikasika fonosana/fangatahana amin'ny rafitra. Ny fiaramanidina fanaraha-maso dia mamadika ny fiaramanidina data rehetra ho rafitra mizara.

Ny tontolon'ny tetikasa ankehitriny

Rehefa azo ny fanazavana etsy ambony, andeha hojerentsika ny toe-javatra ankehitriny amin'ny tetikasa serivisy mesh.

  • Data fiaramanidina: Linkerd, NGINX, HAProxy, Envoy, Traefik
  • Fanaraha-maso fiaramanidina: Istio, Nelson, SmartStack

Raha tokony hiditra amin'ny famakafakana lalina ny tsirairay amin'ireo vahaolana etsy ambony aho, dia hiresaka fohifohy ny sasany amin'ireo teboka izay inoako fa miteraka fisafotofotoana betsaka amin'ny tontolo iainana amin'izao fotoana izao.

Linkerd dia iray amin'ireo mpizara proxy fiaramanidina data voalohany ho an'ny serivisy serivisy tamin'ny fiandohan'ny taona 2016 ary nanao asa mahafinaritra tamin'ny fanentanana sy ny fifantohana amin'ny modely famolavolana mesh serivisy. Tokony ho 6 volana teo ho eo taorian'izay dia nanatevin-daharana an'i Linkerd i Envoy (na dia niaraka tamin'i Lyft aza izy hatramin'ny faran'ny taona 2015). Linkerd sy Envoy no tetikasa roa resahina matetika rehefa miresaka momba ny serivisy serivisy.

Istio dia nambara tamin'ny Mey 2017. Ny tanjon'ny tetikasa Istio dia mitovy amin'ny fiaramanidina fanaraha-maso lavitra aseho ao isa 3. Envoy for Istio no proxy default. Noho izany, Istio no fiaramanidina fanaraha-maso, ary Envoy no fiaramanidina data. Tao anatin'ny fotoana fohy, niteraka fientanentanana be i Istio, ary nanomboka nampidirina ho solon'ny Envoy ny fiaramanidina data hafa (na Linkerd sy NGINX dia samy naneho ny fampidirana tamin'i Istio). Ny fisian'ny fiaramanidina data samihafa azo ampiasaina ao anatin'ny fiaramanidina fanaraha-maso iray ihany dia midika fa tsy voatery mifamatotra mafy ny fiaramanidina fanaraha-maso sy ny fiaramanidina data. Ny API iray toy ny Envoy's generic data plane API dia afaka mamorona tetezana eo anelanelan'ny ampahany roa amin'ny rafitra.

Nelson sy SmartStack dia manampy amin'ny fanehoana bebe kokoa ny fisarahan'ny fiaramanidina fanaraha-maso sy ny fiaramanidina data. Mampiasa ny Envoy ho solony i Nelson ary manangana fiaramanidina fanaraha-maso azo antoka ho an'ny mesh serivisy mifototra amin'ny stack HashiCorp, izany hoe. Nomad, sns. SmartStack angamba no voalohany tamin'ny onjam-pifandraisana vaovao. SmartStack dia manangana fiaramanidina fanaraha-maso manodidina ny HAProxy na NGINX, mampiseho ny fahafahana manaisotra ny fiaramanidina fanaraha-maso amin'ny serivisy serivisy amin'ny fiaramanidina data.

Ny maritrano microservice miaraka amin'ny harato serivisy dia mihamitombo hatrany (ara-drariny!), Ary mihamaro ny tetikasa sy ny mpivarotra manomboka miasa amin'io lalana io. Ao anatin'ny taona vitsivitsy ho avy dia hahita fanavaozana be dia be ao amin'ny fiaramanidina data sy ny fiaramanidina fanaraha-maso, ary koa ny fampifangaroana singa samihafa. Amin'ny farany, ny maritrano microservice dia tokony ho lasa mangarahara sy mahagaga (?) ho an'ny mpandraharaha.
Antenaina fa hihena hatrany ny sosotra.

Takeaways lehibe

  • Ny harato serivisy dia misy faritra roa samy hafa: ny fiaramanidina data sy ny fiaramanidina fanaraha-maso. Samy ilaina ny singa roa, ary raha tsy misy azy ireo dia tsy mandeha ny rafitra.
  • Fantatry ny rehetra ny fiaramanidina fanaraha-maso, ary amin'izao fotoana izao, ny fiaramanidina fanaraha-maso dia mety ho anao!
  • Ny fiaramanidina data rehetra dia mifaninana amin'ny endri-javatra, ny fampisehoana, ny configurability ary ny fanitarana.
  • Ny fiaramanidina fanaraha-maso rehetra dia mifaninana amin'ny endri-javatra, ny configurability, ny fanitarana ary ny mora ampiasaina.
  • Ny fiaramanidina fanaraha-maso iray dia afaka mirakitra ny abstraction marina sy ny API mba ahafahana mampiasa fiaramanidina data marobe.

Source: www.habr.com

Add a comment