Au'aunaga Mesh: Mea e Mana'omia ona Iloa e Inisinia Polokalama Uma e uiga i Tekonolosi Siliona

Manatua. fa'aliliu.: Mesh Mesh o se mea e leʻi i ai se faʻaliliuga mautu i le gagana Rusia (sili atu i le 2 tausaga talu ai na matou ofoina atu le filifiliga "mesh mo auaunaga", ma i se taimi mulimuli ane, na amata ai e nisi o paaga ona faʻalauiloa le tuʻufaʻatasia o le "auʻaunaga sieve") . O talanoaga faifaipea e uiga i lenei tekinolosi ua oʻo atu ai i se tulaga o loʻo fesoʻotaʻi vavalalata le maketi ma vaega faʻapitoa. O lenei mea matagofie mai se tasi o tusitala o le uluai upu ua faamoemoe e aumaia le manino i inisinia ma e le gata.

Au'aunaga Mesh: Mea e Mana'omia ona Iloa e Inisinia Polokalama Uma e uiga i Tekonolosi Siliona
Komiki mai Sebastian Caceres

Faatomuaga

Afai o oe o se enisinia software e galue i se mea i le vaega o backend system, o le faaupuga "mesh mesh" masalo ua matua mautu i lou mafaufau i le lua tausaga talu ai. Faʻafetai i se faʻalavelave faʻafuaseʻi, o lenei fuaitau o loʻo faʻateleina le pisinisi, ma o le hype ma faʻasalalauga faʻasalalauga faʻapitoa o loʻo tuputupu aʻe e pei o se polo kiona, lele i lalo o le mauga ma faʻaalia le leai o ni faʻailoga o le faʻagesegese.

Na fanau mai le 'au'auna i totonu o le vai pogisa o le fa'anatura fa'anatura. O le mea e leaga ai, o lona uiga o le tele o fefinauaiga o loʻo siomia ai e afua mai i le "talatala maualalo-kalori" i-e faʻaaoga ai le faaupuga faʻapitoa-faʻamataʻu mataʻutia. Ae afai e te faʻamama uma le pisa, e mafai ona e mauaina o le mesh o le tautua o loʻo i ai se galuega moni, faʻamaonia ma taua.

I lenei pou, o le a ou taumafai e fai naʻo lena: tuʻuina atu se taʻiala faʻamaoni, loloto, faʻainisinia i le auaunaga. O le a ou taliina e sili atu nai lo na o le fesili: “O le a lea mea?”, - ae faapena foi "Aisea?", faapea foi ma “Aisea nei?”. Mulimuli ane, o le a ou taumafai e faʻamatala pe aisea (i loʻu manatu) o lenei tekinolosi faʻapitoa na mafua ai se faʻalavelave valea, lea o ia lava o se tala manaia.

O ai aʻu?

Talofa uma! O lou igoa o William Morgan. O aʻu o se tasi o foafoa Linkerd - o le poloketi tautua muamua ma le poloketi e tuʻuaʻia mo le faʻaalia o le taimi mesh tautua fa'apea (fa'anoanoa tama!). (Manatua faaliliu.: I le ala, i le vaveao o le faʻaalia o lenei vaitaimi, sili atu i le 2,5 tausaga talu ai, ua uma ona matou faʻaliliuina mea muamua a le tusitala e tasi ua taʻua "O le a le 'au'aunaga mesh ma aisea ou te mana'omia ai [mo le cloud application with microservices]?".) Ou te taitai foi Faʻaalia o se amataga e fausia ai mea mata'ina auaunaga e pei o Linkerd ma Vaʻa.

Atonu e mafai ona e mateina o loʻo i ai soʻu manatu faʻaituau ma faʻapitoa i lenei mataupu. Ae ui i lea, o le a ou taumafai e faʻaitiitia le faʻaituau (sei vagana ai le tasi vaega: “Aisea ua tele naua ai le talanoaga e uiga i le tautua mata?”, - lea o le a ou faʻasoa atu ai oʻu manatu muamua). O le a ou faia foi le mea sili ou te mafaia e faia ai lenei taiala i se mea e mafai ai. I faʻataʻitaʻiga faʻapitoa, o le a sili ona ou faʻalagolago i le poto masani a Linkerd, aʻo faʻasino atu le eseesega (pe a iai) ou te iloa i le faʻatinoina o isi ituaiga o auaunaga mesh.

Ua lelei, ua o'o i le taimi e fa'agasolo ai i mea'ai.

O le a le mesh tautua?

E ui lava i mea uma, o le 'au'aunaga mesh e matua faigofie lava. Ua na'o se fa'aputuga o tagata fa'aoga avanoa e tu'u i "tata'o" auaunaga (o le a tatou talanoa teisi e uiga i le "latalata" mulimuli ane), fa'atasi ai ma se seti o faiga fa'atonutonu. O sui e vala'au fa'atasi vaalele fa'amatalaga, ma ua ta'ua faiga fa'atonutonu vaalele faʻatonutonu. O le vaalele faʻamatalaga e faʻalavelaveina telefoni i le va o auaunaga ma faia "soʻo se mea ese" ma i latou; le va'alele fa'atonutonu, fa'asologa, fa'amaopoopo le amio a le sui ma tu'uina atu avanoa mo oe, i.e. operator, i le API, faʻatagaina le fesoʻotaʻiga e faʻaogaina ma fuaina atoa.

Au'aunaga Mesh: Mea e Mana'omia ona Iloa e Inisinia Polokalama Uma e uiga i Tekonolosi Siliona

O le a lenei sui? Ole TCP sui lea ole vaega "Layer 7-aware". (o lona uiga o le "amanaʻiaina" le 7th layer o le OSI model) pei o HAProxy ma NGINX. E mafai ona e filifilia se sui e te fiafia i ai; O lo'o fa'aogaina e Linkerd se sui o le Rust, e le'o fa'aigoaina linkerd-proxy. Ua matou tuufaatasia faapitoa mo le tautua mata. O isi meshes e sili atu i isi sui (Envoy o se filifiliga masani). Ae ui i lea, o le filifilia o se sui e na o se mataupu o le faʻatinoga.

