Msururu wa machapisho kwenye Istio Service Mesh

Tunaanzisha mfululizo wa machapisho yanayoonyesha baadhi ya uwezo mwingi wa Istio Service Mesh yakiunganishwa na Red Hat OpenShift na Kubernetes.

Msururu wa machapisho kwenye Istio Service Mesh

Sehemu ya kwanza, leo:

  • Wacha tueleze wazo la vyombo vya kando vya Kubernetes na tuunde leitmotif ya safu hii ya machapisho: "huna haja ya kubadilisha chochote katika nambari yako".
  • Wacha tujulishe jambo la msingi la Istio - sheria za uelekezaji. Vipengele vingine vyote vya Istio vimejengwa juu yao, kwa kuwa ni sheria zinazokuruhusu kuelekeza trafiki kwa huduma ndogo, kwa kutumia faili za YAML zilizo nje ya msimbo wa huduma. Pia tunazingatia mpango wa kupeleka Canary Deployment. Bonasi ya Mwaka Mpya - masomo 10 ya mwingiliano kwenye Istio


Sehemu ya pili, inakuja hivi karibuni, itakuambia:

  • Jinsi Istio anavyotumia Utoaji wa Dimbwi pamoja na Kivunja Mzunguko na itaonyesha jinsi Istio inakuruhusu kuondoa ganda lililokufa au lisilofanya kazi vizuri kwenye saketi ya kusawazisha.
  • Pia tutaangalia mada ya Kivunja Mzunguko kutoka kwa chapisho la kwanza ili kuona jinsi Istio inaweza kutumika hapa. Tutakuonyesha jinsi ya kuelekeza trafiki na kushughulikia hitilafu za mtandao kwa kutumia faili za usanidi za YAML na amri za wastaafu bila mabadiliko hata kidogo katika msimbo wa huduma.

Sehemu ya tatu:

  • Hadithi kuhusu ufuatiliaji na ufuatiliaji, ambayo tayari imejengewa ndani au imeongezwa kwa urahisi kwenye Istio. Tutakuonyesha jinsi ya kutumia zana kama vile Prometheus, Jaeger, na Grafana pamoja na kuongeza OpenShift ili kudhibiti usanifu wa huduma ndogo kwa urahisi.
  • Tunahama kutoka kwa ufuatiliaji na kushughulikia hitilafu hadi kuziingiza kwenye mfumo kimakusudi. Kwa maneno mengine, tunajifunza jinsi ya kufanya sindano ya kosa bila kubadilisha msimbo wa chanzo, ambayo ni muhimu sana kutoka kwa mtazamo wa kupima - kwa kuwa ukibadilisha msimbo yenyewe kwa hili, kuna hatari ya kuanzisha makosa ya ziada.

Mwishowe, katika chapisho la mwisho kwenye Istio Service Mesh:

  • Twende Upande wa Giza. Kwa usahihi zaidi, tutajifunza kutumia mpango wa Uzinduzi wa Giza, wakati msimbo unatumiwa na kujaribiwa moja kwa moja kwenye data ya uzalishaji, lakini hauathiri uendeshaji wa mfumo kwa njia yoyote. Hapa ndipo uwezo wa Istio wa kugawanya trafiki huja kwa manufaa. Na uwezo wa kupima kwenye data ya uzalishaji wa moja kwa moja bila kuathiri uendeshaji wa mfumo wa kupambana kwa njia yoyote ni njia ya kushawishi zaidi ya uthibitishaji.
  • Kwa kuzingatia Uzinduzi wa Giza, tutakuonyesha jinsi ya kutumia muundo wa Usambazaji wa Canary ili kupunguza hatari na kurahisisha kupata msimbo mpya katika toleo la umma. Usambazaji wa Canary yenyewe ni mbali na mpya, lakini Istio hukuruhusu kutekeleza mpango huu kwa faili rahisi za YAML.
  • Hatimaye, tutakuonyesha jinsi ya kutumia Istio Egress kutoa ufikiaji wa huduma kwa wale walio nje ya makundi yako ili kutumia uwezo wa Istio wakati wa kufanya kazi na Mtandao.

Kwa hivyo, hapa tunaenda ...

