Unsa ang Service Mesh?

Hello again!.. Sa bisperas sa pagsugod sa kurso "Arkitekto sa Software" Nag-andam kami og laing mapuslanong hubad.

Unsa ang Service Mesh?

Ang usa ka service mesh usa ka ma-configure, ubos nga latency nga layer sa imprastraktura nga gikinahanglan aron madumala ang daghang mga volume sa inter-process nga komunikasyon nga nakabase sa network tali sa mga interface sa aplikasyon programming (API). Ang Service Mesh makahimo sa paspas, kasaligan ug luwas nga komunikasyon tali sa containerized ug kanunay nga ephemeral nga mga serbisyo sa imprastraktura sa aplikasyon. Naghatag ang Service Mesh og mga kapabilidad sama sa pagdiskubre sa serbisyo, pagbalanse sa load, pag-encrypt, transparency, pagsubay, pag-authenticate ug pagtugot, ug suporta sa pattern sa auto-shutdown (circuit breaker).
Ang usa ka service mesh kasagarang gipatuman pinaagi sa paghatag sa matag serbisyo sa usa ka proxy nga pananglitan, nga gitawag Sidecar. Sidecar pagdumala sa mga komunikasyon tali sa mga serbisyo, pagmonitor ug pagsulbad sa mga isyu sa seguridad, nga mao, ang tanan nga mahimong makuha gikan sa indibidwal nga mga serbisyo. Niining paagiha, ang mga developers makasulat, makamintinar, ug makaalagad sa code sa aplikasyon sa mga serbisyo, ug ang mga tigdumala sa sistema makatrabaho uban sa Service Mesh ug makadagan sa aplikasyon.

Ang Istio gikan sa Google, IBM ug Lyft sa pagkakaron mao ang labing inila nga arkitektura sa mesh sa serbisyo. Ug ang Kubernetes, nga orihinal nga gihimo sa Google, mao na karon ang bugtong container orchestration framework nga gisuportahan ni Istio. Ang mga tigbaligya naningkamot sa paghimo sa gisuportahan sa komersyo nga mga bersyon sa Istio. Makapainteres nga tan-awon kung unsa nga bag-ong mga butang ang ilang madala sa open source nga proyekto.

Bisan pa, ang Istio dili lamang ang kapilian samtang ang ubang mga pagpatuman sa Serbisyo Mesh gipalambo. Sumbanan sidecar proxy mao ang labing popular nga pagpatuman, ingon nga mahukman sa mga proyekto nga Buoyant, HashiCorp, Solo.io ug uban pa. Adunay usab mga alternatibong arkitektura: ang toolkit sa teknolohiya sa Netflix usa sa mga pamaagi diin ang pag-andar sa Serbisyo Mesh gipatuman pinaagi sa mga librarya sa Ribbon, Hysterix, Eureka, Archaius, ingon man mga platform sama sa Azure Service Fabric.

Ang Service Mesh adunay kaugalingon usab nga terminolohiya alang sa mga sangkap ug gimbuhaton sa serbisyo:

  • Balay sa orkestra sa sudlanan. Samtang nagkadaghan ang mga sudlanan nga gidugang sa imprastraktura sa aplikasyon, kinahanglan ang usa ka bulag nga himan alang sa pag-monitor ug pagdumala sa mga sulud - usa ka balangkas sa orkestra sa sulud. Ang Kubernetes hugot nga nag-okupar niini nga niche, mao nga bisan ang mga nag-unang kakompetensya niini nga Docker Swarm ug Mesosphere DC/OS nagtanyag og integrasyon sa Kubernetes isip alternatibo.
  • Mga Serbisyo ug Mga Instance (Kubernetes Pods). Ang usa ka pananglitan usa ka nagdagan nga kopya sa usa ka microservice. Usahay ang usa ka pananglitan usa ka sudlanan. Sa Kubernetes, ang usa ka instance naglangkob sa usa ka gamay nga grupo sa mga independenteng sudlanan nga gitawag og pod. Ang mga kliyente panagsa ra nga maka-access sa usa ka instance o pod direkta; mas kasagaran, sila maka-access sa usa ka serbisyo, nga usa ka set sa parehas, scalable ug fault-tolerant nga mga instances o pods (replicas).
  • Sidecar Proxy. Ang Sidecar Proxy nagtrabaho sa usa ka higayon o pod. Ang punto sa Sidecar Proxy mao ang pag-ruta o proxy nga trapiko gikan sa sudlanan nga gigamit niini ug pagbalik sa trapiko. Ang Sidecar nakig-uban sa ubang mga Sidecar Proxies ug gidumala sa usa ka balangkas sa orkestra. Daghang mga pagpatuman sa Serbisyo Mesh naggamit sa Sidecar Proxy aron ma-intercept ug madumala ang tanan nga trapiko sa sulod ug gawas sa usa ka pananglitan o pod.
  • Pagkaplag sa Serbisyo. Kung ang usa ka instance kinahanglan nga makigkomunikar sa lain nga serbisyo, kinahanglan nga makit-an (makadiskubre) usa ka himsog ug magamit nga pananglitan sa lain nga serbisyo. Kasagaran, ang instance naghimo sa DNS lookups. Ang balangkas sa orkestra sa sudlanan nagmintinar sa usa ka lista sa mga higayon nga andam sa pagdawat sa mga hangyo ug naghatag usa ka interface alang sa mga pangutana sa DNS.
  • Pagbalanse sa load. Kadaghanan sa container orchestration frameworks naghatag og load balancing sa layer 4 (transportasyon). Ang Service Mesh nagpatuman sa mas komplikado nga load balancing sa layer 7 (aplikasyon nga lebel), dato sa mga algorithm ug mas epektibo sa pagdumala sa trapiko. Mahimong mabag-o ang mga setting sa pagbalanse sa load gamit ang API, nga magtugot kanimo sa pag-orkestrate sa mga blue-green o canary nga pagdeploy.
  • Encryption. Ang Service Mesh mahimong ma-encrypt ug ma-decrypt ang mga hangyo ug tubag, nga makuha kini nga palas-anon gikan sa mga serbisyo. Ang Service Mesh mahimo usab nga mopauswag sa performance pinaagi sa pag-prioritize o paggamit pag-usab sa kasamtangan nga padayon nga koneksyon, pagkunhod sa panginahanglan alang sa mahal nga kalkulasyon aron makahimo og bag-ong mga koneksyon. Ang labing kasagaran nga pagpatuman sa pag-encrypt sa trapiko mao ang mutual nga TLS (mTLS), diin ang usa ka public key infrastructure (PKI) naghimo ug nag-apod-apod sa mga sertipiko ug mga yawe alang sa paggamit sa Sidecar Proxy.
  • Authentication ug Authorization. Ang Service Mesh mahimong mag-awtorisa ug magpamatuod sa mga hangyo nga gihimo gikan sa gawas o sa sulod sa aplikasyon, nagpadala lamang sa mga gi-validate nga mga hangyo sa mga higayon.
  • Suporta sa pattern sa auto shutdown. Nagsuporta sa Serbisyo Mesh pattern sa auto shutdown, nga naglain sa dili maayo nga mga higayon ug dayon anam-anam nga ibalik kini sa pundok sa mga himsog nga mga higayon kung gikinahanglan.