O le a le mea e fai e nei 'au'aunaga sui? E manino lava, latou te sui valaau i ma toe foʻi mai i auʻaunaga (faʻapitoa, latou te galulue o ni sui ma sui sui, faʻatautaia uma valaʻau mai ma fafo). Ma latou faʻatinoina se seti seti e taulaʻi i telefoni i le va o le auaunaga. O lenei taulaiga i luga o felauaiga i le va o auaunaga o le mea lea e iloagofie ai se sui sui o le auʻaunaga mai, fai mai, API faitotoa poʻo le faʻaogaina proxies (o loʻo taulaʻi atu i telefoni e sau i totonu o le fuifui mai le lalolagi i fafo). (Manatua. fa'aliliu.: Mo se faʻatusatusaga o loʻo iai Kubernetes Ingress controllers, o le tele o loʻo faʻaaogaina le Avefeʻau ua uma ona taʻua, vaʻai lenei tusiga.)

O lea, na matou iloa ai le vaalele faʻamatalaga. E sili atu ona faigofie le vaʻalele faʻatonutonu: o se seti o vaega e tuʻuina atu uma masini e manaʻomia e le vaʻalele faʻamatalaga e galue i se auala faʻamaopoopo, e aofia ai le mauaina o auaunaga, tuʻuina atu o le tusi faamaonia TLS, metric aggregation, ma isi. o lana amio; i le isi itu, o le vaalele pulea e maua ai se API e mafai ai ona e suia ma siaki le amio a le vaalele faʻamatalaga atoa.

O loʻo i lalo se faʻataʻitaʻiga o le vaalele pulea ma le vaalele faʻamatalaga i Linkerd. E pei ona mafai ona e vaʻaia, o le vaalele faʻatonutonu e aofia ai le tele o vaega eseese, e aofia ai le Prometheus faʻataʻitaʻiga e aoina mai metrics mai sui sui, faʻapea foʻi ma isi vaega e pei ole destination (su'esu'e auaunaga), identity (pulega tusipasi, CA) ma public-api (fa'ai'uga mo uepi ma CLI). I se fa'atusatusaga, o le va'alele fa'amatalaga o se feso'ota'iga-proxy faigofie i tafatafa o le fa'ata'ita'iga. Ua na'o se ata fa'atatau lea; i le fa'atinoina o le lalolagi moni, atonu e tolu au fa'atusa o vaega ta'itasi va'alele fa'atonutonu ma le faitau selau po'o afe o sui i le va'alele fa'amatalaga.

(O pusa lanumoana i lenei ata o loʻo faʻatusalia ai tuaoi o Kubernetes pods. E mafai ona e vaʻaia o pusa o loʻo i ai le linkerd-proxy o loʻo i totonu o le pusa tutusa ma pusa talosaga. O lenei polokalame ua lauiloa o pusa ta'avale.)

Au'aunaga Mesh: Mea e Mana'omia ona Iloa e Inisinia Polokalama Uma e uiga i Tekonolosi Siliona

O le au'aunaga mesh architecture e iai ni a'afiaga taua. Muamua, talu ai o le galuega a le sui o le faʻalavelaveina o telefoni i le va o auaunaga, o le auaunaga mesh e naʻo le talafeagai pe afai o lau talosaga na fausia mo se seti o auaunaga. mata mafai faʻaoga faʻatasi ma monoliths, ae e manino lava le faʻaaogaina mo le manuia o se sui e tasi, ma o lona faʻatinoga e foliga mai e le manaʻomia.

O le isi taunuuga taua e manaʻomia e le 'auʻaunaga mesh telē numera o sui. O le mea moni, Linkerd filifili se linkerd-proxy i tulaga uma o auaunaga uma (o isi faʻatinoga e faʻaopoopoina se sui i node uma / talimalo / VM. E tele naua). O le fa'aaogaina malosi o se sui e iai le tele o fa'alavelave fa'aopoopo:

  1. O sui i le vaalele faʻamatalaga e tatau ona vave, aua o telefoni ta'itasi e lua vala'au i le sui sui: tasi i le itu o le kalani, tasi i le 'au'aumau.
  2. E le gata i lea, e tatau ona i ai sui laiti и māmā. O le a faʻaumatia e taʻitasi le mafaufau ma le CPU, ma o lenei taumafa o le a faʻatupulaia faʻatasi ma le talosaga.
  3. E te mana'omia se masini e fa'apipi'i ma fa'afou se numera tele o sui. O le faia ma le lima e le o se filifiliga.

I se tulaga lautele, o le 'au'aunaga mesh e pei o lenei (a itiiti mai i le vaaiga a le manulele): e te faʻapipiʻiina le tele o tagata faʻaoga avanoa e "faia se mea" i totonu, fefaʻatauaʻiga vaʻaia, ma faʻaoga le vaalele e mataʻituina ma pulea.

Ua oo i le taimi mo le fesili "Aisea?"

O le a le mea e fa'atatau i ai se 'au'aunaga?

Mo i latou na muamua feiloai i le manatu o se masini tautua, e faʻamagaloina e fai sina maofa. O le mamanu o le mesh o le auaunaga o lona uiga e le gata o le a faʻateleina le faʻaogaina o le faʻaogaina, ae o le a faʻapea foi faʻaumatia punaoa ma o le a faaopoopo o se vaega o faiga fou i totonu o atinae tetele. Muamua e te setiina se 'auʻaunaga, ona e faʻafuaseʻi loa ona e manaʻomia le tautuaina o le fiaselau (pe a le o le afe) o sui. O le fesili, o ai e ofo mai mo lea tulaga?

O le tali i lenei fesili e lua vaega. Muamua, o tau fefaʻatauaʻiga e fesoʻotaʻi ma le faʻaogaina o nei sui e mafai ona faʻaitiitia tele ona o nisi suiga o loʻo faia i totonu o le faʻalapotopotoga (sili atu i lenei mea mulimuli ane).

Lona lua, o sea masini o se auala sili lea e faʻafeiloaʻi ai manatu faʻaopoopo i totonu o le faiga. Ma e le gata ona o le tele o mea fou e mafai ona faʻaopoopoina i le faʻaogaina o le mesh tautua, ae faʻapea foʻi ona e mafai ona faia e aunoa ma le faʻalavelaveina o le siosiomaga. O le mea moni, o le faʻataʻitaʻiga atoa o le 'auʻaunaga e faʻavae i luga o lenei postulate: i totonu o se multiservice system, e tusa lava po o le a fai auaunaga ta'ito'atasi, feoaiga i lo latou va o le pito sili lea e fa'aopoopo ai galuega.

Mo se faʻataʻitaʻiga, i le Linkerd (pei o le tele o meshes) o galuega faʻatino e taulaʻi muamua i telefoni HTTP, e aofia ai HTTP/2 ma gRPC*. O le faʻatinoga e matua tele lava - e mafai ona vaevaeina i ni vasega se tolu:

  1. Fa'atatauga faatuatuaina. Toe fa'ata'ita'i talosaga, fa'agata taimi, auala canary (vaeluaga / toe fa'asaga), ma isi.
  2. Fa'atatauga mata'ituina. Tu'ufa'atasiga o fua faatatau manuia, tuai ma talosaga voluma mo auaunaga ta'itasi po'o nofoaga ta'itasi; fausia fa'afanua topological o auaunaga, ma isi.
  3. Fa'atatauga saogalemu. Mutual TLS, pule avanoa, ma isi.

* Mai le manatu o Linkerd, gRPC e toetoe lava a leai se eseesega mai le HTTP/2: na'o le fa'aaogaina o le protobuf i le uta. Mai le vaaiga a le tagata atiae, o nei mea e lua, ioe, e eseese.

O le tele o nei masini o lo'o fa'agaoioia ile tulaga ole talosaga (o le mea lea o le "L7 sui"). Mo se fa'ata'ita'iga, afai e faia e le 'au'aunaga Foo se HTTP vala'au i le 'au'aunaga Bar, e mafai e le linkerd-proxy i le itu a Foo ona utaina ma le atamai le pa'u ma fa'aala telefoni mai Foo i le Pa fa'atatau i luga ole va'aia ua matauina; e mafai ona toe faia le talosaga pe a manaʻomia (ma pe a faʻamaonia); e mafai ona ia faamaumauina le code tali ma taimi malolo, ma isi. E fa'apena fo'i, e mafai e le linkerd-proxy i le itu Bar ona te'ena se talosaga pe a le fa'atagaina pe ua sili atu le tapula'a o talosaga; e mafai ona faaleleia le tuai i lana vaega, ma isi.

E mafai e sui ona "faia se mea" i le tulaga o fesoʻotaʻiga. Mo se fa'ata'ita'iga, e mafai e le linkerd-proxy i le itu Foo ona amataina se feso'ota'iga TLS, ma e mafai e le linkerd-proxy i le itu Bar ona fa'amuta, ma e mafai e itu uma e lua ona fa'amaonia tusi TLS a le tasi ma le isi. E maua ai e le gata o faʻamatalaga i le va o auaunaga, ae o se auala faʻamaonia faʻamaonia e iloa ai auʻaunaga: Foo ma Bar e mafai ona "faʻamaonia" o latou lava latou te fai mai ai.

* "Uo a se uo" o lona uiga o le tusi faamaonia a le kalani ua faamaonia foi (mutual TLS). I le "classic" TLS, mo se faʻataʻitaʻiga, i le va o se suʻesuʻega ma se 'auʻaunaga, o le tusi faamaonia o le tasi itu (le server) e masani ona faʻamaonia.

Pe o loʻo faʻagaioi i le talosaga poʻo le fesoʻotaʻiga tulaga, e taua le faʻamamafaina o vaega uma o le mesh auaunaga fa'agaioiga amio. E le mafai e Linkerd ona suia le semantics o le uta, pei o le faʻaopoopoina o fanua i se vaega o le JSON poʻo le faia o suiga i se protobuf. O le a tatou talanoa e uiga i lenei mea taua mulimuli ane pe a tatou talanoa e uiga i le ESB ma le middleware.

O le seti lea o foliga o loʻo ofoina mai e le 'auʻaunaga mesh. O le fesili e tulaʻi mai: aisea e le faʻatinoina saʻo ai i totonu o le talosaga? Ae aiseā e fa'alavelave ai i se sui?

Aisea e lelei ai le tautua mesh

E ui o le gafatia o le auʻaunaga e mataʻutia, o lona taua autu e le o taoto i foliga. I le faaiuga tatou Mafai faʻatino saʻo i latou i le talosaga (mulimuli ane o le a tatou vaʻaia o le amataga lea o le tautua tautua). Ina ia tuʻuina i totonu o se fuaiupu e tasi, o le tau o se mesh tautua o le: o lo'o tu'uina atu ai galuega fa'apitoa mo le fa'agaoioia o polokalama fa'aonaponei a le 'au'aunaga i se tulaga faifaipea, fa'aputu-lautele, talosaga-code-agnostic faiga..

Se'i o tatou iloiloina lenei talosaga.

«Galuega Taua i le Fa'agaoioi o Polokalama Polokalama Fa'aonaponei". Afai o loʻo e fausiaina se talosaga faʻatauvaʻa fesoʻotaʻi e fesoʻotaʻi i luga ole initaneti lautele e talia talosaga mai le lalolagi i fafo ma tali atu ia i latou i se taimi puupuu - mo se faʻataʻitaʻiga, se upega tafaʻilagi, se API server, ma le tele o isi talosaga faʻaonapo nei - ma afai e te faʻatinoina o se seti o auʻaunaga e fegalegaleai faʻatasi ma le tasi ma le isi, ma afai o loʻo e faʻaleleia pea lenei polokalama, faʻaopoopoina foliga fou, ma afai e faʻamalosia oe e tausia lenei faiga i tulaga galue i le taimi o suiga - i lenei tulaga, faʻafetai , o lo'o e fatuina polokalama fa'aonaponei a le server . Ma o na foliga sili uma o loʻo lisiina i luga e moni lava e matua taua ia te oe. O le talosaga e tatau ona faʻatuatuaina, malupuipuia, ma e tatau ona e iloa le mea o loʻo ia faia. O fesili nei e fesoasoani le 'au'aunaga e fo'ia.

(Ua lelei, o loʻu talitonuga o lenei auala o le auala faʻaonapo nei e fausia ai le polokalama faakomepiuta ua tolotolo i le parakalafa muamua. O isi e fiafia e atiaʻe monoliths, "reactive microservices" ma isi mea e le pa'ū i lalo o le faʻamatalaga o loʻo i luga. Atonu e iai manatu o nei tagata. e ese mai ia te aʻu, ma i le isi itu, ou te talitonu o latou "sese" - e ui lava i soʻo se tulaga, e le aoga tele le 'auʻaunaga mo i latou).

«Tulaga tutusa mo le faaputuga atoa". O foliga o loʻo tuʻuina atu e le 'auʻaunaga mesh e le naʻo le taua. Latou te faʻaoga i auaunaga uma i totonu o le talosaga, e tusa lava po o le a le gagana o loʻo tusia ai, o le a le faʻavae latou te faʻaogaina, o ai na tusia, pe faʻapefea ona faʻapipiʻiina, ma isi mea faʻapitoa uma o latou atinaʻe ma faʻaoga.

«Talosaga code tutoatasi". Ma le mea mulimuli, o le 'au'aunaga mesh e le gata ina tu'uina atu galuega fa'aauau i luga o le fa'aputuga atoa, e faia i se auala e le mana'omia ai le fa'asa'oina o le talosaga. O le fa'avae autu o le fa'atinoga o se 'au'aunaga mesh, e aofia ai galuega o le fa'atulagaina, fa'afouina, fa'agaioiga, tausia, ma isi, e mama i le tulaga tulaga ma e tuto'atasi mai le talosaga. E mafai ona sui le talosaga e aunoa ma le afaina ai o le mata o le tautua. I le isi itu, e mafai ona suia le mesh auaunaga e aunoa ma se faʻaogaina o talosaga.

I se faapuupuuga, o le 'au'aunaga mesh e le gata ina maua ai galuega taua, ae e faia i se lalolagi, toniga, ma le fa'aoga-tutoatasi. Ma o lea, a'o mafai ona fa'atinoina le fa'atinoga o se 'au'aunaga i le fa'ailoga o se tautua (mo se fa'ata'ita'iga, o se faletusi e aofia ai ma auaunaga ta'itasi), o lenei faiga o le a le maua ai le tutusa ma le tuto'atasi e matua taua tele i le tulaga o se mesh tautua.

Ma pau lava le mea e tatau ona e faia o le faʻaopoopoina o le tele o sui! Ou te folafola atu, e le o toe mamao o le a tatou vaʻavaʻai i tau faʻatinoga e fesoʻotaʻi ma le faʻaopoopoina o nei sui. Ae muamua, seʻi o tatou taofi ma vaʻavaʻai i lenei manatu o le tutoʻatasi mai le vaaiga a tagata eseese tagata.

O ai o lo'o fesoasoani i ai le 'au'aunaga?

E tusa lava pe le talafeagai, ina ia mafai ona avea se tekinolosi ma se vaega taua o le siosiomaga, e tatau ona talia e tagata. O ai la e fiafia i se masini tautua? O ai e aogā i lona faaaogāina?

Afai e te atiaʻe polokalame faʻaonaponei a le server, e mafai ona e vaʻai faalemafaufau i lau 'au o se vaega tagata e ana auaunagao lo'o fa'atasi e atina'e ma fa'atino faiga fa'apisinisi, ma tagata e ona tulagao lo'o a'afia i le atina'eina o le tulaga fa'alotoifale o lo'o fa'atautaia ai nei auaunaga. I totonu o faʻalapotopotoga laiti, e mafai ona tutusa tagata nei, ae a o tuputupu aʻe le kamupani, o nei matafaioi e masani ona faʻaalia ma e oʻo lava ina vaevaeina i ni vaega laiti ... (E tele mea e tatau ona taʻua iinei e uiga i le suiga o le natura o devops, le a'afiaga fa'alāpotopotoga a microservices, etc.) n. Ae mo le taimi nei, se'i o tatou fa'atauva'a nei fa'amatalaga).