Zana za ufuatiliaji na usimamizi wa Istio - kila kitu unachohitaji ili kupanga huduma ndogo katika matundu ya huduma matundu ya huduma.

Istio Service Mesh ni nini

Wavu wa huduma hutekeleza kazi kama vile ufuatiliaji wa trafiki, udhibiti wa ufikiaji, ugunduzi, usalama, uvumilivu wa hitilafu na mambo mengine muhimu kwa kikundi cha huduma. Istio hukuruhusu kufanya haya yote bila mabadiliko kidogo kwa nambari ya huduma zenyewe. Siri ya uchawi ni nini? Istio huambatisha proksi yake kwa kila huduma katika mfumo wa kontena la kando (sidecar ni gari la kando la pikipiki), ambapo trafiki yote kwenye huduma hii hupitia proksi, ambayo, kwa kuongozwa na sera zilizobainishwa, huamua jinsi, lini na kama trafiki hii. inapaswa kufikia huduma kabisa. Istio pia inafanya uwezekano wa kutekeleza mbinu za hali ya juu za DevOps kama vile uwekaji wa canary, vivunja mzunguko, sindano ya makosa na zingine nyingi.

Jinsi Istio inavyofanya kazi na kontena na Kubernetes

Matundu ya huduma ya Istio ni utekelezaji wa kando ya kila kitu kinachohitajika ili kuunda na kudhibiti huduma ndogo: ufuatiliaji, ufuatiliaji, vivunja mzunguko, uelekezaji, kusawazisha mzigo, sindano ya hitilafu, kujaribu tena, kuisha kwa muda, kuakisi, udhibiti wa ufikiaji, kupunguza kiwango na mengine mengi. Na ingawa leo kuna toni ya maktaba za kutekeleza majukumu haya moja kwa moja kwa nambari, ukiwa na Istio unaweza kupata vitu vyote sawa bila kubadilisha chochote kwenye nambari yako.

Kulingana na mfano wa gari la kando, Istio huendesha kwenye kontena ya Linux, ambayo iko katika moja Mabernet-pod yenye huduma inayodhibitiwa na kuingiza na kutoa utendakazi na habari kulingana na usanidi fulani. Tunasisitiza kuwa huu ni usanidi wako mwenyewe, na unaishi nje ya msimbo wako. Kwa hiyo, kanuni inakuwa rahisi zaidi na fupi.

Nini pia ni muhimu ni kwamba sehemu ya uendeshaji ya microservices inageuka kuwa haijaunganishwa kwa njia yoyote na kanuni yenyewe, ambayo ina maana kwamba uendeshaji wao unaweza kuhamishiwa kwa usalama kwa wataalamu wa IT. Kwa kweli, kwa nini msanidi programu anapaswa kuwajibika kwa vivunja mzunguko na sindano ya makosa? Je, ungependa kujibu ndio, lakini uzichakate na kuziunda? Ukiondoa haya yote kutoka kwa msimbo, watayarishaji wa programu wataweza kuzingatia kikamilifu utendakazi wa programu. Na nambari yenyewe itakuwa fupi na rahisi.

Mesh ya huduma

Istio, ambayo hutekeleza utendakazi wa kudhibiti huduma ndogo ndogo nje ya misimbo yao, ni dhana ya Service Mesh. Kwa maneno mengine, ni kikundi kilichoratibiwa cha jozi moja au zaidi zinazounda matundu ya kazi za mtandao.

Jinsi Istio inavyofanya kazi na huduma ndogo

Hivi ndivyo kazi ya vyombo vya kando inaonekana kwa kushirikiana Mabernet ΠΈ Minishift mwonekano wa jicho la ndege: zindua mfano wa Minishift, unda mradi wa Istio (tuuite "mfumo wa istio"), sakinisha na endesha vipengele vyote vinavyohusiana na Istio. Kisha, unapounda miradi na maganda, unaongeza maelezo ya usanidi kwenye utumaji wako, na maganda yako yanaanza kutumia Istio. Mchoro uliorahisishwa unaonekana kama hii:

Msururu wa machapisho kwenye Istio Service Mesh

