ProHoster > Blogs > AdministrÄcija > Pakalpojumu tÄ«kls: kas katram programmatÅ«ras inženierim jÄzina par karstÄko tehnoloÄ£iju
Pakalpojumu tÄ«kls: kas katram programmatÅ«ras inženierim jÄzina par karstÄko tehnoloÄ£iju
PiezÄ«me. tulk.: Servisa siets ir parÄdÄ«ba, kurai vÄl nav stabila tulkojuma krievu valodÄ (pirms vairÄk nekÄ 2 gadiem mÄs piedÄvÄjÄm opciju ātÄ«kls pakalpojumiemā, un nedaudz vÄlÄk daži kolÄÄ£i sÄka aktÄ«vi popularizÄt kombinÄciju āservisa sietsā). . PastÄvÄ«gÄs runas par Å”o tehnoloÄ£iju ir noveduÅ”as pie situÄcijas, kad mÄrketinga un tehniskÄs sastÄvdaļas ir pÄrÄk cieÅ”i saistÄ«tas. Å is brÄ«niŔķīgais materiÄls no viena no sÄkotnÄjÄ termina autoriem ir paredzÄts, lai radÄ«tu skaidrÄ«bu inženieriem un ne tikai.
Ja esat programmatÅ«ras inženieris, kas strÄdÄ kaut kur aizmugursistÄmu jomÄ, termins āpakalpojumu tÄ«klsā, iespÄjams, jau ir stingri iesakÅojies jÅ«su prÄtÄ pÄdÄjo pÄris gadu laikÄ. Pateicoties dÄ«vainai sakritÄ«bai, Ŕī frÄze arvien vairÄk pÄrÅem nozari, un ažiotÄža un ar to saistÄ«tie reklÄmas piedÄvÄjumi aug kÄ sniega pikas, lidojot lejÄ no kalna un neliecinot par palÄninÄÅ”anÄs pazÄ«mÄm.
Pakalpojuma tÄ«kls radÄs mÄkoÅainÄ ekosistÄmas duļķainajos, tendenciozajos Å«deÅos. DiemžÄl tas nozÄ«mÄ, ka liela daļa ar to saistÄ«to strÄ«du svÄrstÄs no āmazkaloriju pļÄpÄÅ”anasā lÄ«dz ā izmantojot tehnisko terminu ā kliedzoÅ”Äm muļķībÄm. Bet, ja izfiltrÄjat visu troksni, varat atklÄt, ka servisa tÄ«klam ir ļoti reÄla, noteikta un svarÄ«ga funkcija.
Å ajÄ ziÅojumÄ es centÄ«Å”os darÄ«t tieÅ”i to: sniegt godÄ«gu, padziļinÄtu, uz inženieri orientÄtu ceļvedi par pakalpojumu tÄ«klu. Es atbildÄÅ”u vairÄk nekÄ tikai uz jautÄjumu: "Kas tas ir?", - bet arÄ« "KÄpÄc?"un "KÄpÄc tagad?". Visbeidzot mÄÄ£inÄÅ”u ieskicÄt, kÄpÄc (manuprÄt) tieÅ”i Ŕī tehnoloÄ£ija ir izraisÄ«jusi tik traku ažiotÄžu, kas pats par sevi ir interesants stÄsts.
Kas es esmu?
Sveiki visiem! Mani sauc Viljams Morgans. Esmu viens no radÄ«tÄjiem Linkerd - pats pirmais servisa tÄ«kla projekts un projekts, kas vainojams termina parÄdÄ«Å”anÄs servisa tÄ«kls kÄ tÄds (atvainojiet, puiÅ”i!). (PiezÄ«me tulk.: Starp citu, Ŕī termina parÄdÄ«Å”anÄs rÄ«tausmÄ, vairÄk nekÄ pirms 2,5 gadiem, mÄs jau tulkojÄm tÄ paÅ”a autora agrÄ«no materiÄlu ar nosaukumu "Kas ir pakalpojumu tÄ«kls un kÄpÄc tas ir vajadzÄ«gs [mÄkoÅa lietojumprogrammai ar mikropakalpojumiem]?".) Es arÄ« vadu PeldoÅ”s ir jaunizveidots uzÅÄmums, kas veido lieliskus pakalpojumu tÄ«klus, piemÄram, Linkerd un Nirt.
DroÅ”i vien nojauÅ”at, ka man Å”ajÄ jautÄjumÄ ir ļoti tendenciozs un subjektÄ«vs viedoklis. TomÄr es centÄ«Å”os samazinÄt neobjektivitÄti lÄ«dz minimumam (izÅemot vienu sadaļu: "KÄpÄc tik daudz tiek runÄts par pakalpojumu tÄ«klu?", - kurÄ es tomÄr dalÄ«Å”os ar savÄm aizspriedumainÄm idejÄm). Es arÄ« darÄ«Å”u visu iespÄjamo, lai Ŕī rokasgrÄmata bÅ«tu pÄc iespÄjas objektÄ«vÄka. KonkrÄtos piemÄros es galvenokÄrt paļauÅ”os uz Linkerd pieredzi, vienlaikus norÄdot uz atŔķirÄ«bÄm (ja tÄdas ir), kas man ir zinÄmas citu pakalpojumu tÄ«kla veidu ievieÅ”anÄ.
Labi, ir pienÄcis laiks pÄriet pie gardumiem.
Kas ir servisa tīkls?
Neskatoties uz visu ažiotÄžu, pakalpojumu tÄ«kls ir strukturÄli diezgan vienkÄrÅ”s. Tas ir tikai virkne userspace starpniekserveru, kas atrodas "blakus" pakalpojumiem (par "tuvumÄ" mÄs runÄsim vÄlÄk), kÄ arÄ« kontroles procesu kopums. Starpniekserveri tiek saukti kolektÄ«vi datu plakne, un tiek saukti kontroles procesi vadÄ«bas plakne. Datu plakne pÄrtver zvanus starp pakalpojumiem un dara ar tiem "visu citu"; vadÄ«bas plakne attiecÄ«gi koordinÄ starpniekservera darbÄ«bu un nodroÅ”ina piekļuvi jums, t.i. operatoram API, ļaujot manipulÄt ar tÄ«klu un izmÄrÄ«t to kopumÄ.
Kas ir Å”is starpniekserveris? Å is ir kategorijas "Layer 7-ware" TCP starpniekserveris (t.i., "Åemot vÄrÄ" OSI modeļa 7. slÄni) piemÄram, HAProxy un NGINX. JÅ«s varat izvÄlÄties starpniekserveri pÄc savas patikas; Linkerd izmanto Rust starpniekserveri, kura nosaukums ir vienkÄrÅ”s linkerd-starpniekserveris. MÄs to esam apkopojuÅ”i Ä«paÅ”i servisa tÄ«klam. Citas acis dod priekÅ”roku citiem starpniekserveriem (sÅ«tnis ir izplatÄ«ta izvÄle). TomÄr starpniekservera izvÄle ir tikai ievieÅ”anas jautÄjums.
Ko dara Å”ie starpniekserveri? AcÄ«mredzot tie starpniekserveri zvanus uz pakalpojumiem un no tiem (stingri sakot, tie darbojas kÄ starpniekserveri un reversie starpniekserveri, apstrÄdÄjot gan ienÄkoÅ”os, gan izejoÅ”os zvanus). Un viÅi ievieÅ” funkciju kopu, kas koncentrÄjas uz zvaniem starp pakalpojumus. Å Ä« koncentrÄÅ”anÄs uz trafiku starp pakalpojumiem ir tas, kas atŔķir pakalpojuma tÄ«kla starpniekserveri no, piemÄram, API vÄrtejÄm vai ieejas starpniekserveriem (pÄdÄjie koncentrÄjas uz zvaniem, kas klasterÄ« ienÄk no Ärpasaules). (PiezÄ«me. tulk.: EsoÅ”o Kubernetes Ingress kontrolleru, no kuriem daudzi izmanto jau minÄto Envoy, salÄ«dzinÄjumu sk. Å is raksts.)
TÄtad, mÄs izdomÄjÄm datu plakni. VadÄ«bas plakne ir vienkÄrÅ”Äka: tÄ ir komponenÅ”u kopa, kas nodroÅ”ina visu mehÄniku, kas datu plaknei ir nepiecieÅ”ama, lai saskaÅoti strÄdÄtu, ieskaitot pakalpojumu atklÄÅ”anu, TLS sertifikÄtu izsniegÅ”anu, metrikas apkopoÅ”anu utt. Datu plakne informÄ vadÄ«bas plakni par tÄ uzvedÄ«ba; savukÄrt vadÄ«bas plakne nodroÅ”ina API, kas ļauj mainÄ«t un izsekot datu plaknes uzvedÄ«bu kopumÄ.
ZemÄk ir Linkerd vadÄ«bas plaknes un datu plaknes diagramma. KÄ redzat, vadÄ«bas plaknÄ ir iekļauti vairÄki dažÄdi komponenti, tostarp Prometheus instance, kas apkopo metriku no starpniekserveriem, kÄ arÄ« citi komponenti, piemÄram, destination (pakalpojuma atklÄÅ”ana), identity (sertifikÄcijas iestÄde, CA) un public-api (galapunkti tÄ«meklim un CLI). Turpretim datu plakne ir vienkÄrÅ”s linkerd starpniekserveris blakus lietojumprogrammas instancei. Å Ä« ir tikai loÄ£iskÄ diagramma; reÄlÄs pasaules izvietoÅ”anÄ datu plaknÄ var bÅ«t trÄ«s katra vadÄ«bas plaknes komponenta kopijas un simtiem vai tÅ«kstoÅ”iem starpniekserveru.
(Zilie lodziÅi Å”ajÄ diagrammÄ attÄlo Kubernetes apgabalu apmales. Varat redzÄt, ka konteineri ar linkerd-starpniekserveri atrodas tajÄ paÅ”Ä podÄ kÄ lietojumprogrammu konteineri. Å Ä« shÄma ir pazÄ«stama kÄ blakusvÄÄ£a konteiners.)
Pakalpojumu tÄ«kla arhitektÅ«rai ir vairÄkas svarÄ«gas sekas. PirmkÄrt, tÄ kÄ starpniekservera uzdevums ir pÄrtvert zvanus starp pakalpojumiem, pakalpojumu tÄ«klam ir jÄga tikai tad, ja jÅ«su lietojumprogramma ir izveidota pakalpojumu kopai. acs viens var izmantot ar monolÄ«tiem, taÄu tas ir acÄ«mredzami lieks viena starpniekservera dÄļ, un tÄ funkcionalitÄte, visticamÄk, nebÅ«s pieprasÄ«ta.
VÄl viena svarÄ«ga konsekvence ir tÄ, ka pakalpojumu tÄ«klam ir nepiecieÅ”ams milzÄ«gs starpniekserveru skaits. Faktiski Linkerd pieÄ·ÄdÄ linkerd starpniekserveri katram pakalpojumam (citÄm implementÄcijÄm tiek pievienots starpniekserveris katram mezglam/resursdatoram/VM. Tas ir daudz). Å Äda aktÄ«va starpniekservera izmantoÅ”ana pati par sevi rada vairÄkas papildu komplikÄcijas:
Starpniekserveriem datu plaknÄ jÄbÅ«t Ätri, jo katram zvanam ir pÄris zvani uz starpniekserveri: viens klienta pusÄ, viens servera pusÄ.
ArÄ« starpniekserveriem jÄbÅ«t mazs Šø viegls. Katrs patÄrÄs atmiÅas un CPU resursus, un Å”is patÄriÅÅ” pieaugs lineÄri lÄ«dz ar lietojumprogrammu.
Jums bÅ«s nepiecieÅ”ams mehÄnisms, lai izvietotu un atjauninÄtu lielu skaitu starpniekserveru. To darÄ«t manuÄli nav risinÄjums.
KopumÄ pakalpojumu tÄ«kls izskatÄs Å”Ädi (vismaz no putna lidojuma): jÅ«s izvietojat virkni userspace starpniekserveru, kas "kaut ko dara" ar iekÅ”Äjo, starppakalpojumu trafiku, un izmantojat vadÄ«bas plakni, lai tos uzraudzÄ«tu un pÄrvaldÄ«tu.
Ir pienÄcis laiks jautÄjumam "KÄpÄc?"
Kam paredzÄts servisa tÄ«kls?
Tiem, kas pirmo reizi saskÄrÄs ar ideju par servisa sietu, ir piedodami nedaudz satraukti. Pakalpojuma tÄ«kla dizains nozÄ«mÄ, ka tas ne tikai palielinÄs lietojumprogrammas latentumu, bet arÄ« palielinÄs patÄrÄ resursi un pievienos virkne jaunu mehÄnismu infrastruktÅ«rÄ. Vispirms iestatÄt pakalpojumu tÄ«klu un pÄc tam pÄkÅ”Åi atklÄjat, ka ir jÄapkalpo simtiem (ja ne tÅ«kstoÅ”iem) starpniekserveru. JautÄjums ir, kurÅ” bÅ«s brÄ«vprÄtÄ«gais Å”ajÄ darbÄ?
Atbildei uz Å”o jautÄjumu ir divas daļas. PirmkÄrt, darÄ«jumu izmaksas, kas saistÄ«tas ar Å”o starpniekserveru izvietoÅ”anu, var ievÄrojami samazinÄt dažu ekosistÄmÄ notiekoÅ”u izmaiÅu dÄļ (vairÄk par to vÄlÄk).
OtrkÄrt, Å”Äda ierÄ«ce patiesÄ«bÄ ir lielisks veids, kÄ ieviest sistÄmÄ papildu loÄ£iku. Un ne tikai tÄpÄc, ka, izmantojot pakalpojumu tÄ«klu, var pievienot daudz jaunu funkciju, bet arÄ« tÄpÄc, ka to var izdarÄ«t, netraucÄjot ekosistÄmu. Faktiski viss pakalpojumu tÄ«kla modelis ir balstÄ«ts uz Å”o postulÄtu: daudzpakalpojumu sistÄmÄ neatkarÄ«gi no tÄ padarÄ«t individuÄlie pakalpojumi, satiksme starp viÅiem ir ideÄls punkts funkcionalitÄtes pievienoÅ”anai.
PiemÄram, Linkerd (tÄpat kÄ lielÄkajÄ daÄ¼Ä tÄ«klu) funkcionalitÄte galvenokÄrt ir vÄrsta uz HTTP izsaukumiem, tostarp HTTP/2 un gRPC*. FunkcionalitÄte ir diezgan bagÄta - to var iedalÄ«t trÄ«s klasÄs:
SaistÄ«tÄs funkcijas uzticamÄ«ba. MÄÄ£iniet vÄlreiz pieprasÄ«jumus, taimautus, kanÄriju pieeju (datplÅ«smas sadalÄ«Å”ana/novirzÄ«Å”ana) utt.
SaistÄ«tÄs funkcijas uzraudzÄ«bu. Veiksmes rÄdÄ«tÄju, kavÄjumu un pieprasÄ«jumu apjomu apkopoÅ”ana katram pakalpojumam vai atseviŔķiem galamÄrÄ·iem; pakalpojumu topoloÄ£isko karÅ”u veidoÅ”ana utt.
SaistÄ«tÄs funkcijas droŔība. SavstarpÄja TLS, piekļuves kontrole utt.
* No Linkerd viedokļa gRPC praktiski neatŔķiras no HTTP/2: tas tikai izmanto protobuf lietderÄ«gajÄ slodzÄ. No izstrÄdÄtÄja viedokļa Ŕīs divas lietas, protams, atŔķiras.
Daudzi no Å”iem mehÄnismiem darbojas pieprasÄ«juma lÄ«menÄ« (tÄtad "L7 starpniekserveris"). PiemÄram, ja pakalpojums Foo veic HTTP zvanu pakalpojuma joslai, Foo pusÄ esoÅ”ais linkerd-starpniekserveris var saprÄtÄ«gi lÄ«dzsvarot slodzi un marÅ”rutÄt zvanus no Foo uz Bar gadÄ«jumiem, pamatojoties uz novÄroto latentumu; tas var atkÄrtot pieprasÄ«jumu, ja nepiecieÅ”ams (un ja tas ir idempotens); viÅÅ” var ierakstÄ«t atbildes kodu un taimautu utt. TÄpat joslas pusÄ esoÅ”ais linkerd-starpniekserveris var noraidÄ«t pieprasÄ«jumu, ja tas nav atļauts vai ja tiek pÄrsniegts pieprasÄ«juma limits; var novÄrst aizkavi no savas puses utt.
Starpniekserveri var ākaut ko darÄ«tā arÄ« savienojuma lÄ«menÄ«. PiemÄram, Linkerd-starpniekserveris Foo pusÄ var iniciÄt TLS savienojumu, un linkerd-starpniekserveris Bar pusÄ var to pÄrtraukt, un abas puses var pÄrbaudÄ«t viena otras TLS sertifikÄtus*. Tas nodroÅ”ina ne tikai Å”ifrÄÅ”anu starp pakalpojumiem, bet arÄ« kriptogrÄfiski droÅ”u veidu, kÄ identificÄt pakalpojumus: Foo un Bar var "pierÄdÄ«t", ka viÅi ir tÄdi, kÄdi viÅi saka.
* "Drauga draugs" nozÄ«mÄ, ka tiek verificÄts arÄ« klienta sertifikÄts (savstarpÄjs TLS). "KlasiskajÄ" TLS, piemÄram, starp pÄrlÅ«kprogrammu un serveri, parasti tiek pÄrbaudÄ«ts tikai vienas puses (servera) sertifikÄts.
NeatkarÄ«gi no tÄ, vai tie darbojas pieprasÄ«juma vai savienojuma lÄ«menÄ«, ir svarÄ«gi uzsvÄrt, ka visas pakalpojumu tÄ«kla funkcijas ir operatÄ«vi raksturs. Linkerd nevar pÄrveidot lietderÄ«gÄs slodzes semantiku, piemÄram, pievienot laukus JSON fragmentam vai veikt izmaiÅas protobufÄ. Par Å”o svarÄ«go funkciju mÄs runÄsim vÄlÄk, runÄjot par ESB un starpprogrammatÅ«ru.
Å is ir pakalpojumu tÄ«kla piedÄvÄto funkciju kopums. Rodas jautÄjums: kÄpÄc gan tos neieviest tieÅ”i aplikÄcijÄ? Un kÄpÄc vispÄr jÄjaucas ar starpniekserveri?
KÄpÄc servisa tÄ«kls ir laba ideja
Lai gan servisa tÄ«kla iespÄjas ir valdzinoÅ”as, tÄ galvenÄ vÄrtÄ«ba patiesÄ«bÄ nav funkcijÄs. Galu galÄ mÄs Var ieviest tos tieÅ”i lietojumprogrammÄ (vÄlÄk mÄs redzÄsim, ka tas bija pakalpojuma tÄ«kla izcelsme). VienÄ teikumÄ sakot, pakalpojuma tÄ«kla vÄrtÄ«ba ir: tas nodroÅ”ina funkcionalitÄti, kas ir bÅ«tiska mÅ«sdienu serveru programmatÅ«ras darbÄ«bai, konsekventi visÄ stekÄ un neatkarÄ«gi no lietojumprogrammas koda..
AnalizÄsim Å”o priekÅ”likumu.
Ā«Funkcijas, kas ir bÅ«tiskas modernas servera programmatÅ«ras darbinÄÅ”anai". Ja veidojat darÄ«jumu servera lietojumprogrammu, kas savienota ar publisko internetu un kas pieÅem pieprasÄ«jumus no Ärpasaules un atbild uz tiem Ä«sÄ laikÄ, piemÄram, tÄ«mekļa lietojumprogrammu, API serveri un lielÄko daļu citu modernu lietojumprogrammu, un ja jÅ«s to ievieÅ”at kÄ pakalpojumu kopu, kas sinhroni mijiedarbojas savÄ starpÄ, un ja jÅ«s pastÄvÄ«gi atjauninÄt Å”o programmatÅ«ru, pievienojot jaunas funkcijas, un ja modifikÄcijas laikÄ esat spiests uzturÄt Å”o sistÄmu darba stÄvoklÄ« - Å”ajÄ gadÄ«jumÄ apsveicam , jÅ«s veidojat modernu servera programmatÅ«ru. Un visas Ŕīs lieliskÄs funkcijas, kas uzskaitÄ«tas iepriekÅ”, patiesÄ«bÄ izrÄdÄs jums svarÄ«gas. Lietojumprogrammai jÄbÅ«t uzticamai, droÅ”ai, un jums ir jÄbÅ«t iespÄjai redzÄt, ko tÄ dara. TieÅ”i Å”os jautÄjumus palÄ«dz atrisinÄt servisa tÄ«kls.
(Labi, mana pÄrliecÄ«ba, ka Ŕī pieeja ir moderns servera programmatÅ«ras veidoÅ”anas veids, ir iezagusies iepriekÅ”ÄjÄ rindkopÄ. Citi dod priekÅ”roku monolÄ«tu, "reaktÄ«vo mikropakalpojumu" un citu lietu izstrÄdei, kas neietilpst augstÄk minÄtajÄ definÄ«cijÄ. Å iem cilvÄkiem, iespÄjams, ir savs viedoklis. kas atŔķiras no manÄjÄ, un, savukÄrt, es uzskatu, ka tie ir "nepareizi" - lai gan jebkurÄ gadÄ«jumÄ servisa tÄ«kls viÅiem nav Ä«paÅ”i noderÄ«gs).
Ā«Uniforma visai kaudzei". Pakalpojuma tÄ«kla piedÄvÄtÄs funkcijas ir ne tikai bÅ«tiskas. Tie attiecas uz visiem lietojumprogrammas pakalpojumiem neatkarÄ«gi no tÄ, kÄdÄ valodÄ tie ir rakstÄ«ti, kÄdÄ ietvarÄ tie tiek izmantoti, kas tos ir uzrakstÄ«jis, kÄ tie tika izvietoti, un visiem citiem to izstrÄdes un lietoÅ”anas smalkumiem.
Ā«Lietojumprogrammas kods ir neatkarÄ«gs". Visbeidzot, pakalpojumu tÄ«kls nodroÅ”ina ne tikai konsekventu funkcionalitÄti visÄ kaudzÄ, bet arÄ« tÄdÄ veidÄ, kas neprasa lietojumprogrammas rediÄ£ÄÅ”anu. Pakalpojuma tÄ«kla funkcionalitÄtes pamats, tostarp konfigurÄÅ”anas, atjauninÄÅ”anas, darbÄ«bas, uzturÄÅ”anas utt. uzdevumi, ir tikai platformas lÄ«menÄ« un nav atkarÄ«gs no lietojumprogrammas. Lietojumprogramma var mainÄ«ties, neietekmÄjot pakalpojuma tÄ«klu. SavukÄrt servisa tÄ«kls var mainÄ«ties bez jebkÄdas lietojumprogrammas iejaukÅ”anÄs.
ÄŖsÄk sakot, pakalpojumu tÄ«kls nodroÅ”ina ne tikai svarÄ«gu funkcionalitÄti, bet arÄ« globÄlÄ, vienotÄ un no lietojumprogrammÄm neatkarÄ«gÄ veidÄ. Un tÄpÄc, lai gan pakalpojuma tÄ«kla funkcionalitÄti var ieviest pakalpojuma kodÄ (piemÄram, kÄ bibliotÄku, kas iekļauta katrÄ pakalpojumÄ), Ŕī pieeja nenodroÅ”inÄs vienveidÄ«bu un neatkarÄ«bu, kas ir tik vÄrtÄ«ga pakalpojuma tÄ«kla gadÄ«jumÄ. .
Un viss, kas jums jÄdara, ir pievienot virkni starpniekserveru! Es apsolu, ka pavisam drÄ«z mÄs apskatÄ«sim darbÄ«bas izmaksas, kas saistÄ«tas ar Å”o starpniekserveru pievienoÅ”anu. Bet vispirms apstÄsimies un aplÅ«kosim Å”o neatkarÄ«bas ideju no dažÄdu perspektÄ«vu cilvÄki.
Kam servisa tīkls palīdz?
Lai cik tas nebÅ«tu neÄrti, lai tehnoloÄ£ija kļūtu par nozÄ«mÄ«gu ekosistÄmas sastÄvdaļu, cilvÄkiem tÄ ir jÄpieÅem. TÄtad, kuru interesÄ servisa tÄ«kls? Kas gÅ«st labumu no tÄ izmantoÅ”anas?
Ja izstrÄdÄjat modernu serveru programmatÅ«ru, varat aptuveni iedomÄties savu komandu kÄ grupu pakalpojumu Ä«paÅ”niekiemkas kopÄ«gi izstrÄdÄ un Ä«steno biznesa loÄ£iku, un platformas Ä«paÅ”niekiiesaistÄ«ti iekÅ”ÄjÄs platformas izstrÄdÄ, kurÄ darbojas Å”ie pakalpojumi. MazÄs organizÄcijÄs tie var bÅ«t vieni un tie paÅ”i cilvÄki, taÄu, uzÅÄmumam augot, Ŕīs lomas mÄdz kļūt izteiktÄkas un pat sadalÄ«tas apakÅ”lomÄs... (Å eit ir daudz ko teikt par devopu mainÄ«go raksturu, mikropakalpojumu organizatoriskÄ ietekme utt.). n. Bet pagaidÄm pieÅemsim Å”os aprakstus par paÅ”saprotamiem).
No Ŕī viedokļa nepÄrprotami labuma guvÄji no pakalpojumu tÄ«kla ir platformas Ä«paÅ”nieki. Galu galÄ platformas komandas galvenais mÄrÄ·is ir izveidot iekÅ”Äjo platformu, kurÄ pakalpojumu Ä«paÅ”nieki var Ä«stenot biznesa loÄ£iku un darÄ«t to tÄ, lai garantÄtu viÅu maksimÄlu neatkarÄ«bu no tÄs darbÄ«bas drÅ«majÄm detaļÄm. Pakalpojumu tÄ«kls ne tikai piedÄvÄ iespÄjas, kas ir bÅ«tiskas Ŕī mÄrÄ·a sasniegÅ”anai, bet arÄ« tÄdÄ veidÄ, kas, savukÄrt, nerada atkarÄ«bu no pakalpojumu Ä«paÅ”niekiem.
IeguvÄji ir arÄ« pakalpojumu Ä«paÅ”nieki, kaut arÄ« netieÅ”ÄkÄ veidÄ. Pakalpojuma Ä«paÅ”nieka mÄrÄ·is ir pÄc iespÄjas produktÄ«vÄk Ä«stenot biznesa procesa loÄ£iku, un jo mazÄk viÅam jÄuztraucas par darbÄ«bas jautÄjumiem, jo āālabÄk. TÄ vietÄ, lai ieviestu, teiksim, atkÄrtoÅ”anas politikas vai TLS, viÅi var koncentrÄties tikai uz biznesu un cerÄt, ka platforma parÅ«pÄsies par pÄrÄjo. ViÅiem tÄ ir liela priekÅ”rocÄ«ba.
Å Äda sadalÄ«juma starp platformu un pakalpojumu Ä«paÅ”niekiem organizatorisko vÄrtÄ«bu nevar pÄrvÄrtÄt. Es domÄju, ka viÅa dod savu ieguldÄ«jumu galvenais ieguldÄ«jumu pakalpojuma tÄ«kla vÄrtÄ«bÄ.
MÄs guvÄm Å”o mÄcÄ«bu, kad kÄds agrÄ«ns Linkerd fans mums pastÄstÄ«ja, kÄpÄc viÅi izvÄlÄjÄs servisa tÄ«klu, jo tas viÅiem ļÄva āturpinÄt runÄt lÄ«dz minimumamā. Å eit ir dažas detaļas: puiÅ”i no viena liela uzÅÄmuma migrÄja savu platformu uz Kubernetes. TÄ kÄ lietojumprogramma strÄdÄja ar sensitÄ«vu informÄciju, viÅi vÄlÄjÄs Å”ifrÄt visus klasteros esoÅ”os sakarus. TomÄr situÄciju sarežģīja simtiem pakalpojumu un simtiem izstrÄdes komandu klÄtbÅ«tne. Izredzes sazinÄties ar visiem un pÄrliecinÄt viÅus iekļaut savos plÄnos atbalstu TLS viÅus nemaz neiepriecinÄja. InstalÄjot Linkerd, viÅi migrÄja atbildÄ«ba no izstrÄdÄtÄjiem (no kuru viedokļa tÄs bija liekas problÄmas) lÄ«dz platformeriem, kuriem tÄ bija augstÄkÄ lÄ«meÅa prioritÄte. Citiem vÄrdiem sakot, Linkerds viÅiem atrisinÄja ne tik daudz tehnisku, cik organizatorisku problÄmu.
ÄŖsÄk sakot, servisa tÄ«kls drÄ«zÄk nav tehnisks risinÄjums, bet gan sociÄli tehniskais ProblÄmas. (Paldies Sindija Å ridharana par Ŕī termina ievieÅ”anu.
Vai servisa tÄ«kls atrisinÄs visas manas problÄmas?
JÄ. Es domÄju, nÄ!
AplÅ«kojot trÄ«s iepriekÅ” izklÄstÄ«tÄs funkciju klases ā uzticamÄ«bu, droŔību un novÄrojamÄ«bu ā kļūst skaidrs, ka servisa tÄ«kls nav pilnÄ«gs risinÄjums nevienai no Ŕīm problÄmÄm. Lai gan Linkerd var nosÅ«tÄ«t atkÄrtotus pieprasÄ«jumus (ja tas zina, ka tie ir idempotenti), tas nevar pieÅemt lÄmumus par to, ko atgriezt lietotÄjam, ja pakalpojums beidzot ir pazudis ā Å”Ädi lÄmumi ir jÄpieÅem lietojumprogrammai. Linkerd var uzturÄt statistiku par veiksmÄ«giem pieprasÄ«jumiem, taÄu tas nevar ieskatÄ«ties pakalpojumÄ un nodroÅ”inÄt tÄ iekÅ”Äjos rÄdÄ«tÄjus - lietojumprogrammai ir jÄbÅ«t Å”Ädam rÄ«ku komplektam. Un, lai gan Linkerd spÄj mitinÄt mTLS, pilnvÄrtÄ«giem droŔības risinÄjumiem ir nepiecieÅ”ams daudz vairÄk.
Pakalpojuma tÄ«kla piedÄvÄto funkciju apakÅ”kopa Å”ajÄs jomÄs ir saistÄ«ta ar platformas funkcijas. Ar to es domÄju funkcijas, kas:
NeatkarÄ«gi no biznesa loÄ£ikas. Veids, kÄdÄ tiek veidotas izsaukuma histogrammas starp Foo un Bar, ir pilnÄ«gi neatkarÄ«gs no tÄ, vai kÄpÄc FÅ« zvana BÄram.
GrÅ«ti pareizi ieviest. ProgrammÄ Linkerd atkÄrtoÅ”anas mÄÄ£inÄjumi tiek parametrizÄti, izmantojot visu veidu smalkas lietas, piemÄram, atkÄrtoto mÄÄ£inÄjumu budžetus. (mÄÄ£inÄt budžetu vÄlreiz), jo vienkÄrÅ”a pieeja Å”Ädu lietu Ä«stenoÅ”anai noteikti novedÄ«s pie tÄ sauktÄs "pieprasÄ«jumu lavÄ«nas" raÅ”anÄs. (mÄÄ£inÄt vÄlreiz vÄtru) un citas problÄmas, kas raksturÄ«gas sadalÄ«tajÄm sistÄmÄm.
VisefektÄ«vÄkais, ja to lieto konsekventi. TLS mehÄnismam ir jÄga tikai tad, ja to izmanto visur.
TÄ kÄ Å”Ä«s funkcijas ir ieviestas starpniekservera slÄnÄ« (nevis lietojumprogrammas slÄnÄ«), pakalpojumu tÄ«kls tos atklÄj platformas, nevis lietojumprogrammas. TÄdÄjÄdi nav svarÄ«gi, kÄdÄ valodÄ pakalpojumi ir rakstÄ«ti, kÄdu ietvaru tie izmanto, kas tos ir rakstÄ«jis un kÄpÄc. Starpniekserveri darbojas tÄlÄk par visÄm Ŕīm detaļÄm, un Ŕīs funkcionalitÄtes pamats, tostarp konfigurÄÅ”anas, atjauninÄÅ”anas, darbÄ«bas, uzturÄÅ”anas utt., ir tikai platformas lÄ«menÄ«.
Pakalpojumu tÄ«kla iespÄju piemÄri
RezumÄjot, pakalpojumu tÄ«kls nav pilnÄ«gs risinÄjums uzticamÄ«bai, novÄrojamÄ«bai vai droŔībai. Å o jomu darbÄ«bas joma paredz pakalpojumu Ä«paÅ”nieku, Ops / SRE komandu un citu uzÅÄmuma ieinteresÄto personu obligÄtu lÄ«dzdalÄ«bu. Servisa tÄ«kls nodroÅ”ina tikai "ŔķÄli" platformas lÄ«menÄ« katrai no Ŕīm jomÄm.
KÄpÄc pakalpojumu tÄ«kls ir kļuvis populÄrs tieÅ”i tagad?
JÅ«s droÅ”i vien Å”obrÄ«d domÄjat: labi, ja pakalpojumu tÄ«kls ir tik labs, kÄpÄc mÄs nesÄkÄm izvietot miljoniem starpniekserveru stekÄ pirms desmit gadiem?
Uz Å”o jautÄjumu ir banÄla atbilde: pirms desmit gadiem visi bÅ«vÄja monolÄ«tus, un nevienam nebija vajadzÄ«gs servisa tÄ«kls. TÄ ir patiesÄ«ba, taÄu, manuprÄt, Ŕī atbilde neietver jÄgu. Jau pirms desmit gadiem mikropakalpojumu jÄdziens kÄ daudzsoloÅ”s veids liela mÄroga sistÄmu izveidei tika plaÅ”i apspriests un pielietots tÄdos uzÅÄmumos kÄ Twitter, Facebook, Google un Netflix. VispÄrÄjais uzskats ā vismaz tajÄs nozares daļÄs, ar kurÄm esmu saskÄries ā bija tÄds, ka mikropakalpojumi ir āpareizais veidsā, kÄ veidot lielas sistÄmas, pat ja tas bija sasodÄ«ti grÅ«ti.
Protams, lai gan pirms desmit gadiem bija uzÅÄmumi, kas izmantoja mikropakalpojumus, tie nelÄ«mÄja starpniekserverus visur, kur varÄja izveidot pakalpojumu tÄ«klu. TomÄr, ja paskatÄs uzmanÄ«gi, viÅi darÄ«ja kaut ko lÄ«dzÄ«gu: daudzi no Å”iem uzÅÄmumiem lika izmantot Ä«paÅ”u iekÅ”Äjo bibliotÄku tÄ«klu veidoÅ”anai (dažreiz sauktu par resno klientu bibliotÄku, resnÄ klienta bibliotÄka).
Netflix bija Hysterix, Google bija Stubby, Twitter bija Finagle bibliotÄka. PiemÄram, Finagle ir bijis obligÄts katram jaunam pakalpojumam Twitter. Tas apstrÄdÄja gan savienojumu klienta, gan servera puses, ļÄva atkÄrtot pieprasÄ«jumus, atbalstÄ«ja pieprasÄ«jumu marÅ”rutÄÅ”anu, slodzes lÄ«dzsvaroÅ”anu un mÄrÄ«Å”anu. Tas nodroÅ”inÄja konsekventu uzticamÄ«bas un novÄrojamÄ«bas lÄ«meni visÄ Twitter kaudzÄ neatkarÄ«gi no tÄ, ko pakalpojums darÄ«ja. Protams, tas darbojÄs tikai JVM valodÄs un bija balstÄ«ts uz programmÄÅ”anas modeli, kas bija jÄizmanto visai lietojumprogrammai. TomÄr tÄ funkcionalitÄte bija gandrÄ«z tÄda pati kÄ servisa tÄ«kla funkcionalitÄte. (PatiesÄ«bÄ pirmÄ Linkerd versija bija tikai Finagle, kas iesaiÅota starpniekservera formÄ.)
TÄdÄjÄdi pirms desmit gadiem bija ne tikai mikropakalpojumi, bet arÄ« Ä«paÅ”as proto-service-mesh bibliotÄkas, kas atrisinÄja tÄs paÅ”as problÄmas, kuras Å”odien risina pakalpojumu tÄ«kls. TaÄu pats servisa tÄ«kls toreiz neeksistÄja. Pirms viÅa parÄdÄ«Å”anÄs vajadzÄja bÅ«t vÄl vienai maiÅai.
Un Å”eit slÄpjas dziļÄkÄ atbilde, kas slÄpjas citÄs izmaiÅÄs, kas notikuÅ”as pÄdÄjo 10 gadu laikÄ: ir krasi samazinÄjuÅ”Äs mikropakalpojumu izvietoÅ”anas izmaksas. IepriekÅ” minÄtie uzÅÄmumi, kas izmantoja mikropakalpojumus pirms desmit gadiem ā Twitter, Netflix, Facebook, Google ā bija milzÄ«ga mÄroga un milzÄ«gu resursu uzÅÄmumi. ViÅiem bija ne tikai vajadzÄ«ba, bet arÄ« iespÄja izveidot, izvietot un darbinÄt lielas lietojumprogrammas, kuru pamatÄ ir mikropakalpojumi. EnerÄ£ija un pÅ«les, ko Twitter inženieri ir ieguldÄ«juÅ”i, lai pÄrietu no monolÄ«ta uz mikropakalpojumu pieeju, ir pÄrsteidzoÅ”a. (GodÄ«gi sakot, tÄpat kÄ fakts, ka tas strÄdÄja.) MazÄkiem uzÅÄmumiem Å”Äda veida infrastruktÅ«ras manevrÄÅ”ana nebija iespÄjama.
PÄrejam uz tagadni. MÅ«sdienÄs ir jaunizveidoti uzÅÄmumi, kuros mikropakalpojumu attiecÄ«ba pret izstrÄdÄtÄjiem ir 5:1 (vai pat 10:1), un turklÄt viÅi veiksmÄ«gi tiek ar tiem galÄ! Ja 5 cilvÄku starta uzÅÄmums bez sasprindzinÄjuma spÄj darbinÄt 50 mikropakalpojumus, tad kaut kas nepÄrprotami samazinÄja to ievieÅ”anas izmaksas.
1500 mikropakalpojumi Monco; katra lÄ«nija ir noteikta tÄ«kla kÄrtula, kas pieļauj trafiku
Dramatiskais mikropakalpojumu darbÄ«bas izmaksu samazinÄjums ir viena procesa rezultÄts: pieaug konteineru popularitÄte Šø orÄ·estranti. TieÅ”i Ŕī ir dziļa atbilde uz jautÄjumu par to, kas veicinÄja servisa tÄ«kla raÅ”anos. TÄ pati tehnoloÄ£ija padarÄ«ja pievilcÄ«gu gan pakalpojumu tÄ«klu, gan mikropakalpojumus: Kubernetes un Docker.
KÄpÄc? Nu, Docker atrisina vienu lielu problÄmu - iepakojuma problÄmu. IesaiÅojot lietojumprogrammu un tÄs (ne tÄ«kla) izpildlaika atkarÄ«bas konteinerÄ, Docker pÄrvÄrÅ” lietojumprogrammu par aizstÄjamu vienÄ«bu, kuru var mitinÄt un palaist jebkurÄ vietÄ. TajÄ paÅ”Ä laikÄ tas ievÄrojami vienkÄrÅ”o darbÄ«bu. daudzvalodu kaudze: tÄ kÄ konteiners ir izpildes atomu vienÄ«ba, izvietoÅ”anas un darbÄ«bas nolÅ«kos nav nozÄ«mes tam, kas atrodas iekÅ”pusÄ, neatkarÄ«gi no tÄ, vai tÄ ir JVM, Node, Go, Python vai Ruby lietojumprogramma. JÅ«s vienkÄrÅ”i palaižat to un viss.
Kubernetes visu paceļ nÄkamajÄ lÄ«menÄ«. Tagad, kad ir daudz "izpildÄmu lietu" un daudzas maŔīnas, ar kurÄm tÄs darbinÄt, ir nepiecieÅ”ams rÄ«ks, kas varÄtu tÄs saskaÅot. PlaÅ”Ä nozÄ«mÄ jÅ«s pieŔķirat Kubernetes daudz konteineru un daudzas maŔīnas, un tas tos saskaÅo savÄ starpÄ (protams, tas ir dinamisks un pastÄvÄ«gi mainÄ«gs process: sistÄmÄ pÄrvietojas jauni konteineri, maŔīnas ieslÄdzas un apstÄjas utt. Kubernetes to visu Åem vÄrÄ ).
Kad Kubernetes ir iestatÄ«ts, laiks, kas nepiecieÅ”ams viena pakalpojuma izvietoÅ”anai un darbÄ«bai, daudz neatŔķiras no desmit pakalpojumu izvietoÅ”anas un darbÄ«bas izmaksÄm (faktiski tas ir gandrÄ«z vienÄds 100 pakalpojumiem). Pievienojiet Å”iem konteineriem kÄ iepakoÅ”anas mehÄnismu, kas veicina daudzvalodu ievieÅ”anu, un jums bÅ«s daudz jaunu lietojumprogrammu, kas ieviestas kÄ mikropakalpojumi, kas rakstÄ«ti vairÄkÄs valodÄs, tieÅ”i tÄdÄ vidÄ, kurai pakalpojumu tÄ«kls ir tik labi piemÄrots.
TÄtad, mÄs nonÄkam pie atbildes uz jautÄjumu, kÄpÄc ideja par servisa tÄ«klu ir kļuvusi populÄra tieÅ”i tagad: Kubernetes sniegtÄ vienveidÄ«ba pakalpojumiem ir tieÅ”i attiecinÄma uz servisa tÄ«kla darbÄ«bas uzdevumiem. JÅ«s iesaiÅojat starpniekserverus konteineros, uzdodiet Kubernetes tos pielÄ«mÄt, kur vien iespÄjams, un voilÄ! IzvadÄ jÅ«s saÅemat pakalpojuma tÄ«klu, savukÄrt Kubernetes kontrolÄ visu tÄ izvietoÅ”anas mehÄnismu. (Vismaz no putna lidojuma. Protams, Å”im procesam ir daudz nianÅ”u.)
RezumÄjot: iemesls, kÄpÄc pakalpojumu tÄ«kls kļuva populÄrs tagad, nevis pirms desmit gadiem, ir tas, ka Kubernetes un Docker ne tikai ievÄrojami palielinÄjÄs nepiecieÅ”ams tajÄ vienkÄrÅ”ojot lietojumprogrammu ievieÅ”anu kÄ daudzvalodu mikropakalpojumu komplektus, bet arÄ« ievÄrojami samazinot izmaksas tÄs darbÄ«bai, nodroÅ”inot mehÄnismus blakusvÄÄ£u starpstÄvu parku izvietoÅ”anai un uzturÄÅ”anai.
KÄpÄc tik daudz tiek runÄts par pakalpojumu tÄ«klu?
UzmanÄ«bu: Å ajÄ sadaÄ¼Ä es izmantoju visu veidu pieÅÄmumus, minÄjumus, izdomÄjumus un iekÅ”Äjo informÄciju.
MeklÄjot āpakalpojumu tÄ«klsā, tiks parÄdÄ«ts daudz otrreizÄji pÄrstrÄdÄtu, zemu kaloriju satura, dÄ«vainu projektu un atbalss kameras cienÄ«gu kropļojumu kaleidoskopu. Tas ir pieejams jebkurai modernai jaunai tehnoloÄ£ijai, taÄu servisa tÄ«kla gadÄ«jumÄ problÄma ir Ä«paÅ”i aktuÄla. KÄpÄc?
Nu, daļÄji tÄ ir mana vaina. Esmu darÄ«jis visu iespÄjamo, lai katru iespÄju reklamÄtu Linkerd un pakalpojumu tÄ«klu, izmantojot neskaitÄmus emuÄra ierakstus un rakstus, piemÄram, Å”o. Bet es neesmu tik spÄcÄ«gs. Lai patiesi atbildÄtu uz Å”o jautÄjumu, mums nedaudz jÄparunÄ par vispÄrÄjo situÄciju. Un par to nav iespÄjams runÄt, nepieminot vienu projektu: Istio ir atvÄrtÄ pirmkoda pakalpojumu tÄ«kls, ko kopÄ«gi izstrÄdÄjuÅ”i Google, IBM un Lyft.
(Å iem trim uzÅÄmumiem ir ļoti atŔķirÄ«gas lomas: Ŕķiet, ka Lyft iesaistÄ«Å”anÄs aprobežojas tikai ar nosaukumu; tie ir sÅ«tÅa autors, bet neizmanto vai nav iesaistÄ«ti Istio izstrÄdÄ. IBM ir iesaistÄ«ts Istio izstrÄdÄ un izmanto to. Google ir ļoti svarÄ«gs iesaistÄ«ts Istio izstrÄdÄ, bet, cik es varu pateikt, faktiski to neizmanto.)
Istio projekts ir ievÄrojams ar divÄm lietÄm. PirmkÄrt, tas ir milzÄ«gs mÄrketinga darbs, ko Google jo Ä«paÅ”i iegulda savÄ reklamÄÅ”anÄ. Es lÄÅ”u, ka lielÄkÄ daļa cilvÄku, kas paÅ”laik ir informÄti par pakalpojumu tÄ«kla koncepciju, pirmo reizi par to uzzinÄja, pateicoties Istio. Otra iezÄ«me ir tas, cik slikti Istio tika uzÅemts. Å ajÄ jautÄjumÄ es, protams, esmu ieinteresÄtÄ puse, bet, cenÅ”oties palikt pÄc iespÄjas objektÄ«vÄks, es joprojÄm nevaru palÄ«dzÄt AtzÄ«mÄtļotinegatÄ«vsattieksme, ne pÄrÄk specifisks (lai gan ne unikÄls: nÄk prÄtÄ systemd, salÄ«dzinÄjumstika iznests ÄrÄjauatkÄrtoti...) atvÄrtÄ pirmkoda projektam.
(PraksÄ Å”Ä·iet, ka Istio ir problÄmas ne tikai ar sarežģītÄ«bu un UX, bet arÄ« ar veiktspÄju. PiemÄram, laikÄ Linkerd veiktspÄjas novÄrtÄjumiTreÅ”Äs puses veiktajÄ darbÄ eksperti konstatÄja situÄcijas, kurÄs Istio astes latentums bija 100 reizes lielÄks nekÄ Linkerd, kÄ arÄ« situÄcijas ar resursu trÅ«kumu, kad Linkerd turpinÄja veiksmÄ«gi darboties un Istio pilnÄ«bÄ pÄrtrauca darboties.)
AtstÄjot malÄ manas teorijas par to, kÄpÄc tas notika, es uzskatu, ka nenozÄ«mÄ«gÄ ažiotÄža ap pakalpojumu tÄ«klu ir saistÄ«ta ar Google iesaistÄ«Å”anos. Proti, Å”Ädu trÄ«s faktoru kombinÄcija:
Google uzmÄcÄ«ga Istio reklamÄÅ”ana;
atbilstoŔa noraidoŔa, kritiska attieksme pret projektu;
Kubernetes pÄdÄjÄ laikÄ strauji pieaugoÅ”Ä popularitÄte, par kuru atmiÅÄ joprojÄm ir svaiga.
KopÄ Å”ie faktori saplÅ«st sava veida apreibinoÅ”Ä, bezskÄbekļa vidÄ, kurÄ ir vÄjinÄta spÄja racionÄli spriest, un paliek tikai brÄ«niŔķīga dažÄdÄ«ba. tulpju mÄnija.
No Linkerda viedokļa tÄ ir... es to raksturotu kÄ jauktu svÄtÄ«bu. Es domÄju, tas ir lieliski, ka pakalpojumu tÄ«kls ir ienÄcis galvenajÄ straumÄ ā tas tÄ nebija 2016. gadÄ, kad Linkerd pirmo reizi parÄdÄ«jÄs, un bija patieÅ”Äm grÅ«ti pievÄrst cilvÄku uzmanÄ«bu projektam. Tagad tÄdu problÄmu nav! Bet sliktÄ ziÅa ir tÄ, ka pakalpojumu tÄ«kla situÄcija mÅ«sdienÄs ir tik mulsinoÅ”a, ka ir gandrÄ«z neiespÄjami noskaidrot, kuri projekti patieÅ”Äm ietilpst pakalpojumu tÄ«kla kategorijÄ (nemaz nerunÄjot par to, kurÅ” no tiem ir vislabÄkais konkrÄtajam lietoÅ”anas gadÄ«jumam). Tas noteikti traucÄ visiem (un noteikti dažos gadÄ«jumos Istio vai kÄds cits projekts ir labÄks par Linkerd, jo pÄdÄjais nav universÄls risinÄjums).
No Linkerda puses mÅ«su stratÄÄ£ija ir bijusi ignorÄt troksni, turpinÄt koncentrÄties uz reÄlo problÄmu risinÄÅ”anu sabiedrÄ«bÄ un bÅ«tÄ«bÄ gaidÄ«t, kamÄr ažiotÄža norims. Galu galÄ ažiotÄža norims un varÄsim mierÄ«gi turpinÄt darbu.
LÄ«dz tam mums visiem bÅ«s jÄbÅ«t pacietÄ«giem.
Vai servisa tÄ«kls man, pieticÄ«gam programmatÅ«ras inženierim, noderÄs?
SekojoÅ”Ä anketa palÄ«dzÄs atbildÄt uz Å”o jautÄjumu:
Vai jÅ«s nodarbojaties tikai ar biznesa loÄ£ikas ievieÅ”anu? Å ajÄ gadÄ«jumÄ servisa tÄ«kls jums nebÅ«s noderÄ«gs. Tas, protams, jÅ«s varÄtu interesÄt, taÄu ideÄlÄ gadÄ«jumÄ pakalpojumu tÄ«klam nevajadzÄtu tieÅ”i ietekmÄt neko jÅ«su vidÄ. Turpiniet strÄdÄt pie tÄ, par ko jums maksÄ.
Vai jÅ«s uzturat platformu uzÅÄmumÄ, kas izmanto Kubernetes? JÄ, Å”ajÄ gadÄ«jumÄ jums ir nepiecieÅ”ams servisa tÄ«kls (protams, ja jÅ«s neizmantojat K8s tikai, lai palaistu monolÄ«tu vai pakeÅ”u apstrÄdi - bet tad es gribÄtu jautÄt, kÄpÄc jums ir nepiecieÅ”ams K8s). VisticamÄk, jÅ«s nonÄksit situÄcijÄ ar daudziem mikropakalpojumiem, ko rakstÄ«juÅ”i dažÄdi cilvÄki. Tie visi mijiedarbojas viens ar otru un ir saistÄ«ti ar izpildlaika atkarÄ«bu mudžekli, un jums ir jÄatrod veids, kÄ ar to visu tikt galÄ. Kubernetes izmantoÅ”ana ļauj izvÄlÄties servisa sietu "paÅ”am". Lai to izdarÄ«tu, iepazÄ«stieties ar to iespÄjÄm un funkcijÄm un atbildiet uz jautÄjumu, vai kÄds no pieejamajiem projektiem jums vispÄr ir piemÄrots (iesaku sÄkt pÄtÄ«jumu ar Linkerd).
Vai izmantojat platformu uzÅÄmumam, kas NEIZMANTO Kubernetes, bet izmanto mikropakalpojumus? Å ajÄ gadÄ«jumÄ servisa tÄ«kls jums bÅ«s noderÄ«gs, taÄu tÄ izmantoÅ”ana nebÅ«s triviÄla. Protams tu vari atdarinÄt pakalpojumu tÄ«klu, mitinot virkni starpniekserveru, taÄu svarÄ«ga Kubernetes priekÅ”rocÄ«ba ir tieÅ”i izvietoÅ”anas modelis: Å”o starpniekserveru manuÄla uzturÄÅ”ana prasÄ«s daudz vairÄk laika, pūļu un izmaksu.
Vai esat atbildÄ«gs par platformu uzÅÄmumÄ, kas strÄdÄ ar monolÄ«tiem? Å ajÄ gadÄ«jumÄ jums, iespÄjams, nav nepiecieÅ”ams servisa tÄ«kls. Ja strÄdÄjat ar monolÄ«tiem (vai pat monolÄ«tu kolekcijÄm), kuriem ir labi definÄti un reti mainÄ«gi mijiedarbÄ«bas modeļi, pakalpojumu tÄ«klam jums ir maz ko piedÄvÄt. TÄtad jÅ«s varat to ignorÄt un cerÄt, ka tas pazÅ«d kÄ slikts sapnis...
SecinÄjums
IespÄjams, servisa tÄ«klu joprojÄm nevajadzÄtu saukt par āvisvairÄk izskanÄjuÅ”o tehnoloÄ£iju pasaulÄā - Å”is apÅ”aubÄmais gods, iespÄjams, pieder bitcoin vai AI. VarbÅ«t viÅa ir pirmajÄ pieciniekÄ. Bet, izlaužoties cauri trokÅ”Åa un trokÅ”Åa slÄÅiem, kļūst skaidrs, ka pakalpojumu tÄ«kls sniedz reÄlus ieguvumus tiem, kas veido lietojumprogrammas Kubernetes.
Es vÄlÄtos, lai jÅ«s izmÄÄ£inÄtu Linkerd ā instalÄjot to Kubernetes klasterÄ« (vai pat Minikube klÄpjdatorÄ) aizÅem apmÄram 60 sekundesun jÅ«s paÅ”i redzat, par ko es runÄju.
FAQ
- Ja es ignorÄÅ”u servisa tÄ«klu, vai tas pazudÄ«s?
- Man jums ir jÄpieviļ: servisa tÄ«kls ir pie mums ilgu laiku.
ā Bet es NEGRIBAS izmantot servisa sietu!
ā Nu nevajag! VienkÄrÅ”i izlasiet manu iepriekÅ” sniegto anketu, lai redzÄtu, vai jums vajadzÄtu vismaz iepazÄ«ties ar tÄs pamatiem.
ā Vai tas nav vecais labais ESB/middleware ar jaunu mÄrci?
- Pakalpojumu tÄ«kls attiecas uz darbÄ«bas loÄ£iku, nevis semantisku. Tas bija galvenais trÅ«kums uzÅÄmuma apkalpoÅ”anas autobuss (ESB). Å Ä«s atdalÄ«Å”anas saglabÄÅ”ana palÄ«dz pakalpojumu tÄ«klam izvairÄ«ties no tÄda paÅ”a likteÅa.
- KÄ pakalpojumu tÄ«kls atŔķiras no API vÄrtejÄm?
Par Å”o tÄmu ir miljons rakstu. VienkÄrÅ”i google.
Vai sūtnis ir dienesta tīkls?
- NÄ, Envoy nav pakalpojumu tÄ«kls, tas ir starpniekserveris. To var izmantot, lai organizÄtu pakalpojumu tÄ«klu (un daudz ko citu ā tas ir vispÄrÄjas nozÄ«mes starpniekserveris). Bet pats par sevi tas nav servisa tÄ«kls.
- Network Service Mesh ā vai tas ir pakalpojumu tÄ«kls?
- NÄ. Neskatoties uz nosaukumu, tas nav pakalpojumu tÄ«kls (kÄ jums patÄ«k mÄrketinga brÄ«numi?).
- Vai pakalpojumu tÄ«kls palÄ«dzÄs manai reaktÄ«vai asinhronajai sistÄmai, kuras pamatÄ ir ziÅojumu rinda?
- NÄ, servisa tÄ«kls jums nepalÄ«dzÄs.
- Kuru pakalpojumu tÄ«klu man vajadzÄtu izmantot?
SÄkot no Linkerd, bez prÄta.
- Raksts sÅ«dÄ«gs! / Autors - uz ziepÄm!
ā LÅ«dzu, padalieties ar saiti uz to ar visiem draugiem, lai viÅi par to pÄrliecinÄtos!
Lai gan man patÄ«k sevi dÄvÄt par "Linkerd izstrÄdÄtÄju", realitÄte ir tÄda, ka es vairÄk esmu README.md faila uzturÄtÄjs projektÄ. Å odien strÄdÄjam pie Linkerd ļoti, ļoti, ļotiŠ¼Š½Š¾Š³Š¾ cilvÄku, un Å”is projekts nebÅ«tu iespÄjams bez apbrÄ«nojamÄs lÄ«dzstrÄdnieku un lietotÄju kopienas.
Un visbeidzot, Ä«paÅ”s paldies Linkerd izveidotÄjam, Olivers GÅ«lds(primus inter pares), kurÅ” kopÄ ar mani pirms daudziem gadiem ienira visÄ Å”ajÄ kÅadÄ ar servisa tÄ«klu.