Mai lenei manatu, o le au faʻamanuiaina manino o le 'auʻaunaga mesh o tagata e ona le faʻavae. A uma mea uma, o le sini autu a le au faʻavae o le fatuina lea o se faʻavae i totonu e mafai ai e tagata e ona le auʻaunaga ona faʻatinoina le faʻaogaina o pisinisi ma faia i se auala e faʻamaonia ai lo latou tutoʻatasi maualuga mai faʻamatalaga mataʻutia o lana gaioiga. O le 'au'aunaga mesh e le gata ina ofoina atu agava'a taua i le ausiaina o lenei sini, e faia i se auala, i le isi itu, e leai se fa'alagolago i tagata e ona auaunaga.

E fa'amanuiaina fo'i tagata e ona le 'au'aunaga, e ui lava i se auala e le tu'usa'o. O le sini a le tagata e ona le auʻaunaga o le faʻatinoina lea e mafai ai i le faʻatinoina o le faʻaogaina o le faʻagasologa o pisinisi, ma o le itiiti ifo o lona popole i mataupu faʻagaioiga, o le sili atu lea. Nai lo le faʻamalosia, faʻapea, toe faʻataʻitaʻi faiga faʻavae poʻo TLS, e mafai ona latou taulaʻi naʻo le pisinisi ma faʻamoemoe o le faʻavae e tausia isi mea. Mo i latou, o se avanoa tele lea.

