Miks me loome Enterprise Service Meshi

Service Mesh on tuntud arhitektuurimuster mikroteenuste integreerimiseks ja ĂŒleminekuks pilveinfrastruktuurile. TĂ€napĂ€eval on pilve-konteinerite maailmas sellest ĂŒsna keeruline loobuda. Turul on juba saadaval mitu open-source'i service mesh'i teostust, kuid nende funktsionaalsus, usaldusvÀÀrsus ja ohutus ei ole kaugeltki alati piisavad, eriti kui rÀÀkida suurte riikliku mastaabiga finantsasutuste nĂ”uetest. SeetĂ”ttu otsustasime me Sbertehes Service Mesh'i kohandada ja soovime rÀÀkida sellest, mis on Service Mesh'is Ă€ge, mis mitte nii vĂ€ga ja mida me sellega ette kavatseme vĂ”tta.

Miks me loome Enterprise Service Meshi

Service Mesh'i mustri populaarsus kasvab koos pilvetehnoloogiate populaarsusega. See on eraldi infrastruktuuri kiht, mis lihtsustab erinevate vĂ”rguteenuste vahelist suhtlust. Kaasaegsed pilve rakendused koosnevad sadadest, isegi tuhandetest sellistest teenustest, millest igaĂŒhel vĂ”ib olla tuhandeid koopiaid.

Miks me loome Enterprise Service Meshi

Nende teenuste vahel suhtlemine ja nende haldamine on Service Mesh'i peamine ĂŒlesanne. Tegelikult on see vĂ”rgumudel, mis koosneb paljusid pöördeid sisaldavatest proksidest, mida hallatakse tsentraliseeritult ja mis tĂ€idab mitmeid vĂ€ga kasulikke funktsioone.

Proksi tasemel (andmeplaan):

  • Marsruutimis- ja liikluse tasakaalupoliitikate mÀÀramine ja levitamine
  • VĂ”tmete, sertifikaatide ja tokenite levitamine
  • Telemeetria kogumine, jĂ€lgimise metrikate loomine
  • Integreerimine turbe- ja jĂ€lgimis-infrastruktuuriga

Kontrollplaani tasemel:

  • Marsruutimis- ja liikluse tasakaalupoliitikate rakendamine
  • Korduste ja timeout'ide haldamine, 'surnud' sĂ”lmede mÀÀramine (circuit breaking), rike-situatsioonide haldamine (injecting faults) ja teenuste vastupidavuse tagamine lĂ€bi teiste mehhanismide
  • Kutsumiste autentimine/autoriseerimine
  • Metrika tagasilĂŒkkamine (observability)

Kasutajate ring, keda see tehnoloogia arendamine huvitab, on vĂ€ga lai — alates vĂ€ikestest idufirmadest kuni suurte internetikorporatsioonideni, nagu PayPal.

Milleks on ettevÔtlussektoris vajalik Service Mesh

Service Mesh'i kasutamine toob kaasa palju ilmseid eeliseid. Esiteks on see lihtsalt mugav arendajatele: koodi kirjutamiseks ilmub tehnoloogiline platvorm, mis see oluliselt lihtsustab integreerimist pilveinfrastruktuuri, kuna transportkiht on tÀielikult isoleeritud rakendusloogikast.

Lisaks, Service Mesh lihtsustab teenusepakkujate ja -kasutajate suhteid. TĂ€napĂ€eval on API teenusepakkujate ja -kasutajate jaoks palju lihtsam omavahel kokkuleppeid sĂ”lmida liideste ja lepingute osas ilma spetsiaalse integratsioonipooliku vĂ”i vahemeheta — ettevĂ”tte teenusebussita. Selline lĂ€henemine mĂ”jutab kahte nĂ€itajat. Uue funktsionaalsuse turule toomise kiirus (time-to-market) suureneb, kuid samas tĂ”useb lahenduse maksumus, kuna integreerimine tuleb teha iseseisvalt. Service Mesh'i kasutamine ettevĂ”tte funktsionaalsuse arendusmeeskondade vahel aitab sĂ€ilitada siin tasakaalu. LĂ”pptulemusena saavad API teenusepakkujad keskenduda tĂ€ielikult oma teenuse rakenduskomponendile ja lihtsalt avaldada selle Service Mesh'is — API on kohe kĂ”igile klientidele kergesti kĂ€ttesaadav ning integreerimise kvaliteet on tootmisvalmis ega nĂ”ua lisakoodi.