Ang bahin sa usa ka Service Mesh nga aplikasyon nga nagdumala sa trapiko sa network tali sa mga higayon gitawag data eroplano. Paghimo ug pag-deploy sa configuration nga nagkontrol sa pamatasan data eroplano, gihimo gamit ang usa ka bulag Kontrola nga eroplano. Kontrola nga eroplano kasagaran naglakip o gidesinyo aron makonektar sa usa ka API, CLI, o GUI aron makontrol ang aplikasyon.

Unsa ang Service Mesh?
Ang Control Plane sa Service Mesh nag-apod-apod sa configuration tali sa Sidecar Proxy ug sa Data Plane.

Ang arkitektura sa Serbisyo Mesh kanunay nga gigamit aron masulbad ang mga komplikado nga problema sa operasyon gamit ang mga sulud ug microservice. Mga payunir sa natad microservices mga kompanya sama sa Lyft, Netflix ug Twitter, nga naghatag ug lig-on nga serbisyo sa milyon-milyon nga tiggamit sa tibuuk kalibutan. (Ania ang usa ka detalyado nga pagtan-aw sa pipila sa mga hagit sa arkitektura nga giatubang sa Netflix.). Alang sa dili kaayo lisud nga mga aplikasyon, ang mas yano nga mga arkitektura lagmit igo na.

Ang arkitektura sa Serbisyo Mesh dili tingali ang tubag sa tanan nga operasyon sa aplikasyon ug mga isyu sa pagpadala. Ang mga arkitektura ug mga developers adunay usa ka dako nga arsenal sa mga himan, ug usa lamang niini ang usa ka martilyo, nga, taliwala sa daghang mga buluhaton, kinahanglan nga masulbad ang usa lamang - ang pagmartilyo sa mga lansang. Microservices Reference Architecture gikan sa NGINX, pananglitan, naglakip sa pipila ka lain-laing mga modelo nga naghatag sa usa ka continuum sa mga pamaagi sa pagsulbad sa mga problema sa paggamit sa microservices.

Ang mga elemento nga nagkahiusa sa usa ka arkitektura sa Service Mesh, sama sa NGINX, mga sudlanan, Kubernetes, ug mga microservice isip usa ka pamaagi sa arkitektura, mahimong parehas nga produktibo sa dili-Serbisyo nga mga pagpatuman sa Mesh. Pananglitan, ang Istio gidisenyo isip usa ka kompleto nga arkitektura nga mesh sa serbisyo, apan ang modularity niini nagpasabut nga ang mga developers makapili ug makapatuman lamang sa mga sangkap sa teknolohiya nga ilang gikinahanglan. Uban niini sa hunahuna, kini importante sa pagpalambo sa usa ka tin-aw nga pagsabot sa Service Mesh konsepto, bisan kon kamo dili sigurado nga kamo sa walay katapusan makahimo sa hingpit nga pagpatuman niini sa imong aplikasyon.

Modular monoliths ug DDD

Source: www.habr.com

Idugang sa usa ka comment