O le faʻatulagaina o le taua o sea vaeluaga i le va o tagata e ona faʻavae ma auaunaga e le mafai ona faʻateleina. Ou te manatu e sao o ia o le autu saofaga i le tau o le tautua mata.

Na matou aʻoaʻoina lenei lesona ina ua taʻu mai e se tagata muamua a Linkerd le mafuaʻaga na latou filifilia ai le 'auʻaunaga: aua na mafai ai ona latou "tautala i se mea itiiti." O nisi nei o faʻamatalaga: o tama mai se tasi kamupani tele na malaga atu i le Kubernetes. Talu ai ona o le talosaga na galue ma faʻamatalaga maʻaleʻale, na latou mananaʻo e faʻailoga uma fesoʻotaʻiga i totonu o fuifui. Ae ui i lea, o le tulaga na faigata ona o le i ai o le faitau selau o auaunaga ma le faitau selau o au atinaʻe. O le faʻamoemoe e faʻafesoʻotaʻi tagata uma ma faʻamaonia i latou e aofia ai le lagolago mo le TLS i a latou fuafuaga e leʻi fiafia ai i latou. I le faʻapipiʻiina o Linkerd, na latou faimalaga noataga mai le au atiaʻe (mai le latou manatu o se faʻalavelave le manaʻomia) i platformers, o loʻo avea lenei mea ma faʻamuamua maualuga. I se isi faaupuga, o Linkerd na foia mo i latou e le o se faʻafitauli faʻapitoa ae o se faʻalapotopotoga.

