Mesh ya Huduma ni nini?

Habari tena!.. Katika mkesha wa kuanza kwa kozi "Msanifu wa programu" Tumetayarisha tafsiri nyingine yenye manufaa.

Mesh ya Huduma ni nini?

Wavu wa huduma ni safu ya miundombinu inayoweza kusanidiwa, isiyo na kasi ya chini ambayo inahitajika kushughulikia idadi kubwa ya mawasiliano baina ya mchakato kati ya mtandao kati ya violesura vya programu (API). Service Mesh huwezesha mawasiliano ya haraka, ya kutegemewa na salama kati ya huduma za miundombinu ya utumaji na mara nyingi za muda mfupi. Service Mesh hutoa uwezo kama vile ugunduzi wa huduma, kusawazisha upakiaji, usimbaji fiche, uwazi, ufuatiliaji, uthibitishaji na uidhinishaji, na usaidizi wa muundo wa kuzima kiotomatiki (mvunjaji wa mzunguko).
Wavu wa huduma kawaida hutekelezwa kwa kutoa kila mfano wa huduma na mfano wa proksi, unaoitwa Sidecar. Sidecar kushughulikia mawasiliano kati ya huduma, kufuatilia na kutatua masuala ya usalama, yaani, kila kitu ambacho kinaweza kufutwa kutoka kwa huduma za kibinafsi. Kwa njia hii, wasanidi programu wanaweza kuandika, kudumisha, na kutumikia msimbo wa programu katika huduma, na wasimamizi wa mfumo wanaweza kufanya kazi na Mesh ya Huduma na kuendesha programu.

Istio kutoka Google, IBM na Lyft kwa sasa ni usanifu maarufu zaidi wa matundu ya huduma. Na Kubernetes, ambayo ilitengenezwa hapo awali katika Google, sasa ndiyo mfumo pekee wa uandaaji wa chombo unaoungwa mkono na Istio. Wachuuzi wanajaribu kuunda matoleo yanayotumika kibiashara ya Istio. Itafurahisha kuona ni vitu gani vipya wanaweza kuleta kwenye mradi wa chanzo huria.

Walakini, Istio sio chaguo pekee kwani utekelezaji mwingine wa Mesh ya Huduma unatengenezwa. Muundo sidecar proxy ni utekelezaji maarufu zaidi, kama unavyoweza kutathminiwa na miradi ya Buoyant, HashiCorp, Solo.io na mingineyo. Pia kuna usanifu mbadala: zana ya teknolojia ya Netflix ni mojawapo ya mbinu ambapo utendaji wa Mesh ya Huduma hutekelezwa kupitia Ribbon, Hysterix, Eureka, maktaba ya Archaius, na pia majukwaa kama vile Azure Service Fabric.