JĂ€rgmine eelis on see, et arendaja, kasutades Service Mesh'i, keskendub tĂ€ielikult Ă€rifunktsionaalsusele — toote, mitte tehnilise aspekti peale oma teenuses. NĂ€iteks ei pea enam muretsema selle pĂ€rast, et juhul, kui teenust kutsutakse ĂŒle vĂ”rgu, vĂ”ib kusagil ĂŒhendus katkeda. Lisaks aitab Service Mesh tasakaalustada liiklust ĂŒhe ja sama teenuse koopiate vahel: kui ĂŒks koopiatest on ‘surnud’, suunab sĂŒsteem kogu liikluse jÀÀdvustatud koopiate peale.

Service Mesh — on hea alus hajutatud rakenduste loomiseks, mis varjab kliendi eest tema teenuste kutsumise tagamaid nii seest kui vĂ€ljast. KĂ”ik rakendused, mis kasutavad Service Mesh'i, on transporttasemel isoleeritud nii vĂ”rgust kui teineteisest: nende vahel pole mingit ĂŒhendust. Sellegipoolest saavad arendajad oma teenuste ĂŒle tĂ€ieliku kontrolli.

Tasub mainida, et hajutatud rakenduste uuendamine keskkonnas, kus kasutatakse Service Mesh'i, muutub lihtsamaks. NĂ€iteks on sinine/rohelise juurutamine, kus rakenduse paigaldamiseks on saadaval kaks keskkonda, millest ĂŒks ei uuendata ja on ootereĆŸiimil. EbaĂ”nnestumise korral on vĂ”imalik tagasi rullida eelmine versioon spetsiaalse ruuteri abil, millega tegeleb suurepĂ€raselt Service Mesh.. Uue versiooni katsetamiseks saab kasutada kanariversiooni — suunata uuele versioonile ainult 10% liiklusest vĂ”i pĂ€ringutest pilootklientide grupilt. Peamine liiklus lĂ€heb vana versiooni juurde ning midagi ei riku.

Samuti Service Mesh annab meile reaalajas SLA kontrolli.Jaotatud proksisĂŒsteem ei luba teenust ĂŒle koormata, kui mĂ”ni klient ĂŒletab talle mÀÀratud kvooti. Kui API kaudu on lĂ€bilaskevĂ”ime piiratud, ei saa keegi teenust DDoS-rĂŒnnaku kaudu ĂŒle koormata: Service Mesh seisab teenuse ees ja ei lase liigset liiklust lĂ€bi. See tĂ”rjub lihtsalt integreerimistasandil ja teenused jĂ€tkavad töötamist, mĂ€rkamatta sellest.

Kui ettevĂ”te soovib vĂ€hendada kulusid integreerimislahenduste arendamisel, aitab ka Service Mesh: avatud lĂ€htekoodiga versioonile saab ĂŒle minna kommertsproduktidelt.Meie Enterprise Service Mesh pĂ”hineb avatud lĂ€htekoodiga versioonil Service Mesh.

Veel ĂŒks eelis on tĂ€ieliku integreerimisteenuste komplekti olemasolu.Kuna kogu integreerimine toimub lĂ€bi selle vahekihti, saame hallata kogu integreerimist liiklust ja rakenduste vahelisi seoseid, mis kujundavad ettevĂ”tte Ă€ri tuuma. See on vĂ€ga mugav.

Ja lĂ”puks Service Mesh stimuleerib ettevĂ”tet ĂŒleminekule dĂŒnaamilisele infrastruktuurile. Praegu vaatavad paljud konteineriseerimise suunas. Monoloodi jagamine mikroteenusteks ja nende ilus rakendamine on kasvav suund. Kuid kui pĂŒĂŒate viia paljusid aastaid tootmises olnud sĂŒsteeme uutele rööbastele, siis seisate kohe silmitsi paljude probleemidega: kĂ”ik see suruda konteineritesse ja juurutada platvormile pole lihtne. Ja nende jaotatud komponentide rakendamine, sĂŒnkroniseerimine ja koostöö — see on veel ĂŒks ÀÀrmiselt keeruline teema. Kuidas nad omavahel suhtlevad? Kas cascading ebaĂ”nnestumisi ei toimu? Service Mesh aitab lahendada osa neid probleeme ja lihtsustab ĂŒleminekut vanalt arhitektuurilt uuele, sest vĂ”ite unustada vĂ”rguvahetuse loogika.