I se faapuupuuga, o le auaunaga mesh, nai lo, e le o se fofo faʻapitoa, ae socio-technical Faafitauli. (Fa'afetai Cindy Sridharan mo le faalauiloaina o lenei faaupuga.

E mafai e le 'au'aunaga ona fo'ia o'u fa'afitauli uma?

Ioe. O lona uiga, e leai!

Va'ai i vasega e tolu o foliga o loʻo faʻamatalaina i luga - faʻamaoni, saogalemu, ma le mataʻituina - e manino ai o le tautua tautua e le o se fofo atoatoa i soʻo se tasi o nei faʻafitauli. E ui lava e mafai e Linkerd ona tuʻuina atu talosaga faifaipea (pe a na te iloa o loʻo i ai le malosi), e le o iai i se tulaga e faia ai filifiliga e uiga i le mea e toe faʻafoʻi atu i le tagata faʻaoga pe a oʻo i lalo le auaunaga - o ia filifiliga e tatau ona faia e le talosaga. E mafai e Linkerd ona fa'amauina fa'amaumauga i talosaga manuia, ae e le mafai ona va'ai i totonu o le 'au'aunaga ma tu'uina atu ana fua fa'alotoifale - e tatau i se talosaga ona iai se meafaigaluega fa'apea. Ma a'o mafai e Linkerd ona fa'afeiloa'i le mTLS, e mana'omia e fofo fa'apolopolo atoatoa mea e sili atu.

O se vaega itiiti o foliga i nei vaega o loʻo ofoina mai e le 'auʻaunaga mesh e fesoʻotaʻi ma tulaga tulaga. O le uiga o laʻu tala o galuega e:

  1. Tuto'atasi i le fa'atatau pisinisi. O le auala e fausia ai histograms valaau i le va o Foo ma Bar e matua tutoatasi lava pe aisea Ua valaau Foo ia Bar.
  2. Faigata ona faatino sa'o. I Linkerd, toe fa'ata'ita'i e fa'avasegaina i so'o se mea manaia e pei o le toe taumafai o paketi. (toe taumafai paketi), talu ai o se auala faigofie-mafaufau i le faʻatinoina o ia mea o le a mautinoa lava le tulaʻi mai o le mea e taʻua o le "avalanche of requests" (toe taumafai afa) ma isi fa'afitauli fa'apitoa i faiga fa'asoa.
  3. E sili ona aoga pe a fa'aoga faifaipea. Ole masini TLS e na'o le talafeagai pe a fa'aoga i so'o se mea.

Talu ai ona o nei foliga o loʻo faʻatinoina i le sui sui (ae le o le talosaga), o le 'auʻaunaga mesh e faʻaalia i latou i le tulaga, ae le o talosaga. O lea, e le afaina po o le a le gagana o loʻo tusia ai auaunaga, o le a le faʻavae latou te faʻaogaina, o ai na tusia ma pe aisea. O sui e galue i tua atu o nei auiliiliga uma, ma o le faavae autu o lenei galuega, e aofia ai galuega o le faʻatulagaina, faʻafouina, faʻaogaina, tausia, ma isi, o loʻo taoto i luga o le tulaga maualuga.

Fa'ata'ita'iga o agava'a mesh tautua

Au'aunaga Mesh: Mea e Mana'omia ona Iloa e Inisinia Polokalama Uma e uiga i Tekonolosi Siliona

I se aotelega, o se masini tautua e le o se fofo atoatoa mo le faʻamaoni, mataʻituina, poʻo le saogalemu. O le lautele o nei vaega o loʻo faʻaalia ai le faʻatagaina o le auai o tagata e ana auaunaga, vaega Ops / SRE ma isi paaga a le kamupani. E na'o le 'au'aunaga e tu'uina atu se "slice" i le tulaga fa'avae mo vaega ta'itasi.

Aisea ua lauiloa ai le 'au'aunaga i le taimi nei?

Atonu o loʻo e mafaufau i le taimi nei: Lelei, afai e lelei tele le tautua, aisea na matou le amata faʻapipiʻiina ai le faitau miliona o sui i luga o le faaputuga i le sefulu tausaga talu ai?

O loʻo i ai se tali faʻapitoa i lenei fesili: i le sefulu tausaga talu ai na fausia e tagata uma monoliths, ma e leai se tasi e manaʻomia se masini tautua. E moni lenei mea, ae i loʻu manatu, o lenei tali e misi le manatu. E oʻo lava i le sefulu tausaga talu ai, o le manatu o microservices o se auala faʻamaonia e fatuina ai faiga tetele na faʻatalanoaina lautele ma faʻaaogaina i kamupani e pei o Twitter, Facebook, Google ma Netflix. O le manatu lautele - a itiiti mai i vaega o le alamanuia na ou faʻafesoʻotaʻi ai - o microservices o le "auala saʻo" e fausia ai faiga tetele, tusa lava pe faigata tele.

Ioe, e ui lava o loʻo i ai kamupani o loʻo faʻaogaina microservices i le sefulu tausaga talu ai, latou te leʻi pipii i soʻo se mea latou te mafaia e fausia ai se masini tautua. Ae peitaʻi, afai e te vaʻavaʻai totoʻa, na latou faia se mea faapena: o le tele o nei kamupani na faʻatonuina le faʻaogaina o se faletusi faʻapitoa i totonu mo networking (o nisi taimi e taʻua o le fat client library, faletusi ga'o tagata fa'atau).

Netflix na iai Hysterix, Google na iai Stubby, Twitter na iai le faletusi o le Finagle. Finagle, mo se faʻataʻitaʻiga, ua faʻatagaina mo auaunaga fou uma ile Twitter. Na fa'atautaia uma le itu o le kalani ma le server o feso'ota'iga, fa'ataga mo talosaga faifaipea, fa'aola talosaga lagolago, fa'apaleni uta, ma le mita. Na tuʻuina atu ai se faʻavae faifaipea o le faʻamaoni ma le mataʻituina i luga o le faaputuga Twitter atoa, e tusa lava po o le a le mea o loʻo faia e le auʻaunaga. Ioe, e na'o le gagana JVM na galue ma fa'avae i luga o se polokalame fa'ata'ita'iga e tatau ona fa'aoga mo le talosaga atoa. Ae ui i lea, o lona faʻatinoga na toetoe lava tutusa ma le auaunaga a le mesh. (O le mea moni, o le lomiga muamua o Linkerd na o Finagle afifi i le sui sui.)

O le mea lea, i le sefulu tausaga talu ai e le gata o microservices, ae faʻapea foʻi ma faletusi faʻapitoa proto-service-mesh na foia ai faʻafitauli tutusa e foia e le auaunaga i aso nei. Peita'i, e le'i iai lava le 'au'aunaga i lena taimi. Sa tatau ona i ai se isi sifi a o lei sau o ia.

Ma o le mea lea o loʻo taoto ai le tali loloto, natia i se isi suiga na faia i le 10 tausaga talu ai: ua matua paʻu i lalo le tau o le faʻaogaina o microservices. O kamupani o loʻo taʻua i luga na faʻaogaina microservices i le sefulu tausaga talu ai-Twitter, Netflix, Facebook, Google-o kamupani tetele ma tele punaoa. E le gata ina latou maua le manaʻoga, ae faʻapea foʻi le mafai ona fausia, faʻapipiʻi, ma faʻagaoioia talosaga tetele e faʻavae i luga ole microservices. O le malosi ma le taumafaiga na tuʻuina atu e le au inisinia Twitter i le siitia mai le monolithic i se microservices auala e ofoofogia. (Faʻamaoni, e pei o le mea moni na aoga.) O lenei ituaiga o gaioiga tetele sa le mafai e kamupani laiti.

Tatou see i le taimi nei. I aso nei o loʻo i ai amataga pe a o le fua faatatau o microservices i tagata atiaʻe e 5: 1 (poʻo 10:1), ma e lē gata i lea, na latou taulau manuia i le taulimaina o na mea! Afai o se amataga o le 5 tagata e mafai ona faʻaogaina le 50 microservices e aunoa ma le faʻamalosi, ona faʻaitiitia ai lea o le tau o le faʻatinoga.

Au'aunaga Mesh: Mea e Mana'omia ona Iloa e Inisinia Polokalama Uma e uiga i Tekonolosi Siliona
1500 microservices i Monzo; laina ta'itasi o se tulafono fa'atonu feso'ota'iga e fa'ataga ai feoaiga

O le faʻaititia tele o le tau o le faʻaogaina o microservices o le taunuuga lea o se faiga e tasi: fa'ateleina le ta'uta'ua o koneteina и aufaipese. O le mea tonu lea o le tali loloto i le fesili o le a le mea na mafua ai le tulaʻi mai o le tautua. O le tekonolosi lava e tasi na faʻapenaina uma ai le auʻaunaga ma microservices: Kubernetes ma Docker.

Aisea? Ia, ua foia e Docker se tasi o faafitauli tele - o le faafitauli o le afifiina. E ala i le afifiina o se tusi talosaga ma ona (e le o fesoʻotaʻiga) faʻalagolago i taimi taʻavale i totonu o se atigipusa, e liliu ai e Docker le talosaga i se iunite faʻaogaina e mafai ona talimalo ma taʻavale i soo se mea. I le taimi lava e tasi, e matua faafaigofieina ai le faagaoioiga. gagana eseese faaputuga: Talu ai o se atigipusa o se iunite atomika o le faʻatinoina, e le afaina po o le a le mea o loʻo i totonu, pe o se JVM, Node, Go, Python, poʻo Ruby talosaga, mo le faʻapipiʻiina ma le faʻatinoga. Na'o lou tamo'e ae o lena.

Kubernetes ave mea uma i le isi tulaga. I le taimi nei o loʻo i ai le tele o "mea faʻatinoina" ma le tele o masini e faʻaogaina ai, o loʻo i ai se manaʻoga mo se meafaigaluega e mafai ona faʻafetaui i latou i le tasi ma le isi. I se tulaga lautele, e te tuuina atu Kubernetes le tele o koneteina ma le tele o masini, ma e fetaui ma i latou i le tasi ma le isi (o le mea moni, o se faiga malosi ma suiga faifai pea: o koneteina fou e feoai solo i le faiga, masini amata ma taofi, ma isi. Kubernetes e amanaia uma nei mea).

O le taimi lava e faʻatulagaina ai Kubernetes, o le taimi e faʻapipiʻi ai ma faʻagaoioia se tasi auaunaga e le ese tele mai le tau e faʻapipiʻi ma faʻaogaina auaunaga e sefulu (o le mea moni, e toetoe lava tutusa mo le 100 auaunaga). Fa'aopoopo i nei koneteina e fai ma faiga fa'apipi'i e fa'amalosia ai le fa'atinoina o gagana, ma e tele au talosaga fou ua fa'atinoina e pei o microservices e tusia i le tele o gagana, na'o le ituaiga si'osi'omaga e fetaui lelei i ai le 'au'aunaga.

O lea la, matou te oʻo mai i le tali i le fesili pe aisea ua lauiloa ai le manatu o se masini tautua i le taimi nei: o le tutusa o loʻo tuʻuina atu e Kubernetes mo auaunaga e faʻatatau tonu lava i galuega faʻatino o loʻo feagai ma le tautua. E te afifiina sui i totonu o koneteina, tuʻuina atu ia Kubernetes le galuega o le faʻapipiʻiina i soʻo se mea e mafai ai, ma voila! I le gaosiga, e te maua se masini tautua, a'o Kubernetes e pulea uma masini o lona faʻaogaina. (A itiiti mai i le vaaiga a le manulele. Ioe, e tele ni faʻailoga i lenei faiga.)

I le aotelega: o le mafuaʻaga na lauiloa ai le tautua tautua i le taimi nei ae le o le sefulu tausaga talu ai ona o Kubernetes ma Docker e le gata ina matua faʻateleina. mana'omia i totonu, faʻafaigofieina le faʻatinoina o talosaga e pei o seti o microservices gagana, ae faʻaititia tele foi tau mo lona fa'agaioiga e ala i le tu'uina atu o auala mo le fa'atinoina ma le fa'atumauina o paka sui ta'avale.

Aisea ua tele ai talanoaga e uiga i le tautua mata?

Le puipuiga: I totonu o lenei vaega, ou te faʻaogaina ituaiga uma o manatu, taumatematega, faʻailoga ma faʻamatalaga i totonu.

O le su'eina o le 'au'aunaga mata'ina o le a maua mai ai le tele o mea toe fa'aaogaina, maualalo-kalori mea, galuega fa'apitoa, ma se kaleidoscope o fa'alavelave e talafeagai mo se potu fa'alogo. Soʻo se tekonolosi fou e iai lenei mea, ae i le tulaga o le mesh tautua, o le faʻafitauli e sili ona ogaoga. Aisea?

Ia, o se vaega o lo'u sese. Ua ou faia le mea sili ou te mafaia e faʻalauiloa ai Linkerd ma le 'auʻaunaga mesh i avanoa uma, e ala i le anoanoai o pou blog ma tala e pei o lenei. Ae ou te le malosi tele. Ina ia tali moni i lenei fesili, e tatau ona tatou talanoa teisi e uiga i le tulaga lautele. Ma e le mafai ona talanoa i ai e aunoa ma le taʻua o se tasi o galuega faatino: Istio ose fa'asoa fa'apogai matala na fausia fa'atasi e Google, IBM ma Lyft.

(O na kamupani e tolu e matua eseese lava matafaioi: O le auai o Lyft e foliga mai e gata i le igoa naʻo; latou te tusia le Envoy ae e le faʻaaogaina pe o loʻo aʻafia i le atinaʻeina o Istio. O loʻo aʻafia le IBM i le atinaʻeina o Istio ma faʻaaogaina. Google e mamafa tele auai i le atinaʻeina o Istio, ae i le mea e mafai ona ou iloa, e le faʻaaogaina.)

O le poloketi Istio e iloga mo mea e lua. Muamua, o le tele o taumafaiga tau maketi e Google, aemaise lava, tuʻuina i lona faʻalauiloaina. Ou te faʻatusatusaina o le toʻatele o tagata o loʻo nofouta i le taimi nei o le auaunaga mesh concept muamua na aʻoaʻoina e uiga i ai faafetai ia Istio. O le vaega lona lua o le leaga o le mauaina o Istio. I lenei mataupu, o aʻu, e manino lava, o aʻu o se vaega fiafia, ae o le taumafai e tumau i le faʻamoemoe e mafai ai, e le mafai lava ona ou fesoasoani ae ia matau lava leaga uiga faaalia, e le fa'apitoa (e ui ina le tulaga ese: systemd e sau i lou mafaufau, faatusatusaga sa faataunuuina uma fa'afia...) mo se poloketi Open Source.