Service Mesh pia ina istilahi yake ya vipengele na kazi za huduma:

  • Mfumo wa uandaaji wa kontena. Kadiri kontena nyingi zaidi zinavyoongezwa kwenye miundombinu ya utumaji maombi, kuna haja ya chombo tofauti cha ufuatiliaji na udhibiti wa vyombo - mfumo wa uandaaji wa kontena. Kubernetes imechukua niche hii kwa uthabiti, kiasi kwamba hata washindani wake wakuu Docker Swarm na Mesosphere DC/OS hutoa ushirikiano na Kubernetes kama njia mbadala.
  • Huduma na Matukio (Kubernetes Pods). Mfano ni nakala moja inayoendesha ya huduma ndogo. Wakati mwingine mfano mmoja ni chombo kimoja. Katika Kubernetes, mfano unajumuisha kikundi kidogo cha vyombo huru vinavyoitwa ganda. Wateja ni nadra sana kufikia mfano au ganda moja kwa moja; mara nyingi zaidi, wanapata huduma, ambayo ni seti ya matukio au maganda yanayofanana, yanayoweza kupanuka na yanayostahimili kasoro (replicas).
  • Wakala wa Sidecar. Wakala wa Sidecar hufanya kazi na mfano mmoja au ganda. Madhumuni ya Wakala wa Sidecar ni kuelekeza au trafiki ya seva mbadala inayotoka kwenye chombo kinachofanyia kazi na kurudisha trafiki. Sidecar inaingiliana na Wawakilishi wengine wa Sidecar na inasimamiwa na mfumo wa okestra. Utekelezaji mwingi wa Mesh ya Huduma hutumia Wakala wa Sidecar kukamata na kudhibiti trafiki yote ya kuingia na kutoka kwa tukio au ganda.
  • Ugunduzi wa Huduma. Wakati tukio linahitaji kuwasiliana na huduma nyingine, linahitaji kupata (kugundua) mfano mzuri na unaopatikana wa huduma nyingine. Kwa kawaida, mfano hufanya utafutaji wa DNS. Mfumo wa upangaji wa kontena hudumisha orodha ya matukio ambayo yako tayari kupokea maombi na hutoa kiolesura cha hoja za DNS.
  • Kusawazisha mzigo. Mifumo mingi ya upangaji wa kontena hutoa kusawazisha mzigo kwenye safu ya 4 (usafiri). Service Mesh hutekeleza kusawazisha mizigo changamano zaidi katika safu ya 7 (kiwango cha maombi), yenye algoriti nyingi na yenye ufanisi zaidi katika kudhibiti trafiki. Mipangilio ya kusawazisha mzigo inaweza kubadilishwa kwa kutumia API, kukuruhusu kupanga uwekaji wa bluu-kijani au canary.
  • Usimbuaji fiche. Service Mesh inaweza kusimba na kusimbua maombi na majibu kwa njia fiche, hivyo kuondoa mzigo huu kutoka kwa huduma. Service Mesh pia inaweza kuboresha utendaji kwa kuweka kipaumbele au kutumia tena miunganisho iliyopo, na hivyo kupunguza hitaji la ukokotoaji wa gharama kubwa ili kuunda miunganisho mipya. Utekelezaji wa kawaida wa usimbaji fiche wa trafiki ni TLS ya pande zote (mTLS), ambapo miundombinu ya ufunguo wa umma (PKI) hutengeneza na kusambaza vyeti na funguo ili zitumiwe na Wakala wa Sidecar.
  • Uthibitishaji na Uidhinishaji. Huduma ya Mesh inaweza kuidhinisha na kuthibitisha maombi yaliyotolewa kutoka nje au ndani ya programu, kutuma maombi yaliyoidhinishwa pekee kwa matukio.
  • Usaidizi wa muundo wa kuzima kiotomatiki. Huduma ya Mesh inasaidia muundo wa kuzima kiotomatiki, ambayo hutenganisha matukio yasiyo ya afya na kisha kuwarudisha hatua kwa hatua kwenye kundi la matukio ya afya inapohitajika.

Sehemu ya programu ya Service Mesh inayodhibiti trafiki ya mtandao kati ya matukio inaitwa Ndege ya Data. Unda na utumie usanidi unaodhibiti tabia Ndege ya Data, inafanywa kwa kutumia tofauti Udhibiti wa Ndege. Udhibiti wa Ndege kawaida inajumuisha au imeundwa kuunganishwa kwa API, CLI, au GUI ili kudhibiti programu.

Mesh ya Huduma ni nini?
Njia ya Kudhibiti katika Wavu wa Huduma husambaza usanidi kati ya Seva Proksi ya Sidecar na Data Plane.

Usanifu wa Mesh ya Huduma mara nyingi hutumiwa kutatua matatizo magumu ya uendeshaji kwa kutumia vyombo na huduma ndogo. Waanzilishi shambani huduma ndogo ndogo ni makampuni kama vile Lyft, Netflix na Twitter, ambayo hutoa huduma thabiti kwa mamilioni ya watumiaji duniani kote. (Hapa kuna mwonekano wa kina wa baadhi ya changamoto za usanifu ambazo Netflix ilikabili.) Kwa programu zisizohitajika sana, usanifu rahisi zaidi utatosha.

Usanifu wa Mesh ya Huduma hauwezekani kuwa jibu kwa masuala yote ya uendeshaji wa programu na uwasilishaji. Wasanifu na watengenezaji wana arsenal kubwa ya zana, na moja tu kati yao ni nyundo, ambayo, kati ya kazi nyingi, lazima kutatua moja tu - misumari ya nyundo. Usanifu wa Marejeleo ya Microservices kutoka NGINX, kwa mfano, inajumuisha mifano kadhaa tofauti ambayo hutoa mwendelezo wa mbinu za kutatua matatizo kwa kutumia huduma ndogo.

Vipengele vinavyokusanyika katika usanifu wa Service Mesh, kama vile NGINX, kontena, Kubernetes, na huduma ndogo kama mbinu ya usanifu, vinaweza kuwa na tija sawa katika utekelezaji usio wa Huduma ya Mesh. Kwa mfano, Istio iliundwa kama usanifu kamili wa matundu ya huduma, lakini urekebishaji wake unamaanisha kuwa wasanidi programu wanaweza kuchagua na kutekeleza tu vipengele vya teknolojia wanavyohitaji. Kwa kuzingatia hili, ni muhimu kukuza ufahamu wazi wa dhana ya Mesh ya Huduma, hata kama huna uhakika kuwa utaweza kuitekeleza kikamilifu katika programu yako.

Modular monoliths na DDD

Chanzo: mapenzi.com

Kuongeza maoni