Sasa unaweza kubadilisha mipangilio ya Istio ili, kwa mfano, kuandaa sindano ya kosa, usaidizi Usambazaji wa Canary au vipengele vingine vya Istio - na yote haya bila kugusa msimbo wa programu zenyewe. Hebu tuseme unataka kuelekeza upya trafiki yote ya wavuti kutoka kwa watumiaji wa mteja wako mkubwa zaidi (Foo Corporation) hadi toleo jipya la tovuti. Ili kufanya hivyo, tengeneza tu sheria ya uelekezaji ya Istio ambayo itatafuta @foocorporation.com kwenye kitambulisho cha mtumiaji na uelekeze ipasavyo. Kwa watumiaji wengine wote, hakuna kitakachobadilika. Wakati huo huo, utajaribu kwa utulivu toleo jipya la tovuti. Na kumbuka, hauitaji kuhusisha watengenezaji hata kidogo kwa hili.

Na utalazimika kulipa sana?

Hapana kabisa. Istio ni haraka sana na imeandikwa ndani Go na inaunda juu kidogo sana. Kwa kuongeza, hasara inayoweza kutokea katika tija ya mtandaoni inarekebishwa na ongezeko la tija ya wasanidi programu. Angalau katika nadharia: usisahau kwamba wakati wa watengenezaji ni muhimu. Kuhusu gharama za programu, Istio ni programu huria, kwa hivyo unaweza kuipata na kuitumia bila malipo.

Mkuu wewe mwenyewe

Timu ya Uzoefu ya Msanidi wa Kofia Nyekundu imeunda mbinu ya kina ya kushughulikia mwongozo na Istio (kwa Kiingereza). Inatumika kwenye Linux, MacOS na Windows, na msimbo unapatikana katika Java na Node.js.

Masomo 10 ya maingiliano kwenye Istio

Block 1 - Kwa Kompyuta

Utangulizi wa Istio
Dakika 30
Hebu tufahamiane na Mesh ya Huduma, tujifunze jinsi ya kusakinisha Istio kwenye kundi la OpenShift Kubernetes.
Anza

Inapeleka huduma ndogo katika Istio
Dakika 30
Tunatumia Istio kusambaza huduma ndogo tatu na Spring Boot na Vert.x.
Anza

Block 2 - ngazi ya kati

Ufuatiliaji na ufuatiliaji katika Istio
Dakika 60
Tutachunguza zana za ufuatiliaji zilizojengewa ndani za Istio, vipimo maalum na OpenTracing kupitia Prometheus na Grafana.
Anza

Uelekezaji rahisi katika Istio
Dakika 60
Jifunze jinsi ya kudhibiti uelekezaji katika Istio kwa kutumia sheria rahisi.
Anza

Sheria za hali ya juu za uelekezaji
Dakika 60
Hebu tuangalie uelekezaji mahiri wa Istio, udhibiti wa ufikiaji, kusawazisha upakiaji na uzuiaji wa viwango.
Anza

Zuia 3 - mtumiaji wa hali ya juu

Sindano ya Makosa katika Istio
Dakika 60
Tunasoma hali za kutoweza kushughulikia katika programu zinazosambazwa, kuunda hitilafu za HTTP na ucheleweshaji wa mtandao, na kujifunza kutumia uhandisi wa machafuko kurejesha mazingira.
Anza

Mvunjaji wa mzunguko katika Istio
Dakika 30
Tunasakinisha Siege kwa tovuti za kupima mfadhaiko na kujifunza jinsi ya kuhakikisha ustahimilivu wa hitilafu kwa kutumia uchezaji wa marudio, kikatiza mzunguko na kutoa kwenye bwawa.
Anza

Egress na Istio
Dakika 10
Tunatumia njia za Egress kuunda sheria za mwingiliano wa huduma za ndani na API na huduma za nje.
Anza

Istio na Kiali
Dakika 15
Jifunze kutumia Kiali kupata muhtasari wa matundu ya huduma na kuchunguza ombi na mtiririko wa data.
Anza

Mutual TLS katika Istio
Dakika 15
Tunaunda Istio Gateway na VirtualService, kisha tunasoma TLS ya pamoja (mTLS) na mipangilio yake kwa undani.
Anza

Block 3.1 - Deep Dive: Istio Service Mesh kwa Microservices

