
PiezÄ«me. tulk.: Å Ä« raksta autors (Luks PÄrkinss) ir izstrÄdÄtÄju advokÄts CNCF organizÄcijÄ, kurÄ atrodas tÄdi atvÄrtÄ pirmkoda projekti kÄ Linkerd, SMI (Service Mesh Interface) un Kuma (starp citu, vai esat arÄ« aizdomÄjuÅ”ies, kÄpÄc Istio ir vai nav Å”ajÄ sarakstÄ?.). VÄlreiz mÄÄ£inot DevOps kopienai labÄk izprast moderno ažiotÄžu, ko sauc par "pakalpojumu tÄ«klu", viÅÅ” uzskaita 16 raksturÄ«gÄs iespÄjas, ko sniedz Å”Ädi risinÄjumi.
Å odien ā viena no karstÄkajÄm tÄmÄm programmatÅ«ras inženierijas jomÄ (un pamatoti!). Es domÄju, ka Ŕī tehnoloÄ£ija ir neticami daudzsoloÅ”a, un es vÄlÄtos, lai tÄ tiktu plaÅ”i izmantota (protams, kad tam ir jÄga). TomÄr lielÄkajai daļai cilvÄku to joprojÄm ieskauj noslÄpumaina aura. TajÄ paÅ”Ä laikÄ pat tie, kuri plaÅ”i pazÄ«stams ar to bieži ir grÅ«ti formulÄt tÄ priekÅ”rocÄ«bas un to, kas tieÅ”i tas ir (ieskaitot jÅ«su patieso). Å ajÄ rakstÄ es mÄÄ£inÄÅ”u labot situÄciju, uzskaitot dažÄdus lietoÅ”anas gadÄ«jumi "pakalpojumu tÄ«kli"*.
* PiezÄ«me tulk.: Å”eit un turpmÄk rakstÄ tieÅ”i Å”is tulkojums (āservice meshā) tiks izmantots vÄl jaunajam terminam service mesh.
Bet vispirms es vÄlos izteikt dažus komentÄrus:
- Es nekad neesmu strÄdÄjis ar servisa tÄ«kliem vai izmantojis tos Ärpus savas izglÄ«tÄ«bas projektiem. No otras puses, es biju tas, kurÅ” 2015. gadÄ uzrakstÄ«ja daudz dokumentÄcijas Twitter iekÅ”Äjam pakalpojuma tÄ«klam (toreiz to pat nesauca par "pakalpojumu tÄ«klu") un piedalÄ«jos vietnes un dokumentÄcijas izstrÄdÄ. , tÄtad tas kaut ko nozÄ«mÄ.
- Mans saraksts ir aptuvens un nepilnÄ«gs. IespÄjams, ir man nezinÄmi lietoÅ”anas gadÄ«jumi, un laika gaitÄ, attÄ«stoties tehnoloÄ£ijai un augot tÄs popularitÄtei, visticamÄk, radÄ«sies jaunas iespÄjas.
- TajÄ paÅ”Ä laikÄ ne katra esoÅ”Ä pakalpojumu tÄ«kla ievieÅ”ana atbalsta visus uzskaitÄ«tos lietoÅ”anas gadÄ«jumus. TÄpÄc mani apgalvojumi, piemÄram, āpakalpojumu tÄ«kls var...ā ir jÄlasa kÄ āatseviŔķs, un, iespÄjams, visas populÄrÄs pakalpojumu tÄ«kla ievieÅ”anas var...ā.
- PiemÄru secÄ«bai nav nekÄdas atŔķirÄ«bas.
ÄŖss saraksts:
- pakalpojumu atklÄÅ”ana;
- Å”ifrÄÅ”ana;
- autentifikÄcija un autorizÄcija;
- slodzes balansÄÅ”ana;
- Ä·Ädes pÄrtraukums;
- automÄtiskÄ mÄrogoÅ”ana;
- kanÄriju izvietoÅ”ana;
- zili zaļi izvietojumi;
- veselÄ«bas pÄrbaude;
- slodzes nolaiŔana;
- satiksmes atspoguļoŔana;
- izolÄcija;
- pieprasÄ«juma Ätruma ierobežoÅ”ana, atkÄrtojumi un taimauts;
- telemetrija;
- audits;
- vizualizÄcija.
1. Pakalpojuma atklÄÅ”ana
TL;DR: izveidojiet savienojumu ar citiem tÄ«kla pakalpojumiem, izmantojot vienkÄrÅ”us nosaukumus.
Pakalpojumiem jÄspÄj automÄtiski āatrastā vienam otru, izmantojot atbilstoÅ”us nosaukumus, piemÄram, service.api.production, pets/staging vai cassandra. MÄkoÅu vide ir elastÄ«ga, un viens nosaukums var paslÄpt daudzus pakalpojuma gadÄ«jumus. Ir skaidrs, ka Å”ÄdÄ situÄcijÄ visas IP adreses fiziski nav iespÄjams kodÄt.
TurklÄt, kad viens pakalpojums atrod citu pakalpojumu, tam vajadzÄtu bÅ«t iespÄjai nosÅ«tÄ«t pieprasÄ«jumus Å”im pakalpojumam, nebaidoties, ka tie nonÄks tÄ bojÄtÄs instances ievadÄ. Citiem vÄrdiem sakot, pakalpojumu tÄ«klam ir jÄuzrauga visu pakalpojumu gadÄ«jumu stÄvoklis un jÄuztur resursdatoru saraksts pÄc iespÄjas atjauninÄts.
Katrs pakalpojumu tÄ«kls pakalpojuma atklÄÅ”anas mehÄnismu ievieÅ” atŔķirÄ«gi. PaÅ”laik visizplatÄ«tÄkais veids ir deleÄ£Ät ÄrÄjiem procesiem, piemÄram, Kubernetes DNS. AgrÄk pakalpojumÄ Twitter mÄs Å”im nolÅ«kam izmantojÄm nosaukumu sistÄmu . TurklÄt pakalpojumu tÄ«kla tehnoloÄ£ija ļauj izveidot pielÄgotus nosaukumu pieŔķirÅ”anas mehÄnismus (lai gan es vÄl neesmu redzÄjis nevienu SM ievieÅ”anu ar Å”Ädu funkcionalitÄti).
2. Å ifrÄÅ”ana
TL;DR: atbrÄ«vojieties no neÅ”ifrÄtas trafika starp pakalpojumiem un padariet Å”o procesu automatizÄtu un mÄrogojamu.
Ir patÄ«kami apzinÄties, ka uzbrucÄji nevar iekļūt jÅ«su iekÅ”ÄjÄ tÄ«klÄ. UgunsmÅ«ri to dara lielisku darbu. Bet kas notiek, ja hakeris iekļūst iekÅ”Ä? Vai viÅÅ” ar dienesta iekÅ”Äjo satiksmi varÄs darÄ«t visu, ko vÄlas? CerÄsim, ka tas tomÄr nenotiks. Lai novÄrstu Å”o scenÄriju, ir jÄievieÅ” nulles uzticamÄ«bas tÄ«kls, kurÄ visa satiksme starp pakalpojumiem ir Å”ifrÄta. LielÄkÄ daļa mÅ«sdienu servisa tÄ«klu to panÄk ar savstarpÄju palÄ«dzÄ«bu (savstarpÄjs TLS, mTLS). Dažos gadÄ«jumos mTLS darbojas veselos mÄkoÅos un klasteros (es domÄju, ka starpplanÄtu sakari kÄdreiz tiks sakÄrtoti lÄ«dzÄ«gi).
Protams, mTLS pakalpojumu tÄ«klam neobligÄti. Katrs pakalpojums var rÅ«pÄties par savu TLS, taÄu tas nozÄ«mÄ, ka jums bÅ«s jÄatrod veids, kÄ Ä£enerÄt sertifikÄtus, izplatÄ«t tos starp pakalpojumu resursdatoriem un iekļaut kodu lietojumprogrammÄ, kas ielÄdÄs Å”os sertifikÄtus no failiem. JÄ, neaizmirstiet Å”os sertifikÄtus regulÄri atjaunot. Pakalpojumu tÄ«kli automatizÄ mTLS ar tÄdÄm sistÄmÄm kÄ , kas savukÄrt automatizÄ sertifikÄtu izsniegÅ”anas un rotÄcijas procesu.
3. AutentifikÄcija un autorizÄcija
TL;DR: nosakiet, kas ir pieprasÄ«tÄjs, un definÄjiet, ko viÅam ir atļauts darÄ«t, pirms pieprasÄ«jums pat sasniedz pakalpojumu.
Dienesti bieži vÄlas zinÄt kurÅ” veic pieprasÄ«jumu (autentifikÄcija), un, izmantojot Å”o informÄciju, pieÅem lÄmumu ka noteiktai entÄ«tijai ir atļauts to darÄ«t (pilnvarojums). Å ajÄ gadÄ«jumÄ vietniekvÄrds ākurÅ”ā var paslÄpties:
- Citi pakalpojumi. To sauc par "autentifikÄciju" lÄ«dzinieks" PiemÄram, serviss
webvÄlas piekļūt pakalpojumamdb. Pakalpojumu tÄ«kli parasti atrisina Å”Ädas problÄmas, izmantojot mTLS: sertifikÄti Å”ajÄ gadÄ«jumÄ darbojas kÄ nepiecieÅ”amais identifikators. - Daži cilvÄki lietotÄji. To sauc par "autentifikÄciju" pieprasÄ«jumu" PiemÄram, lietotÄjs
haxor69vÄlas iegÄdÄties jaunu lampu. Servisa sieti nodroÅ”ina dažÄdus mehÄnismus, piem. .Daudzi no mums to ir izdarÄ«juÅ”i lietojumprogrammas kodÄ. IenÄk pieprasÄ«jums, mÄs skatÄmies caur tabulu
users, atrodiet lietotÄju un salÄ«dziniet paroli, pÄc tam pÄrbaudiet kolonnupermissionsutt. Pakalpojuma tÄ«kla gadÄ«jumÄ tas notiek, pirms pieprasÄ«jums pat sasniedz pakalpojumu.
Kad esam noskaidrojuÅ”i, no kÄ ir saÅemts pieprasÄ«jums, mums ir jÄnosaka, ko Ŕī vienÄ«ba drÄ«kst darÄ«t. Daži pakalpojumu tÄ«kli ļauj iestatÄ«t pamatpolitikas (par to, kas ko var darÄ«t) kÄ YAML failus vai komandrindÄ, savukÄrt citi piedÄvÄ integrÄciju ar tÄdiem ietvariem kÄ . GalÄ«gais mÄrÄ·is ir, lai jÅ«su pakalpojumi pieÅemtu jebkuru pieprasÄ«jumu, droÅ”i pieÅemot, ka tas nÄk no uzticama avota Šø Ŕī darbÄ«ba ir atļauta.
4. Slodzes balansÄÅ”ana
TL;DR: sadaliet slodzi starp pakalpojumu gadījumiem atbilstoŔi noteiktam modelim.
āPakalpojumsā pakalpojumu sadaÄ¼Ä Ä¼oti bieži sastÄv no daudziem identiskiem gadÄ«jumiem. PiemÄram, Å”odien pakalpojums cache sastÄv no 5 eksemplÄriem, un rÄ«t to skaits var pieaugt lÄ«dz 11. PieprasÄ«jumi nosÅ«tÄ«ti uz cache, jÄizplata saskaÅÄ ar konkrÄtu mÄrÄ·i. PiemÄram, samaziniet latentumu vai palieliniet varbÅ«tÄ«bu, ka nonÄksiet lÄ«dz darba instancei. VisbiežÄk izmantotais algoritms ir Round-robin, bet ir arÄ« daudzi citi, piemÄram, svÄrtÄ metode. (svÄrts) vaicÄjumi (varat izvÄlÄties vÄlamos mÄrÄ·us), zvanÄ«t (gredzens) jaukÅ”ana (izmantojot konsekventu jaukÅ”anu augÅ”straumes saimniekdatoros) vai vismazÄko pieprasÄ«jumu metodi (priekÅ”roka tiek dota instancei ar vismazÄko pieprasÄ«jumu).
Klasiskajiem balansÄtÄjiem ir arÄ« citas funkcijas, piemÄram, HTTP keÅ”atmiÅa un DDoS aizsardzÄ«ba, taÄu tÄs nav Ä«paÅ”i piemÄrotas austrumu-rietumu trafikam (tas ir, trafikam, kas plÅ«st datu centra ietvaros - aptuveni tulk.) (tipisks pakalpojumu tÄ«kla apjoms). Protams, slodzes lÄ«dzsvaroÅ”anai nav nepiecieÅ”ams izmantot pakalpojumu tÄ«klu, taÄu tas ļauj iestatÄ«t un kontrolÄt lÄ«dzsvaroÅ”anas politikas katram pakalpojumam no centralizÄta vadÄ«bas slÄÅa, tÄdÄjÄdi novÄrÅ”ot nepiecieÅ”amÄ«bu palaist un konfigurÄt atseviŔķus slodzes balansÄtÄjus tÄ«kla stekÄ. .
5. ĶÄdes pÄrtraukums
TL;DR: apturiet satiksmi uz problemÄtisko pakalpojumu un kontrolÄjiet bojÄjumus sliktÄkajÄ gadÄ«jumÄ.
Ja kÄda iemesla dÄļ pakalpojums nevar tikt galÄ ar trafiku, servisa tÄ«kls nodroÅ”ina vairÄkas iespÄjas Ŕīs problÄmas risinÄÅ”anai (citas tiks apspriestas attiecÄ«gajÄs sadaļÄs). ĶÄdes pÄrrÄvums ir vissmagÄkÄ iespÄja pakalpojuma atvienoÅ”anai no satiksmes. TomÄr pats par sevi tam nav jÄgas - ir nepiecieÅ”ams rezerves plÄns. Var nodroÅ”inÄt pretspiedienu () pakalpojumiem, kas veic pieprasÄ«jumus (tikai neaizmirstiet Å”im nolÅ«kam konfigurÄt savu pakalpojumu tÄ«klu!), vai, piemÄram, statusa lapu nokrÄsojot sarkanÄ krÄsÄ un lietotÄjus novirzot uz citu lapas versiju ar ākrÄ«toÅ”u valiā (āTwitter ir uz lejuā).
Servisa tÄ«kli ne tikai ļauj definÄt kur sekos izslÄgÅ”ana un ka tas sekos. Å ajÄ gadÄ«jumÄ ākadā var ietvert jebkuru norÄdÄ«to parametru kombinÄciju: kopÄjais pieprasÄ«jumu skaits noteiktÄ periodÄ, paralÄlo savienojumu skaits, neapstiprinÄtie pieprasÄ«jumi, aktÄ«vie mÄÄ£inÄjumi utt.
JÅ«s, iespÄjams, nevÄlaties ļaunprÄtÄ«gi izmantot Ä·Ädes pÄrtraukumus, taÄu ir patÄ«kami apzinÄties, ka jums ir rezerves plÄns avÄrijas gadÄ«jumÄ.
6. AutomÄtiskÄ mÄrogoÅ”ana
TL;DR: Palieliniet vai samaziniet pakalpojumu gadÄ«jumu skaitu atkarÄ«bÄ no norÄdÄ«tajiem kritÄrijiem.
Pakalpojumu tÄ«kli nav plÄnotÄji, tÄpÄc tie nav izpildÄ«t mÄrogojot sevi. TomÄr viÅi var sniegt informÄciju, uz kuriem plÄnotÄji balstÄ«s savus lÄmumus. TÄ kÄ pakalpojumu tÄ«kliem ir pieejama visa satiksme starp pakalpojumiem, tiem ir plaÅ”a informÄcija par notiekoÅ”o: kuri pakalpojumi saskaras ar problÄmÄm, kuri pakalpojumi ir ļoti maz noslogoti (tiem atvÄlÄtÄ jauda tiek izniekota) utt.
PiemÄram, Kubernetes mÄrogo pakalpojumus, pamatojoties uz pods CPU un atmiÅas lietojumu (skatiet mÅ«su ziÅojumu ""- apm. tulk.), bet, ja izlemjat mÄrogot, pamatojoties uz jebkuru citu metriku (mÅ«su gadÄ«jumÄ saistÄ«bÄ ar satiksmi), jums bÅ«s nepiecieÅ”ama Ä«paÅ”a metrika. VadÄ«ba parÄda, kÄ to izdarÄ«t ar , Šø , bet pats process ir diezgan sarežģīts. MÄs vÄlÄtos, lai pakalpojumu tÄ«kls to vienkÄrÅ”otu, ļaujot mums vienkÄrÅ”i iestatÄ«t nosacÄ«jumus, piemÄram, "palielinÄt pakalpojumu gadÄ«jumu skaitu auth, ja neapstiprinÄto pieprasÄ«jumu skaits pÄrsniedz slieksni minÅ«tes laikÄ."
7. KanÄriju izvietojumi
TL;DR: pÄrbaudiet jaunas funkcijas vai pakalpojuma versijas lietotÄju apakÅ”kopai.
PieÅemsim, ka jÅ«s izstrÄdÄjat SaaS produktu un plÄnojat izlaist jaunu lielisku tÄ versiju. JÅ«s to pÄrbaudÄ«jÄt iestudÄjumÄ, un tas darbojÄs lieliski. TaÄu joprojÄm pastÄv zinÄmas bažas par viÅas uzvedÄ«bu reÄlos apstÄkļos. Citiem vÄrdiem sakot, jums ir jÄpÄrbauda jaunÄ versija uz reÄlÄm problÄmÄm, neriskÄjot ar lietotÄju uzticÄÅ”anos. KanÄriju izvietojumi tam ir lieliski piemÄroti. Tie ļauj parÄdÄ«t jaunu funkciju lietotÄju apakÅ”kopai. Å Ä« apakÅ”kopa var sastÄvÄt no lojÄlÄkajiem lietotÄjiem vai tiem, kas strÄdÄ ar produkta bezmaksas versiju, vai lietotÄjiem, kuri ir izteikuÅ”i vÄlmi kļūt par ājÅ«rascÅ«ciÅÄmā.
Pakalpojumu tÄ«kli to Ä«steno, ļaujot norÄdÄ«t kritÄrijus, kas nosaka, kurÅ” redzÄs kuru lietojumprogrammas versiju, un attiecÄ«gi marÅ”rutÄjot trafiku. TaÄu paÅ”iem dienestiem nekas nemainÄs. Pakalpojuma versija 1.0 uzskata, ka visi pieprasÄ«jumi nÄk no lietotÄjiem, kuriem tas ir jÄredz, un versija 1.1 uzskata, ka tas pats attiecas uz saviem lietotÄjiem. TikmÄr jÅ«s varat mainÄ«t datplÅ«smas procentuÄlo daļu starp veco un jauno versiju, novirzot arvien lielÄku lietotÄju skaitu uz jauno versiju, ja tÄ darbojas stabili un jÅ«su āizmÄÄ£inÄjuma cÅ«ciÅasā dod iespÄju.
8. Zili-zaļi izvietojumi
TL;DR: izlaidiet lielisku jaunu funkciju, taÄu esiet gatavs nekavÄjoties atsaukt visu.
NozÄ«me ir ieviest jaunu āziloā pakalpojumu, palaižot to paralÄli vecajam, āzaļajamā. Ja viss norit gludi un jaunais pakalpojums darbojas labi, tad veco var pakÄpeniski atspÄjot. (Ak, kÄdreiz Å”is jaunais āzilaisā pakalpojums atkÄrtos āzaļÄā likteni un pazudÄ«s...) Zili zaļie izvietojumi atŔķiras no kanÄrijputniem ar to, ka jaunÄ funkcija aptver visi uzreiz lietotÄji (nav daļa); Å eit galvenais ir izveidot ādroÅ”o ostuā, ja kaut kas noiet greizi.
Servisa tÄ«kli piedÄvÄ Ä¼oti Ärtu veidu, kÄ pÄrbaudÄ«t āziloā pakalpojumu un problÄmu gadÄ«jumÄ uzreiz pÄrslÄgties uz funkcionÄjoÅ”u āzaļoā. Nemaz nerunÄjot par to, ka pa ceļam tie sniedz daudz informÄcijas (skat. āTelemetrijaā) par āzilÄā darbu, kas palÄ«dz saprast, vai tas ir gatavs pilnai darbÄ«bai.
PiezÄ«me. tulk.: VairÄk par dažÄdÄm Kubernetes izvietoÅ”anas stratÄÄ£ijÄm (ieskaitot minÄto kanÄrijputnu, zilo/zaļo un citas) varat lasÄ«t Å”eit .
9. VeselÄ«bas pÄrbaude
TL;DR: sekojiet lÄ«dzi, kuri pakalpojumu gadÄ«jumi darbojas, un reaÄ£Äjiet uz tiem, kas vairs nedarbojas.
VeselÄ«bas pÄrbaude (veselÄ«bas pÄrbaude) palÄ«dz izlemt, vai pakalpojumu gadÄ«jumi ir gatavi pieÅemt un apstrÄdÄt trafiku. PiemÄram, HTTP pakalpojumu gadÄ«jumÄ stÄvokļa pÄrbaude var izskatÄ«ties kÄ GET pieprasÄ«jums galapunktam /health... Atbilde 200 OK nozÄ«mÄs, ka instance ir vesela, jebkura cita ā ka tÄ nav gatava trafika uztverÅ”anai. Servisa tÄ«kli ļauj norÄdÄ«t gan veidu, kÄdÄ tiks pÄrbaudÄ«ta funkcionalitÄte, gan Ŕīs pÄrbaudes veikÅ”anas biežumu. PÄc tam Å”o informÄciju var izmantot citiem mÄrÄ·iem - piemÄram, slodzes lÄ«dzsvaroÅ”anai un Ä·Ädes pÄrtraukumiem.
TÄdÄjÄdi veselÄ«bas pÄrbaude nav atseviŔķs lietoÅ”anas gadÄ«jums, bet parasti tiek izmantots citu mÄrÄ·u sasniegÅ”anai. TurklÄt atkarÄ«bÄ no veselÄ«bas pÄrbaužu rezultÄtiem var bÅ«t nepiecieÅ”amas darbÄ«bas, kas nav saistÄ«tas ar citiem pakalpojumu tÄ«kla mÄrÄ·iem: piemÄram, statusa lapas atjauninÄÅ”ana, problÄmas izveidoÅ”ana vietnÄ GitHub vai JIRA biļetes aizpildīŔana. Un servisa tÄ«kls piedÄvÄ Ärtu mehÄnismu, lai to visu automatizÄtu.
10. Slodzes atlaiŔana
TL;DR: novirzÄ«t trafiku, reaÄ£Äjot uz Ä«slaicÄ«gu lietojuma pieaugumu.
Ja kÄds pakalpojums ir pÄrslogots ar trafiku, daļu no Ŕīs trafika varat Ä«slaicÄ«gi novirzÄ«t uz citu vietu (t.i., āizgÄztā, āpÄrsÅ«tÄ«tā (Ŕķūnis) viÅÅ” tur). PiemÄram, uz rezerves pakalpojumu vai datu centru, vai uz pastÄvÄ«gu temats. RezultÄtÄ pakalpojums turpinÄs apstrÄdÄt dažus pieprasÄ«jumus, nevis avarÄs un pilnÄ«bÄ pÄrtrauks visu apstrÄdÄt. Slodzes samazinÄÅ”ana ir labÄka nekÄ Ä·Ädes pÄrtraukÅ”ana, taÄu joprojÄm nav ieteicams to ļaunprÄtÄ«gi izmantot. Tas palÄ«dz novÄrst kaskÄdes atteices, kas izraisa pakÄrtoto pakalpojumu avÄriju.
11. Satiksmes paralÄlizÄcija/spoguļoÅ”ana
TL;DR: nosÅ«tiet vienu pieprasÄ«jumu uz vairÄkÄm vietÄm vienlaikus.
Dažreiz ir nepiecieÅ”ams nosÅ«tÄ«t pieprasÄ«jumu (vai noteiktu pieprasÄ«jumu atlasi) vairÄkiem pakalpojumiem vienlaikus. Tipisks piemÄrs ir daļas ražoÅ”anas trafika nosÅ«tīŔana uz instalÄÅ”anas pakalpojumu. Galvenais ražoÅ”anas tÄ«mekļa serveris nosÅ«ta pieprasÄ«jumu pakÄrtotajam pakalpojumam products.production un tikai viÅam. Un pakalpojumu tÄ«kls saprÄtÄ«gi kopÄ Å”o pieprasÄ«jumu un nosÅ«ta to uz products.staging, par ko tÄ«mekļa serveris pat nezina.
VÄl viens saistÄ«ts pakalpojumu tÄ«kla izmantoÅ”anas gadÄ«jums, ko var ieviest papildus trafika paralÄlizÄcijai, ir . Tas ietver vienÄdu pieprasÄ«jumu nosÅ«tīŔanu dažÄdÄm pakalpojuma versijÄm un pÄrbaudi, vai visas versijas darbojas vienÄdi. Es vÄl neesmu saskÄries ar pakalpojumu tÄ«kla ievieÅ”anu ar tÄdu integrÄtu regresijas testÄÅ”anas sistÄmu kÄ , bet pati ideja Ŕķiet daudzsoloÅ”a.
12. IzolÄcija
TL;DR: sadaliet savu pakalpojumu tīklu minitīklos.
ZinÄms arÄ« kÄ segmentÄcijaIzolÄÅ”ana ir mÄksla sadalÄ«t pakalpojumu tÄ«klu loÄ£iski atŔķirÄ«gos segmentos, kas neko nezina viens par otru. IzolÄcija ir nedaudz lÄ«dzÄ«ga virtuÄlo privÄto tÄ«klu izveidei. BÅ«tiskÄ atŔķirÄ«ba ir tÄda, ka jÅ«s joprojÄm varat baudÄ«t visas pakalpojuma tÄ«kla priekÅ”rocÄ«bas (piemÄram, pakalpojuma atklÄÅ”anu), taÄu ar papildu droŔību. PiemÄram, ja uzbrucÄjs spÄj iekļūt pakalpojumÄ vienÄ apakÅ”tÄ«klÄ, viÅÅ” nevarÄs redzÄt, kÄdi pakalpojumi darbojas citos apakÅ”tÄ«klos, vai pÄrtvert to trafiku.
TurklÄt ieguvumi var bÅ«t arÄ« organizatoriski. IespÄjams, vÄlÄsities izveidot apakÅ”tÄ«klu savus pakalpojumus, pamatojoties uz uzÅÄmuma struktÅ«ru, un atbrÄ«vot izstrÄdÄtÄjus no kognitÄ«vÄs slodzes, kas rodas, paturot prÄtÄ visu pakalpojumu tÄ«klu.
13. PieprasÄ«juma Ätruma ierobežoÅ”ana, mÄÄ£inÄjumi un taimauts
TL;DR: jums vairs nav jÄiekļauj rupji pieprasÄ«jumu pÄrvaldÄ«bas uzdevumi savÄ kodu bÄzÄ.
Visas Ŕīs lietas varÄtu uzskatÄ«t par atseviŔķiem lietoÅ”anas gadÄ«jumiem, taÄu es nolÄmu tÄs apvienot vienas kopÄ«gas iezÄ«mes dÄļ: tÄs pÄrÅem pieprasÄ«jumu dzÄ«ves cikla pÄrvaldÄ«bas uzdevumus, ko parasti apstrÄdÄ lietojumprogrammu bibliotÄkas. Ja izstrÄdÄjat tÄ«mekļa serveri Ruby on Rails (nav integrÄts pakalpojumu tÄ«klÄ), kas veic aizmugurpakalpojumu pieprasÄ«jumus, izmantojot , lietojumprogrammai bÅ«s jÄizlemj, kÄ rÄ«koties, ja N pieprasÄ«jumi neizdodas. Jums bÅ«s arÄ« jÄnoskaidro, cik lielu trafiku Å”ie pakalpojumi varÄs apstrÄdÄt un kodÄt Å”os parametrus, izmantojot Ä«paÅ”u bibliotÄku. TurklÄt lietojumprogrammai bÅ«s jÄizlemj, kad ir pienÄcis laiks padoties un ļaut pieprasÄ«jumam izbeigt (pamatojoties uz taimautu). Un, lai mainÄ«tu kÄdu no iepriekÅ” minÄtajiem parametriem, tÄ«mekļa serveris bÅ«s jÄaptur, jÄpÄrkonfigurÄ un jÄsÄk no jauna.
Å o uzdevumu izkrauÅ”ana servisa tÄ«klÄ nozÄ«mÄ ne tikai to, ka pakalpojumu izstrÄdÄtÄjiem par tiem nebÅ«s jÄdomÄ, bet arÄ« to, ka tos varÄs apskatÄ«t globÄlÄkÄ veidÄ. Ja tiek izmantota sarežģīta pakalpojumu Ä·Äde, piemÄram, A -> B -> C -> D -> E, ir jÄÅem vÄrÄ viss pieprasÄ«juma dzÄ«ves cikls. Ja uzdevums ir pagarinÄt pakalpojuma C taimautus, ir loÄ£iski to darÄ«t visu uzreiz, nevis pa daļÄm: atjauninot pakalpojuma kodu un gaidot, lÄ«dz tiek pieÅemts izvilkÅ”anas pieprasÄ«jums un CI sistÄma izvietos atjauninÄto pakalpojumu.
14. Telemetrija
TL;DR: apkopojiet visu nepiecieÅ”amo (un ne gluži) informÄciju no pakalpojumiem.
Telemetrija ir vispÄrÄ«gs termins, kas ietver metriku, izplatÄ«tu izsekoÅ”anu un žurnÄlus. Pakalpojumu tÄ«kli piedÄvÄ mehÄnismus visu trÄ«s veidu datu vÄkÅ”anai un apstrÄdei. Å eit lietas kļūst nedaudz neskaidras, jo iespÄjamo opciju skaits ir pÄrÄk liels. Lai savÄktu metriku, ir un citi rÄ«ki, ko var izmantot žurnÄlu vÄkÅ”anai , , uc (piemÄram, ClickHouse ar mÅ«su K8s - apm. tulk.), izplatÄ«tai izsekoÅ”anai ir un tÄ tÄlÄk. Katrs pakalpojumu tÄ«kls var atbalstÄ«t dažus rÄ«kus, bet ne citus. BÅ«s interesanti redzÄt, vai projekts var nodroÅ”inÄt zinÄmu konverÄ£enci.
Å ajÄ gadÄ«jumÄ servisa tÄ«kla tehnoloÄ£ijas priekÅ”rocÄ«ba ir tÄda, ka blakusvÄÄ£u konteineri principÄ var savÄkt visus iepriekÅ” minÄtos datus no saviem pakalpojumiem. Citiem vÄrdiem sakot, jÅ«su rÄ«cÄ«bÄ ir viena telemetrijas datu savÄkÅ”anas sistÄma, un pakalpojumu tÄ«kls var apstrÄdÄt visu Å”o informÄciju dažÄdos veidos. PiemÄram:
- astes žurnÄli no noteikta pakalpojuma CLI;
- uzraudzÄ«t pieprasÄ«jumu apjomu no pakalpojumu tÄ«kla informÄcijas paneļa;
- savÄc izplatÄ«tÄs pÄdas un pÄrsÅ«ta tÄs uz tÄdu sistÄmu kÄ Jaeger.
UzmanÄ«bu, subjektÄ«vs spriedums: VispÄrÄ«gi runÄjot, telemetrija ir joma, kurÄ nav vÄlami spÄcÄ«gi traucÄjumi no servisa tÄ«kla. PamatinformÄcijas vÄkÅ”ana un dažu zelta metrikas, piemÄram, pieprasÄ«juma veiksmes rÄdÄ«tÄja un latentuma, izsekoÅ”ana lidojumÄ ir labi, taÄu cerÄsim, ka neparÄdÄ«sies FrankenÅ”teina skursteÅi, kas mÄÄ£inÄtu aizstÄt specializÄtÄs sistÄmas, no kurÄm dažas jau ir sevi pierÄdÄ«juÅ”as un labi izpÄtÄ«tas. .
15.Revīzija
TL;DR: Tie, kas aizmirst vÄstures mÄcÄ«bas, ir lemti tÄs atkÄrtot.
Audits ir mÄksla novÄrot svarÄ«gus notikumus sistÄmÄ. Pakalpojuma tÄ«kla gadÄ«jumÄ tas varÄtu nozÄ«mÄt izsekoÅ”anu, kurÅ” veica pieprasÄ«jumus konkrÄtiem galapunktiem konkrÄtiem pakalpojumiem vai cik reižu ir noticis kÄds ar droŔību saistÄ«ts notikums pÄdÄjÄ mÄneÅ”a laikÄ.
Ir skaidrs, ka audits ir ļoti cieÅ”i saistÄ«ts ar telemetriju. AtŔķirÄ«ba ir tÄda, ka telemetrija parasti tiek saistÄ«ta ar tÄdÄm lietÄm kÄ produktivitÄte un tehniskÄ integritÄte, savukÄrt audits var attiekties uz juridiskiem un citiem jautÄjumiem, kas pÄrsniedz tikai tehnisko sfÄru (piemÄram, atbilstÄ«bu GDPR - ES VispÄrÄ«gajai datu aizsardzÄ«bas regulai).
16. VizualizÄcija
TL;DR: lai dzÄ«vo React.js ā neizsmeļams iedomÄtu interfeisu avots.
Var bÅ«t labÄks termins, bet es to nezinu. Es vienkÄrÅ”i domÄju servisa tÄ«kla vai dažu tÄ komponentu grafisku attÄlojumu. Å Ä«s vizualizÄcijas var ietvert tÄdus rÄdÄ«tÄjus kÄ vidÄjais latentums, blakusvÄÄ£a konfigurÄcijas informÄcija, veselÄ«bas pÄrbaudes rezultÄti un brÄ«dinÄjumi.
Darbs uz pakalpojumu orientÄtÄ vidÄ ir saistÄ«ts ar daudz lielÄku kognitÄ«vo slodzi, salÄ«dzinot ar ViÅa MajestÄti MonolÄ«tu. TÄpÄc kognitÄ«vais spiediens ir jÄsamazina par katru cenu. VienkÄrÅ”s servisa tÄ«kla grafiskais interfeiss ar iespÄju noklikŔķinÄt uz pogas un iegÅ«t vÄlamo rezultÄtu varÄtu bÅ«t izŔķiroÅ”s Ŕīs tehnoloÄ£ijas popularitÄtes pieaugumam.
SarakstÄ netika iekļauti
SÄkotnÄji es plÄnoju sarakstÄ iekļaut vÄl dažus lietoÅ”anas gadÄ«jumus, bet pÄc tam nolÄmu to nedarÄ«t. Å eit tie ir kopÄ ar mana lÄmuma iemesliem:
- VairÄku datu centrs. ManuprÄt, tas nav tik daudz lietoÅ”anas gadÄ«jums, cik Å”aura un specifiska pakalpojumu tÄ«klu vai dažu funkciju kopuma, piemÄram, pakalpojumu atklÄÅ”anas, piemÄroÅ”anas joma.
- Ieeja un izeja. Å Ä« ir saistÄ«ta joma, bet esmu aprobežojies (varbÅ«t mÄkslÄ«gi) ar "austrumu-rietumu satiksmes" lietoÅ”anas gadÄ«jumu. IekļūŔana un izeja ir pelnÄ«jusi atseviŔķu rakstu.
SecinÄjums
Tas pagaidÄm ir viss! ArÄ« Å”is saraksts ir ļoti patvaļīgs un, visticamÄk, nepilnÄ«gs. Ja uzskatÄt, ka esmu kaut ko palaidis garÄm vai kaut kas nav kÄrtÄ«bÄ, lÅ«dzu, sazinieties ar mani Twitter (). LÅ«dzu, ievÄrojiet pieklÄjÄ«bas noteikumus.
PS no tulka
Raksta virsraksta ilustrÄcija ir balstÄ«ta uz attÄlu no raksta ""(autors Gregorijs Makkinons). Tas parÄda, kÄ dažas lietojumprogrammu funkcionalitÄtes (zaÄ¼Ä krÄsÄ) ir pÄrvietotas uz pakalpojumu tÄ«klu, kas nodroÅ”ina starpsavienojumus starp tÄm (zilÄ krÄsÄ).
Lasi arÄ« mÅ«su emuÄrÄ:
- Ā«";
- Ā«";
- Ā«'.
Avots: www.habr.com