(I le faʻatinoga, Istio e foliga mai e iai faʻafitauli e le gata i le lavelave ma le UX, ae faʻapea foʻi ma le faʻatinoga. Mo se faʻataʻitaʻiga, i le taimi Fa'afeso'ota'i iloiloga fa'atinogana faia e se isi vaega, na maua e le au atamamai tulaga e 100 taimi maualuga ai le siʻusiʻu o Istio nai lo Linkerd, faʻapea foʻi ma tulaga e leai ni punaoa, ina ua faʻaauau pea ona galue le Linkerd, ma ua le toe galue Istio.)

O le tuʻu ese o aʻu manatu e uiga i le mafuaʻaga na tupu ai lenei mea, ou te talitonu o le faʻaogaina o le faʻaogaina o le auʻaunaga e mafua ona o le aʻafia o Google. O lona uiga, o se tuufaatasiga o mea nei e tolu:

  1. fa'alauiloa mata'utia o Istio e Google;
  2. uiga le taliaina, faitio i le poloketi;
  3. o le lauiloa lata mai o Kubernetes, o le manatuaga o loʻo fou pea.

Faʻatasi, o nei mea e tuʻufaʻatasia i se ituaiga oona, siosiomaga le mautonu lea e faʻaitiitia ai le malosi mo le faʻamasinoga tonu, ma totoe ai na o se ituaiga uiga ese. tulip mania.

Mai le manatu o Linkerd, o le… Ou te faamatalaina o se faamanuiaga fefiloi. O le uiga o laʻu tala, e manaia tele le faʻaogaina o le 'auʻaunaga - e leʻi tupu i le 2016 ina ua faʻaalia muamua Linkerd ma e matua faigata lava ona faʻalogo tagata i le poloketi. O lea la ua leai se faafitauli faapena! Ae o le tala leaga e faapea o le tulaga o le auaunaga mesh ua matua fenumiai i aso nei ma ua toetoe lava a le mafai ona iloa po o fea galuega faatino e aofia ai i le vaega o le tautua (sei vagana ai e iloa po o le fea e sili ona lelei mo se faʻaoga faʻapitoa). E mautinoa lava e oʻo i le ala o tagata uma (ma e mautinoa lava i nisi tulaga o Istio poʻo se isi poloketi e sili atu nai lo Linkerd, talu ai o le mea mulimuli e le o se fofo e tasi-tele).

Mai le itu a Linkerd, o la matou fuafuaga o le le amanaʻiaina o le pisa, faʻaauau le taulaʻi i le foia o faʻafitauli moni i totonu o le nuʻu, ma faʻatali mo le faʻamalo. Mulimuli ane o le a faʻaitiitia le faʻafefe ma mafai ona faʻaauau pea ona tatou galulue i le filemu.

Seia oo i lena taimi, e tatau ona tatou onosai uma.

O le a aoga ea le 'au'aunaga ia te a'u, o se enisinia faakomepiuta faatauvaa?

O fesili nei o le a fesoasoani e tali lenei fesili:

E te feagai faʻatasi ma le faʻatinoina o le faʻatatau pisinisi? I lenei tulaga, o le a le aoga le mesh tautua ia te oe. O lona uiga, ioe, atonu e te fiafia i ai, ae o le mea sili, o le auaunaga mesh e le tatau ona afaina saʻo ai soʻo se mea i lou siosiomaga. Fa'aauau le galue i mea e totogi ai oe.

E te tausia se tulaga i totonu o se kamupani e faʻaaogaina Kubernetes? Ioe, i lenei tulaga e te manaʻomia se 'auʻaunaga (ioe, pe afai e te le faʻaaogaina K8s naʻo le faʻaogaina o se monolith poʻo se faʻasologa o vaega - ae ou te fia fesili pe aisea e te manaʻomia ai K8s). E foliga mai, o le ae mauaina oe lava i se tulaga ma le tele o microservices na tusia e tagata eseese. Latou te fegalegaleai uma lava le tasi ma le isi ma o loʻo nonoa i totonu o se faʻalavelave faʻalagolago i taimi taʻavale, ma e tatau ona e suʻeina se auala e taulimaina ai nei mea uma. O le faʻaaogaina o Kubernetes e mafai ai ona e filifilia se 'auʻaunaga "mo oe lava". Ina ia faia lenei mea, faamasani oe lava ia latou gafatia ma foliga ma tali le fesili pe o soʻo se poloketi avanoa e fetaui ma oe (Ou te fautuaina e amata lau suʻesuʻega ma Linkerd).

O e fa'atautaia se fa'avae mo se kamupani e LE fa'aogaina Kubernetes ae fa'aoga microservices? I lenei tulaga, o le auaunaga mesh o le a aoga ia te oe, ae o lona faʻaaogaina o le a le taua. Ioe e te mafaia fa'aa'oa'o 'au'aunaga mesh e ala i le talimalo i le tele o sui, ae o se fa'amanuiaga taua o Kubernetes o le fa'ata'ita'iga tonu lea: o le tausia ma le lima o nei sui e mana'omia ai le tele o taimi, taumafaiga ma tau.

O oe o loʻo pulea le faʻavae i totonu o se kamupani e galue ma monoliths? I lenei tulaga, masalo e te le manaʻomia se 'auʻaunaga. Afai o loʻo e galue faʻatasi ma monoliths (poʻo seti o monoliths) o loʻo faʻamalamalamaina lelei ma e seasea ona suia faʻasologa o fegalegaleaiga, ona itiiti lea o le auaunaga mesh e ofoina atu ia te oe. O lea e mafai ona e le amanaiaina ma faʻamoemoe e mou atu pei o se miti leaga...

iʻuga

Masalo, o le 'au'aunaga mesh e le tatau lava ona ta'ua o "tekinolosi sili ona lauiloa i le lalolagi" - o lenei mamalu masalosalo atonu o le bitcoin po'o le AI. Masalo o ia i le lima pito i luga. Ae afai e te talepeina le paʻu ma le paʻu, e manino lava o le tautua mesh e aumaia ai faʻamanuiaga moni ia i latou e fatuina talosaga i Kubernetes.

Ou te manaʻo e te faʻataʻitaʻi Linkerd - faʻapipiʻi i totonu o le Kubernetes cluster (poʻo le Minikube i luga o se komepiuta) e tusa ma le 60 sekonema e mafai ona e vaai mo oe lava i le mea lea ou te tautala ai.

FAQ

- Afai ou te le amanaʻiaina le 'auʻaunaga, mata e mou atu?
- E tatau ona ou le fiafia ia te oe: o le tautua tautua o loʻo ia i matou mo se taimi umi.

— Ae OU TE LE MANAʻO e faʻaaogaina se masini tautua!
- Ia, e le manaʻomia! Na'o le faitau la'u fesili o lo'o i luga e iloa ai pe tatau ona e fa'amasani i ona fa'avae.

— E le'o lelei ESB/middleware tuai ma se sosi fou?
- O le 'au'aunaga mesh e fa'atatau i le fa'aogaina o le fa'atinoga, ae le o semantic. O le tulaga le lelei tele lea pasi auaunaga tau pisinisi (ESB). O le fa'atumauina o lenei valavala e fesoasoani i le 'au'aunaga e 'alofia ai le fa'alavelave e tasi.

- E fa'afefea ona 'ese'ese se 'au'aunaga mai faitoto'a API?
E miliona tala e uiga i lenei mataupu. Na'o google.

O le avefe'au o se 'au'aunaga?
- Leai, Envoy e le o se 'au'aunaga tautua, o se sui sui. E mafai ona fa'aogaina e fa'atulaga ai se 'au'aunaga (ma sili atu - o se fa'amoemoe lautele sui). Ae na o ia lava, e le o se tautua tautua.

- Feso'ota'iga Au'aunaga Mesh - o se 'au'aunaga tautua?
- Leai. E ui lava i le igoa, e le o se tautua tautua (faʻafefea ona e fiafia i mea ofoofogia o maketi?).

- Pe o le a fesoasoani le 'au'aunaga i la'u faiga fa'a-synchronous e fa'atatau i le laina fe'au?
- Leai, e le fesoasoani le 'au'aunaga ia te oe.

- O le fea masini tautua e tatau ona ou fa'aogaina?
- Linkerd, leai se fai'ai.

- E leaga le tusiga! / Le tusitala - i luga o le fasimoli!
— Fa'amolemole fa'asoa atu le feso'ota'iga i au uo uma ina ia mafai ai ona latou talitonu i lenei mea!

Faʻafetai

E pei ona e mateina mai le ulutala, o lenei tusiga na musuia e Jay Kreps' tala matagofie "Le Fa'amaumauga: O mea e tatau ona iloa e inisinia fa'akomepiuta uma e uiga i fa'amaumauga tu'ufa'atasia taimi moni". Na ou feiloai ia Jay i le sefulu tausaga talu ai a o faia se faatalanoaga i luga ole Linked In ma sa avea o ia ma musumusuga ia te au talu mai lena taimi.

E ui ou te manaʻo e taʻua aʻu o se "Linkerd developer", o le mea moni e sili atu aʻu o se tagata e tausia le faila README.md i se poloketi. Galulue i Linkerd i aso nei lava, lava, lava много tagata, ma semanu e le mafai ona faia lenei poloketi e aunoa ma le faʻalapotopotoga ofoofogia o tagata fai sao ma tagata faʻaoga.

Ma le mea mulimuli, faafetai faapitoa i le na faia Linkerd, Oliva Gould (primus inter pares), o lē, faatasi ma aʻu i le tele o tausaga ua mavae, na maʻulu faʻatasi i nei vevesi uma i le tautua.

PS mai faaliliu

Faitau foi i la matou blog:

puna: www.habr.com