Msururu wa machapisho kwenye Istio Service Mesh
Kitabu kinahusu nini:

  • Mesh ya huduma ni nini?
  • Mfumo wa Istio na jukumu lake katika usanifu wa huduma ndogo.
  • Kutumia Istio kutatua shida zifuatazo:
    • Uvumilivu wa makosa;
    • Uelekezaji;
    • Upimaji wa machafuko;
    • Usalama;
    • Mkusanyiko wa telemetry kwa kutumia ufuatiliaji, vipimo na Grafana.

Pakua kitabu

Mfululizo wa vifungu kwenye meshes za huduma na Istio

Jaribu mwenyewe

Mfululizo huu wa machapisho haukusudiwi kutoa ujio wa kina katika ulimwengu wa Istio. Tunataka tu kukujulisha dhana na labda kukuhimiza kujaribu Istio mwenyewe. Ni bure kabisa kufanya, na Red Hat hutoa zana zote unazohitaji ili kuanza kutumia OpenShift, Kubernetes, vyombo vya Linux, na Istio, ikijumuisha: Jukwaa la Kontena la Wasanidi wa Kofia Nyekundu la OpenShift, mwongozo wetu kwa Istio na rasilimali zingine kwenye yetu microsite kwenye Service Mesh. Usichelewe, anza leo!

Sheria za uelekezaji za Istio: kuelekeza maombi ya huduma mahali wanapohitaji kwenda

openshift ΠΈ Mabernet fanya kazi nzuri ya kushughulikia huduma ndogo ndogo kupitishwa kwa maganda yanayohitajika. Hii ni moja ya sababu za kuwepo kwa Kubernetes - uelekezaji na kusawazisha mzigo. Lakini vipi ikiwa unahitaji njia ya hila na ya kisasa zaidi? Kwa mfano, kwa wakati huo huo kutumia matoleo mawili ya microservice. Sheria za Njia ya Istio zinawezaje kusaidia hapa?

Sheria za uelekezaji ni sheria ambazo huamua uchaguzi wa njia. Bila kujali kiwango cha utata wa mfumo, kanuni ya jumla ya uendeshaji wa sheria hizi inabakia rahisi: maombi yanapitishwa kulingana na vigezo fulani na maadili ya kichwa cha HTTP.
Hebu tuangalie mifano:

Chaguo-msingi la Kubernetes: kidogo "50/50"

Katika mfano wetu, tutaonyesha jinsi ya kutumia wakati huo huo matoleo mawili ya huduma ndogo katika OpenShift, wacha tuwaite v1 na v2. Kila toleo huendeshwa katika ganda lake la Kubernetes, na kwa chaguo-msingi huendesha uelekezaji wa mzunguko wa robin uliosawazishwa. Kila pod hupokea sehemu yake ya maombi kulingana na idadi ya matukio yake ya huduma ndogo, kwa maneno mengine, nakala. Istio hukuruhusu kubadilisha salio hili wewe mwenyewe.

Wacha tuseme tumesambaza matoleo mawili ya huduma yetu ya mapendekezo kwenye OpenShift, recommendation-v1 na recommendation-v2.
Katika Mtini. Kielelezo cha 1 kinaonyesha kuwa kila huduma inapowakilishwa katika tukio moja, huomba mbadala kwa usawa kati yao: 1-2-1-2-... Hivi ndivyo uelekezaji wa Kubernetes unavyofanya kazi kwa chaguo-msingi:

Msururu wa machapisho kwenye Istio Service Mesh

Usambazaji uliopimwa kati ya matoleo

Katika Mtini. Kielelezo cha 2 kinaonyesha kinachotokea ikiwa utaongeza idadi ya nakala za huduma za v2 kutoka moja hadi mbili (hii inafanywa kwa oc scale -replicas=2 deployment/recommendation-v2 amri). Kama unavyoona, maombi kati ya v1 na v2 sasa yamegawanywa katika uwiano wa moja hadi tatu: 1-2-2-1-2-2-…:

Msururu wa machapisho kwenye Istio Service Mesh

Puuza toleo kwa kutumia Istio

Istio hurahisisha kubadilisha usambazaji wa maombi kwa njia tunayohitaji. Kwa mfano, tuma trafiki yote kwa recommendation-v1 pekee ukitumia faili ifuatayo ya Istio yaml:

Msururu wa machapisho kwenye Istio Service Mesh