Miks on vajalik Service Mesh'i kohandamine

Meie ettevĂ”ttes kooseksisteerib sadu sĂŒsteeme ja mooduleid ning runtime on vĂ€ga koormatud. SeetĂ”ttu ei piisa lihtsast mustrist, kus ĂŒks sĂŒsteem kutsub ĂŒles teist ja saab vastuse, sest tootmises soovime rohkem. Mida veel vajame ettevĂ”tte Service Mesh'ilt?

Miks me loome Enterprise Service Meshi

SĂŒndmuste töötlemise teenus

Kujutage ette, et meil on vaja luua reaalajas sĂŒndmuste töötlemise sĂŒsteem — sĂŒsteem, mis analĂŒĂŒsib kliendi tegevust reaalajas ja suudab kohe teha asjakohase pakkumise. Sellise funktsionaalsuse rakendamiseks kasutatakse arhitektuurimustrit, mida nimetatakse sĂŒndmuspĂ”hiseks arhitektuuriks (EDA). Ükski kaasaegne Service Mesh ei toeta selliseid mustreid natiivsetena, kuigi see on vĂ€ga oluline, eriti panganduses!

On ĂŒsna kummaline, et "kaugkĂ”ne" Remote Procedure Call (RPC) toetavad kĂ”ik Service Mesh'i versioonid, kuid EDA-ga nad ei klapi. Sest Service Mesh on tĂ€napĂ€eva hajutatud integratsiooni sarnane ja EDA on vĂ€ga aktuaalne arhitektuurimuster, mis vĂ”imaldab teha ainulaadseid asju kliendikogemuse osas.

Meie Enterprise Service Mesh peab selle probleemi lahendama. Samuti soovime nĂ€ha selles garanteeritud kohaletoimetamise, voogedastuse ja keeruka sĂŒndmuste töötlemise rakendust, kasutades mitmesuguseid filtreid ja mustreid.

Failide edastamise teenus

Lisaks EDA-le oleks hea omada ka failide edastamise vĂ”imalust: suurtes ettevĂ”tetes on sageli vĂ”imalik vaid failide integreerimine. Konkreetsemalt kasutatakse arhitektuurimustrit ETL (Extract, Transform, Load — "andmete vĂ€ljavĂ”tmine, muutmine, laadimine"). Sel juhul vahetatakse tavaliselt andmeid ainult failide kaupa: kasutatakse suuri andmeid, mida pole mĂ”tet saata eraldi pĂ€ringutega. Failide edastamise natiivne toetus Enterprise Service Mesh'is annab ettevĂ”ttele vajaliku paindlikkuse.

Orkestreerimise teenus

Suurtes organisatsioonides on peaaegu alati erinevad meeskonnad, kes teevad erinevaid tooteid. NĂ€iteks pangas töötavad ĂŒhe meeskonna liikmed hoiuste kallal, samas kui teised tegelevad krediitproduktidega, ja selliseid juhtumeid on piisavalt palju. Need on erinevad inimesed, erinevad meeskonnad, kes loovad oma tooteid, arendavad oma API-sid ja pakuvad neid teistele. Ja vĂ€ga tihti tekib vajadus nende teenuste kompositsiooni ning keerulise loogika rakendamise jĂ€rele, kus toimub jĂ€rjestikune API-de kĂ”ne. Selle probleemi lahendamiseks on vaja integratsioonikihti, mis vĂ”imaldab kogu seda komposiitloogikat lihtsustada (mitme API kĂ”ne, pĂ€ringute marsruudi mÀÀratlemine jne). Just see on orkestreerimisteenus Enterprise Service Meshis.

AI ja ML

