InternetÄ Ä·ekarsrakstiŠ¾servisa tÄ«kls (servisa tÄ«kls), un Å”eit ir vÄl viens. UrrÄ! Bet kÄpÄc? Tad vÄlos izteikt savu viedokli, ka bÅ«tu bijis labÄk, ja servisa tÄ«kli bÅ«tu parÄdÄ«juÅ”ies pirms 10 gadiem, pirms tÄdu konteineru platformu kÄ Docker un Kubernetes parÄdÄ«Å”anÄs. Es nesaku, ka mans viedoklis ir labÄks vai sliktÄks par citiem, taÄu, tÄ kÄ servisa tÄ«kli ir diezgan sarežģīti dzÄ«vnieki, vairÄki viedokļi palÄ«dzÄs tos labÄk izprast.
Es runÄÅ”u par platformu dotCloud, kas tika veidota uz vairÄk nekÄ simts mikropakalpojumiem un atbalstÄ«ja tÅ«kstoÅ”iem konteinerizÄtu lietojumprogrammu. Es izskaidroÅ”u problÄmas, ar kurÄm saskÄrÄmies, izstrÄdÄjot un ievieÅ”ot to, un kÄ pakalpojumu tÄ«kli varÄtu (vai nevarÄja) palÄ«dzÄt.
DotCloud vÄsture
Esmu rakstÄ«jis par dotCloud vÄsturi un Ŕīs platformas arhitektÅ«ras izvÄlÄm, taÄu neesmu daudz runÄjis par tÄ«kla slÄni. Ja nevÄlaties ienirt lasÄ«Å”anÄ pÄdÄjais raksts par dotCloud, Å”eit ir Ä«sumÄ bÅ«tÄ«ba: tÄ ir PaaS platforma kÄ pakalpojums, kas ļauj klientiem palaist plaÅ”u lietojumprogrammu klÄstu (Java, PHP, Python...) ar atbalstu plaÅ”am datu diapazonam. pakalpojumi (MongoDB, MySQL, Redis...) un darbplÅ«sma, piemÄram, Heroku: jÅ«s augÅ”upielÄdÄjat savu kodu platformÄ, tÄ izveido konteinera attÄlus un izvieto tos.
Es jums pastÄstÄ«Å”u, kÄ satiksme tika novirzÄ«ta uz platformu dotCloud. Ne tÄpÄc, ka tas bÅ«tu Ä«paÅ”i forÅ”s (lai gan sistÄma savam laikam darbojÄs labi!), bet galvenokÄrt tÄpÄc, ka ar moderniem rÄ«kiem Å”Ädu dizainu var viegli ieviest Ä«sÄ laikÄ pieticÄ«gai komandai, ja viÅiem ir nepiecieÅ”ams veids, kÄ novirzÄ«t satiksmi starp bariem. no mikropakalpojumiem vai virkni lietojumprogrammu. TÄdÄ veidÄ jÅ«s varat salÄ«dzinÄt iespÄjas: kas notiek, ja visu izstrÄdÄjat pats vai izmantojat esoÅ”u pakalpojumu tÄ«klu. Standarta izvÄle ir izgatavot to paÅ”am vai iegÄdÄties.
Satiksmes marÅ”rutÄÅ”ana mitinÄtajÄm lietojumprogrammÄm
Lietojumprogrammas vietnÄ dotCloud var atklÄt HTTP un TCP galapunktus.
HTTP galapunkti dinamiski pievienots slodzes balansÄtÄja klastera konfigurÄcijai Hipache. Tas ir lÄ«dzÄ«gi tam, ko resursi dara Å”odien IekļūŔana in Kubernetes un slodzes balansÄtÄjs, piemÄram Traefik.
Klienti savienojas ar HTTP galapunktiem, izmantojot atbilstoÅ”us domÄnus, ja domÄna nosaukums norÄda uz dotCloud slodzes balansÄtÄjiem. Nekas Ä«paÅ”s.
TCP galapunkti saistÄ«ts ar porta numuru, kas pÄc tam tiek nodots visiem konteineriem Å”ajÄ kaudzÄ, izmantojot vides mainÄ«gos.
Klienti var izveidot savienojumu ar TCP galapunktiem, izmantojot atbilstoÅ”o resursdatora nosaukumu (piemÄram, gateway-X.dotcloud.com) un porta numuru.
Å is resursdatora nosaukums tiek izmantots servera klasterim ānatsā (nav saistÄ«ts ar Nats), kas novirzÄ«s ienÄkoÅ”os TCP savienojumus uz pareizo konteineru (vai slodzes lÄ«dzsvarotu pakalpojumu gadÄ«jumÄ uz pareizajiem konteineriem).
Ja esat pazÄ«stams ar Kubernetes, iespÄjams, tas jums atgÄdinÄs par pakalpojumiem Mezglu ports.
DotCloud platformÄ nebija lÄ«dzvÄrtÄ«gu pakalpojumu ClusterIP: VienkÄrŔības labad pakalpojumiem tika piekļūts vienÄdi gan no platformas iekÅ”puses, gan Ärpus tÄs.
Viss tika organizÄts pavisam vienkÄrÅ”i: sÄkotnÄji HTTP un TCP marÅ”rutÄÅ”anas tÄ«klu ievieÅ”ana, iespÄjams, bija tikai daži simti Python rindiÅu. VienkÄrÅ”i (es teiktu naivi) algoritmi, kas tika pilnveidoti, platformai augot un parÄdÄ«jÄs papildu prasÄ«bas.
PlaÅ”a esoÅ”Ä koda pÄrstrukturÄÅ”ana nebija nepiecieÅ”ama. It Ä«paÅ”i, 12 faktoru lietotnes var tieÅ”i izmantot adresi, kas iegÅ«ta, izmantojot vides mainÄ«gos.
KÄ tas atŔķiras no mÅ«sdienu pakalpojumu tÄ«kla?
Ierobežots redzamÄ«ba. Mums vispÄr nebija TCP marÅ”rutÄÅ”anas tÄ«kla metrikas. RunÄjot par HTTP marÅ”rutÄÅ”anu, jaunÄkÄs versijÄs tika ieviesta detalizÄta HTTP metrika ar kļūdu kodiem un atbildes laikiem, taÄu mÅ«sdienu pakalpojumu tÄ«kli sniedzas vÄl tÄlÄk, nodroÅ”inot integrÄciju ar metrikas vÄkÅ”anas sistÄmÄm, piemÄram, Prometheus.
RedzamÄ«ba ir svarÄ«ga ne tikai no darbÄ«bas viedokļa (lai palÄ«dzÄtu novÄrst problÄmas), bet arÄ« izlaižot jaunas funkcijas. Runa ir par droŔību zili zaļa izvietoÅ”ana Šø kanÄriju izvietoÅ”ana.
MarÅ”rutÄÅ”anas efektivitÄte ir arÄ« ierobežots. DotCloud marÅ”rutÄÅ”anas tÄ«klÄ visai satiksmei bija jÄnotiek caur Ä«paÅ”u marÅ”rutÄÅ”anas mezglu kopu. Tas nozÄ«mÄja iespÄju ŔķÄrsot vairÄkas AZ (pieejamÄ«bas zonas) robežas un ievÄrojami palielinÄt latentumu. Es atceros problÄmu novÄrÅ”anas kodu, kas veica vairÄk nekÄ simts SQL vaicÄjumu katrÄ lapÄ un katram vaicÄjumam atvÄra jaunu savienojumu ar SQL serveri. Palaižot lokÄli, lapa tiek ielÄdÄta uzreiz, bet programmÄ dotCloud tÄs ielÄde aizÅem dažas sekundes, jo katrs TCP savienojums (un turpmÄkais SQL vaicÄjums) aizÅem desmitiem milisekundu. Å ajÄ konkrÄtajÄ gadÄ«jumÄ problÄmu atrisinÄja pastÄvÄ«gi savienojumi.
MÅ«sdienu servisa tÄ«kli labÄk risina Å”Ädas problÄmas. PirmkÄrt, viÅi pÄrbauda, āāvai savienojumi ir marÅ”rutÄti avotÄ. LoÄ£iskÄ plÅ«sma ir tÄda pati: ŠŗŠ»ŠøŠµŠ½Ń ā Š¼ŠµŃ ā ŃŠµŃŠ²ŠøŃ, bet tagad tÄ«kls darbojas lokÄli, nevis attÄlos mezglos, tÄpÄc savienojums ŠŗŠ»ŠøŠµŠ½Ń ā Š¼ŠµŃ ir lokÄls un ļoti Ätrs (mikrosekundes, nevis milisekundes).
MÅ«sdienu pakalpojumu tÄ«kli ievieÅ” arÄ« viedÄkus slodzes lÄ«dzsvaroÅ”anas algoritmus. PÄrraugot aizmugursistÄmu stÄvokli, tÄs var nosÅ«tÄ«t vairÄk trafika uz ÄtrÄkÄm aizmugursistÄmÄm, tÄdÄjÄdi uzlabojot vispÄrÄjo veiktspÄju.
DroŔība arÄ« labÄk. DotCloud marÅ”rutÄÅ”anas tÄ«kls pilnÄ«bÄ darbojÄs uz EC2 Classic un neÅ”ifrÄja trafiku (pamatojoties uz pieÅÄmumu, ka, ja kÄdam izdevÄs ievietot sniffer EC2 tÄ«kla trafikÄ, jums jau bija lielas problÄmas). MÅ«sdienu pakalpojumu tÄ«kli pÄrredzami aizsargÄ visu mÅ«su trafiku, piemÄram, ar savstarpÄju TLS autentifikÄciju un sekojoÅ”u Å”ifrÄÅ”anu.
Trafika marÅ”rutÄÅ”ana platformas pakalpojumiem
Labi, mÄs esam apsprieduÅ”i trafiku starp lietojumprogrammÄm, bet kÄ ar paÅ”u platformu dotCloud?
Pati platforma sastÄvÄja no aptuveni simts mikropakalpojumiem, kas atbild par dažÄdÄm funkcijÄm. Daži pieÅÄma pieprasÄ«jumus no citiem, un daži bija fona darbinieki, kuri izveidoja savienojumu ar citiem pakalpojumiem, bet paÅ”i nepieÅÄma savienojumus. JebkurÄ gadÄ«jumÄ katram pakalpojumam ir jÄzina to adreÅ”u galapunkti, ar kurÄm tam nepiecieÅ”ams izveidot savienojumu.
Daudzi augsta lÄ«meÅa pakalpojumi var izmantot iepriekÅ” aprakstÄ«to marÅ”rutÄÅ”anas tÄ«klu. Faktiski daudzi no dotCloud vairÄk nekÄ simts mikropakalpojumiem ir izvietoti kÄ parastas lietojumprogrammas paÅ”Ä dotCloud platformÄ. TaÄu nelielam skaitam zema lÄ«meÅa pakalpojumu (Ä«paÅ”i tiem, kas ievieÅ” Å”o marÅ”rutÄÅ”anas tÄ«klu) bija nepiecieÅ”ams kaut kas vienkÄrÅ”Äks ar mazÄkÄm atkarÄ«bÄm (jo viÅi nevarÄja bÅ«t atkarÄ«gi no sevis, lai darbotos ā vecÄ labÄ vistas un olu problÄma).
Å ie zemÄ lÄ«meÅa, misijai kritiskie pakalpojumi tika izvietoti, palaižot konteinerus tieÅ”i dažos galvenajos mezglos. Å ajÄ gadÄ«jumÄ standarta platformas pakalpojumi netika izmantoti: saistÄ«tÄjs, plÄnotÄjs un skrÄjÄjs. Ja vÄlaties salÄ«dzinÄt ar mÅ«sdienu konteineru platformÄm, tas ir tÄpat kÄ ar vadÄ«bas plaknes vadÄ«Å”anu docker run tieÅ”i mezglos, nevis deleÄ£Ät uzdevumu Kubernetes. Tas ir diezgan lÄ«dzÄ«gs koncepcijÄ statiskie moduļi (podi), ko tÄ izmanto kubeadm vai bootkube sÄknÄjot atseviŔķu klasteru.
Å ie pakalpojumi tika atklÄti vienkÄrÅ”Ä un neapstrÄdÄtÄ veidÄ: YAML failÄ bija norÄdÄ«ti to vÄrdi un adreses; un katram klientam bija jÄpaÅem Ŕī YAML faila kopija izvietoÅ”anai.
No vienas puses, tas ir ÄrkÄrtÄ«gi uzticams, jo tam nav nepiecieÅ”ams atbalsts no ÄrÄja atslÄgu/vÄrtÄ«bu krÄtuves, piemÄram, Zookeeper (atcerieties, etcd vai Consul tajÄ laikÄ neeksistÄja). No otras puses, tas apgrÅ«tinÄja pakalpojumu pÄrvietoÅ”anu. Katru reizi, kad tika veikta pÄrvietoÅ”ana, visi klienti saÅems atjauninÄtu YAML failu (un, iespÄjams, tiks restartÄts). Nav ļoti Ärti!
PÄc tam mÄs sÄkÄm ieviest jaunu shÄmu, kurÄ katrs klients pieslÄdzÄs lokÄlajam starpniekserveri. Adreses un porta vietÄ tam ir jÄzina tikai pakalpojuma porta numurs un jÄizveido savienojums, izmantojot localhost. VietÄjais starpniekserveris apstrÄdÄ Å”o savienojumu un pÄrsÅ«ta to faktiskajam serverim. Tagad, pÄrvietojot aizmugursistÄmu uz citu maŔīnu vai mÄrogojot, tÄ vietÄ, lai atjauninÄtu visus klientus, ir jÄatjaunina tikai visi Å”ie lokÄlie starpniekserveri; un atsÄknÄÅ”ana vairs nav nepiecieÅ”ama.
(TÄpat bija plÄnots iekapsulÄt trafiku TLS savienojumos un ievietot citu starpniekserveri saÅÄmÄja pusÄ, kÄ arÄ« pÄrbaudÄ«t TLS sertifikÄtus bez saÅÄmÄja pakalpojuma lÄ«dzdalÄ«bas, kas ir konfigurÄts, lai pieÅemtu savienojumus tikai localhost. VairÄk par to vÄlÄk).
Tas ir ļoti lÄ«dzÄ«gs SmartStack no Airbnb, taÄu bÅ«tiskÄ atŔķirÄ«ba ir tÄ, ka SmartStack ir ieviests un izvietots ražoÅ”anÄ, savukÄrt dotCloud iekÅ”ÄjÄ marÅ”rutÄÅ”anas sistÄma tika apturÄta, kad dotCloud kļuva par Docker.
Es personÄ«gi uzskatu, ka SmartStack ir viens no tÄdu sistÄmu priekÅ”teÄiem kÄ Istio, Linkerd un Consul Connect, jo tÄs visas ievÄro vienu un to paÅ”u modeli:
Palaidiet starpniekserveri katrÄ mezglÄ.
Klienti izveido savienojumu ar starpniekserveri.
VadÄ«bas plakne atjaunina starpniekservera konfigurÄciju, kad mainÄs aizmugursistÄmas.
... PeļÅa!
Mūsdienīga servisa tīkla ievieŔana
Ja mums Å”odien bÅ«tu nepiecieÅ”ams ieviest lÄ«dzÄ«gu tÄ«klu, mÄs varÄtu izmantot lÄ«dzÄ«gus principus. PiemÄram, konfigurÄjiet iekÅ”Äjo DNS zonu, kartÄjot pakalpojumu nosaukumus ar adresÄm Å”ajÄ telpÄ 127.0.0.0/8. PÄc tam palaidiet HAProxy katrÄ klastera mezglÄ, pieÅemot savienojumus katrÄ pakalpojuma adresÄ (Å”ajÄ apakÅ”tÄ«klÄ 127.0.0.0/8) un slodzes novirzÄ«Å”anu/lÄ«dzsvaroÅ”anu uz atbilstoÅ”ajÄm aizmugursistÄmÄm. HAProxy konfigurÄciju var kontrolÄt confd, ļaujot saglabÄt aizmugursistÄmas informÄciju programmÄ etcd vai Consul un automÄtiski nosÅ«tÄ«t atjauninÄto konfigurÄciju HAProxy, kad nepiecieÅ”ams.
Tas ir gandrÄ«z tas, kÄ Istio darbojas! Bet ar dažÄm atŔķirÄ«bÄm:
SaglabÄ aizmugursistÄmas konfigurÄciju, izmantojot Kubernetes API, nevis etcd vai Consul.
Pakalpojumiem tiek pieŔķirtas adreses iekÅ”ÄjÄ apakÅ”tÄ«klÄ (Kubernetes ClusterIP adreses), nevis 127.0.0.0/8.
Ir papildu komponents (Citadele), lai pievienotu savstarpÄju TLS autentifikÄciju starp klientu un serveriem.
Atbalsta jaunas funkcijas, piemÄram, Ä·Ädes pÄrtraukumu, izplatÄ«tu izsekoÅ”anu, kanÄriju izvietoÅ”anu utt.
ÄŖsi apskatÄ«sim dažas atŔķirÄ«bas.
SÅ«tÅa pilnvarnieks
Envoy Proxy uzrakstÄ«ja Lyft [Uber konkurents taksometru tirgÅ« - apm. josla]. Tas daudzÄjÄdÄ ziÅÄ ir lÄ«dzÄ«gs citiem starpniekserveriem (piemÄram, HAProxy, Nginx, Traefik...), taÄu Lyft rakstÄ«ja savÄjo, jo viÅiem bija vajadzÄ«gas funkcijas, kuru trÅ«ka citiem starpniekserveriem, un Ŕķita gudrÄk izveidot jaunu, nevis paplaÅ”inÄt esoÅ”o.
SÅ«tni var izmantot atseviŔķi. Ja man ir konkrÄts pakalpojums, kuram nepiecieÅ”ams izveidot savienojumu ar citiem pakalpojumiem, es varu to konfigurÄt, lai izveidotu savienojumu ar Envoy, un pÄc tam dinamiski konfigurÄt un pÄrkonfigurÄt Envoy ar citu pakalpojumu atraÅ”anÄs vietu, vienlaikus iegÅ«stot daudz lielisku papildu funkcionalitÄti, piemÄram, redzamÄ«bu. TÄ vietÄ, lai izveidotu pielÄgotu klienta bibliotÄku vai kodÄ ievadÄ«tu zvanu pÄdas, mÄs nosÅ«tÄm trafiku uz Envoy, un tas apkopo metriku mÅ«su vietÄ.
Bet SÅ«tnis ir spÄjÄ«gs strÄdÄt arÄ« kÄ datu plakne (datu plakne) servisa tÄ«klam. Tas nozÄ«mÄ, ka Envoy tagad ir konfigurÄts Å”im pakalpojuma tÄ«klam vadÄ«bas plakne (vadÄ«bas plakne).
Vadības plakne
VadÄ«bas plaknei Istio paļaujas uz Kubernetes API. Tas Ä«paÅ”i neatŔķiras no confd lietoÅ”anas, kas paļaujas uz etcd vai Consul, lai skatÄ«tu atslÄgu kopu datu krÄtuvÄ. Istio izmanto Kubernetes API, lai skatÄ«tu Kubernetes resursu kopu.
Starp Å”o un pÄc tam: Man personÄ«gi tas Ŕķita noderÄ«gi Kubernetes API aprakstskas skan:
Kubernetes API serveris ir āmÄms serverisā, kas piedÄvÄ API resursu glabÄÅ”anu, versiju izveidi, validÄciju, atjauninÄÅ”anu un semantiku.
Istio ir paredzÄts darbam ar Kubernetes; un, ja vÄlaties to izmantot Ärpus Kubernetes, jums ir jÄpalaiž Kubernetes API servera gadÄ«jums (un etcd palÄ«ga pakalpojums).
Servisa adreses
Istio paļaujas uz ClusterIP adresÄm, kuras pieŔķir Kubernetes, tÄpÄc Istio pakalpojumi saÅem iekÅ”Äjo adresi (nav diapazonÄ 127.0.0.0/8).
DatplÅ«smu uz ClusterIP adresi noteiktam pakalpojumam Kubernetes klasterÄ« bez Istio pÄrtver kube starpniekserveris un nosÅ«ta uz Ŕī starpniekservera aizmugursistÄmu. Ja jÅ«s interesÄ tehniskÄ informÄcija, kube-proxy iestata iptables kÄrtulas (vai IPVS slodzes balansÄtÄjus atkarÄ«bÄ no tÄ, kÄ tas ir konfigurÄts), lai pÄrrakstÄ«tu to savienojumu galamÄrÄ·a IP adreses, kas ved uz ClusterIP adresi.
Kad Istio ir instalÄts Kubernetes klasterÄ«, nekas nemainÄs, kamÄr tas nav skaidri iespÄjots konkrÄtam patÄrÄtÄjam vai pat visai nosaukumvietai, ievieÅ”ot konteineru. sidecar pielÄgotÄs pÄkstÄ«s. Å is konteiners izveidos sÅ«tÅa gadÄ«jumu un iestatÄ«s iptables noteikumu kopu, lai pÄrtvertu datplÅ«smu uz citiem pakalpojumiem un novirzÄ«tu Å”o trafiku uz Envoy.
IntegrÄjot ar Kubernetes DNS, tas nozÄ«mÄ, ka mÅ«su kods var izveidot savienojumu ar pakalpojuma nosaukumu un viss ātikai darbojasā. Citiem vÄrdiem sakot, mÅ«su kods izdod tÄdus vaicÄjumus kÄ http://api/v1/users/4242tad api atrisinÄt pieprasÄ«jumu 10.97.105.48, iptables kÄrtulas pÄrtvers savienojumus no 10.97.105.48 un pÄrsÅ«tÄ«s tos vietÄjam sÅ«tÅa starpniekserveri, un Å”is vietÄjais starpniekserveris pÄrsÅ«tÄ«s pieprasÄ«jumu faktiskajam aizmugursistÄmas API. Fu!
Papildu volÄni
Istio nodroÅ”ina arÄ« pilnÄ«gu Å”ifrÄÅ”anu un autentifikÄciju, izmantojot mTLS (savstarpÄju TLS). Komponents ar nosaukumu Citadele.
Ir arÄ« sastÄvdaļa Mikseris, ko sÅ«tnis var pieprasÄ«t no katra pieprasÄ«jums pieÅemt Ä«paÅ”u lÄmumu par Å”o pieprasÄ«jumu atkarÄ«bÄ no dažÄdiem faktoriem, piemÄram, galvenÄm, aizmugursistÄmas slodzes utt... (neuztraucieties: ir daudzi veidi, kÄ turpinÄt Mixer darbÄ«bu, un pat ja tas avarÄ, Envoy turpinÄs strÄdÄt labi kÄ starpniekserveris) .
Un, protams, mÄs pieminÄjÄm redzamÄ«bu: Envoy apkopo milzÄ«gu daudzumu metrikas, vienlaikus nodroÅ”inot izplatÄ«tu izsekoÅ”anu. Ja mikropakalpojumu arhitektÅ«rÄ vienam API pieprasÄ«jumam ir jÄnokļūst caur mikropakalpojumiem A, B, C un D, āātad pÄc pieteikÅ”anÄs izplatÄ«tÄ izsekoÅ”ana pievienos pieprasÄ«jumam unikÄlu identifikatoru un saglabÄs Å”o identifikatoru, izmantojot apakÅ”pieprasÄ«jumus visiem Å”iem mikropakalpojumiem, ļaujot visi saistÄ«tie zvani, kas jÄuztver.aizkavÄÅ”anÄs utt.
IzstrÄdÄt vai iegÄdÄties
Istio ir pazÄ«stams kÄ sarežģīts. Turpretim marÅ”rutÄÅ”anas tÄ«kla izveide, ko es aprakstÄ«ju Ŕīs ziÅas sÄkumÄ, ir salÄ«dzinoÅ”i vienkÄrÅ”a, izmantojot esoÅ”os rÄ«kus. TÄtad, vai ir jÄga tÄ vietÄ izveidot savu pakalpojumu tÄ«klu?
Ja mums ir pieticÄ«gas vajadzÄ«bas (nav vajadzÄ«ga redzamÄ«ba, automÄtiskais slÄdzis un citi smalkumi), tad rodas domas par sava instrumenta izstrÄdi. Bet, ja mÄs izmantojam Kubernetes, tas var pat nebÅ«t vajadzÄ«gs, jo Kubernetes jau nodroÅ”ina pamata rÄ«kus pakalpojumu atklÄÅ”anai un slodzes lÄ«dzsvaroÅ”anai.
Bet, ja mums ir paaugstinÄtas prasÄ«bas, servisa tÄ«kla āiegÄdÄÅ”anÄsā Ŕķiet daudz labÄks risinÄjums. (Tas ne vienmÄr ir pirkums, jo Istio ir atvÄrtÄ koda avots, taÄu mums joprojÄm ir jÄiegulda inženierijas laiks, lai to saprastu, izvietotu un pÄrvaldÄ«tu.)
Vai man izvÄlÄties Istio, Linkerd vai Consul Connect?
LÄ«dz Å”im esam runÄjuÅ”i tikai par Istio, taÄu tas nav vienÄ«gais servisa tÄ«kls. PopulÄra alternatÄ«va - Linkerd, un ir vÄl vairÄk Consul Connect.
Ko izvÄlÄties?
GodÄ«gi sakot, es nezinu. Å obrÄ«d neuzskatu, ka esmu pietiekami kompetents, lai atbildÄtu uz Å”o jautÄjumu. Ir daži interesantiraksti ar Å”o rÄ«ku salÄ«dzinÄjumu un pat etaloniem.
Viena daudzsoloÅ”a pieeja ir izmantot lÄ«dzÄ«gu rÄ«ku SuperGloo. Tas ievieÅ” abstrakcijas slÄni, lai vienkÄrÅ”otu un apvienotu API, ko atklÄj pakalpojumu tÄ«kli. TÄ vietÄ, lai apgÅ«tu dažÄdu pakalpojumu tÄ«klu specifiskÄs (un, manuprÄt, salÄ«dzinoÅ”i sarežģītÄs) API, mÄs varam izmantot SuperGloo vienkÄrÅ”Äkas konstrukcijas un viegli pÄrslÄgties no vienas uz otru, it kÄ mums bÅ«tu starpposma konfigurÄcijas formÄts, kas apraksta HTTP saskarnes un aizmugursistÄmas. faktiskÄs konfigurÄcijas Ä£enerÄÅ”ana Nginx, HAProxy, Traefik, Apache...
Esmu nedaudz parunÄjis ar Istio un SuperGloo, un nÄkamajÄ rakstÄ vÄlos parÄdÄ«t, kÄ pievienot Istio vai Linkerd esoÅ”am klasterim, izmantojot SuperGloo, un kÄ pÄdÄjais paveic darbu, tas ir, ļauj pÄrslÄgties no no viena pakalpojuma tÄ«kla uz otru, nepÄrrakstot konfigurÄcijas.