Hapa unahitaji kulipa kipaumbele kwa hili: pods huchaguliwa kulingana na maandiko. Mfano wetu hutumia lebo v1. Kigezo cha "uzito: 100" kinamaanisha kuwa 100% ya trafiki itaelekezwa kwenye maganda yote ya huduma ambayo yana lebo ya v1.

Usambazaji wa maagizo kati ya matoleo (Usambazaji wa Canary)

Ifuatayo, kwa kutumia kigezo cha uzani, unaweza kuelekeza trafiki kwa ganda zote mbili, ukipuuza idadi ya matukio ya huduma ndogo zinazoendeshwa katika kila moja yao. Kwa mfano, hapa tunaelekeza 90% ya trafiki kwa v1 na 10% hadi v2:

Msururu wa machapisho kwenye Istio Service Mesh

Uelekezaji tofauti kwa watumiaji wa simu

Kwa kumalizia, tutaonyesha jinsi ya kulazimisha trafiki ya mtumiaji wa simu kuelekezwa kwa huduma v2, na kila mtu mwingine kwa v1. Ili kufanya hivyo, tunatumia misemo ya kawaida kuchambua thamani ya wakala wa mtumiaji kwenye kichwa cha ombi:

Msururu wa machapisho kwenye Istio Service Mesh

Sasa ni zamu yako

Mfano wenye misemo ya kawaida ya kuchanganua vichwa unapaswa kukuhimiza kupata matumizi yako mwenyewe ya sheria za uelekezaji za Istio. Kwa kuongezea, uwezekano hapa ni mkubwa sana, kwani maadili ya kichwa yanaweza kuunda katika nambari ya chanzo cha programu.

Na kumbuka kuwa Ops, sio Dev

Kila kitu ambacho tulionyesha katika mifano hapo juu kinafanyika bila mabadiliko kidogo katika msimbo wa chanzo, vizuri, isipokuwa kwa kesi hizo wakati ni muhimu kuzalisha vichwa vya ombi maalum. Istio itakuwa na manufaa kwa watengenezaji, ambao, kwa mfano, wataweza kuitumia katika hatua ya kupima, na kwa wataalamu katika uendeshaji wa mifumo ya IT, ambayo itasaidia sana katika uzalishaji.

Kwa hivyo wacha turudie leitmotif ya safu hii ya machapisho: huhitaji kubadilisha chochote katika nambari yako. Hakuna haja ya kuunda picha mpya au kuzindua vyombo vipya. Haya yote yanatekelezwa nje ya kanuni.

Tumia mawazo yako

Hebu fikiria uwezekano wa uchanganuzi wa vichwa kwa kutumia misemo ya kawaida. Unataka kuelekeza upya mteja wako mkubwa hadi kwa toleo lako maalum huduma ndogo ndogo? Kwa urahisi! Je, unahitaji toleo tofauti kwa kivinjari cha Chrome? Hakuna shida! Unaweza kuelekeza trafiki kulingana na karibu tabia yoyote.

Jaribu mwenyewe

Kusoma kuhusu Istio, Kubernetes na OpenShift ni jambo moja, lakini kwa nini usiguse kila kitu mwenyewe? Timu Mpango wa Wasanidi wa Kofia Nyekundu imeandaa mwongozo wa kina (kwa Kiingereza) ambao utakusaidia kujua teknolojia hizi haraka iwezekanavyo. Mwongozo pia ni chanzo wazi 100%, kwa hivyo huchapishwa kwenye kikoa cha umma. Faili inafanya kazi kwenye macOS, Linux na Windows, na msimbo wa chanzo unapatikana katika matoleo ya Java na node.js (matoleo katika lugha zingine yanakuja hivi karibuni). Fungua tu hazina inayolingana ya git kwenye kivinjari chako Onyesho la Msanidi wa Kofia Nyekundu.

Katika chapisho linalofuata: tunatatua shida kwa uzuri

Leo umeona kile ambacho sheria za uelekezaji za Istio zinaweza kufanya. Sasa fikiria kitu kimoja, lakini tu kuhusiana na kushughulikia makosa. Hivi ndivyo tutakavyozungumza katika chapisho linalofuata.

Chanzo: mapenzi.com

Kuongeza maoni