Kui mikroteenused suhtlevad ĂŒhtse integratsioonikihi kaudu, teab Service Mesh loomulikult kĂ”ike igast teenuse kĂ”nest. Kogume telemeetriaandmeid: kes kedagi kutsus, millal, kui kaua, kui tihti jne. Kui neid teenuseid on sadu tuhandeid ja kĂ”nesid miljardeid, siis see kĂ”ik koguneb ja moodustab Big Data. Neid andmeid saab analĂŒĂŒsida tehisintellekti, masinĂ”ppe ja muu abil ning seejĂ€rel luua analĂŒĂŒsi tulemuste pĂ”hjal mĂ”ned kasulikud asjad. Oleks otstarbekas vĂ€hemalt osaliselt usaldada tehisintellektile juhtimine selle kogu vĂ”rgu liikluse ja rakenduste kĂ”nede ĂŒle, mis on integreeritud Service Meshisse.

API Gateway (API Lood)

Tavaliselt sisaldab Service Mesh vaheproksi ja teenuseid, mis suhtlevad omavahel usaldusvÀÀrse piiri sees. Kuid on ka vĂ€liseid sidusrĂŒhmi. API-de nĂ”uded, mida sellele tarbijate rĂŒhmale pakutakse, on palju tĂ”sisemad. Jagame selle ĂŒlesande kaheks peamiseks osaks.

  • Turvalisus. KĂŒsimused, mis on seotud ddos'i, protokollide, rakenduste, operatsioonisĂŒsteemide jne haavatavustega.
  • MÔÔtkavad. Kui API-de arv, mida tuleb klientidele anda, ulatub tuhandetesse vĂ”i isegi sadadesse tuhandetesse, siis tekib vajadus mingisuguse vahendi jĂ€rele nende API-de kogumi haldamiseks. On vajalik pidevalt jĂ€lgida API-de toimimist: kas nad töötavad vĂ”i mitte, mis on nende staatus, milline on liiklus jne. API-lood peavad selle ĂŒlesandega hakkama saama, muutes kogu protsessi hallatavaks ja turvaliseks. TĂ€nu sellele komponendile Ă”pib Enterprise Service Mesh, et ilma tarbetute keerukusteta avaldada nii sisemisi API-sid kui ka vĂ€liseid.

Spetsiaalsete protokollide ja andmevormingute toetamise teenus (AS-i lĂŒĂŒs)

Praegu oskab enamik Service Mesh lahendusi natiivsetena töötada ainult HTTP ja HTTP2 liikluses vĂ”i piiratud reĆŸiimis TCP/IP tasemel. Enterprise Service Mesh-is tuleb esile palju teisi spetsiifilisi andmeedastusprotokolle. MĂ”ned sĂŒsteemid vĂ”ivad kasutada sĂ”numi vahendajaid, teised on integreeritud andmebaasi tasemel. Kui ettevĂ”ttes on SAP, vĂ”ib see samuti kasutada oma integreerimissĂŒsteemi. KĂ”ik see töötab ja on Ă€ri oluline osa.

Ei saa lihtsalt öelda: "LĂ€hme legacy-st lahti ja teeme uusi sĂŒsteeme, mis suudavad kasutada Service Mesh-i". KĂ”ikide vanade sĂŒsteemide sobitamiseks uute (mikroteenuste arhitektuuriga) sĂŒsteemide vahel, mis vĂ”ivad kasutada Service Mesh-i, on vaja mingit adapterit, vahendajat, lĂŒĂŒsit. Olge nĂ”us, oleks tore, kui see tuleks koos teenusega pakendis. AS-i lĂŒĂŒs suudab toetada igasuguseid integratsiooni variante. Kujutage ette, et paigaldate lihtsalt Enterprise Service Mesh-i ja see on juba valmis töötama kĂ”igi vajalike protokollidega. Meie jaoks on see lĂ€henemine vĂ€ga oluline.

Nii me kujutame ette Enterprise Service Mesh-i. Kirjeldatud kohandamine lahendab enamiku probleeme, mis tekivad, kui proovida kasutada valmis open-source integreerimislahendusi. Vaid paar aastat tagasi tekkis Service Mesh arhitektuur jÀtkab arenemist ja me oleme rÔÔmsad, et saame oma panuse anda. Loodame, et meie kogemus on teile kasulik.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster