Pse po ndërtojmë Enterprise Service Mesh

Service Mesh — një model i njohur arkitektonik për integrimin e mikroshërbimeve dhe kalimin në infrastrukturë cloud. Sot, në botën e konteinerëve cloud, është e vështirë të bësh pa të. Në treg janë të disponueshme disa realizime open-source të service mesh, por funksionaliteti, qëndrueshmëria dhe siguria e tyre nuk janë gjithmonë të mjaftueshme, veçanërisht kur flitet për kërkesat e kompanive financiare të mëdha në nivel kombëtar. Prandaj, ne në Sbertech kemi vendosur të personalizojmë Service Mesh dhe duam të flasim për atë që është e shkëlqyer në Service Mesh, çfarë nuk është aq e mirë dhe çfarë kemi ndërmend të bëjmë me të.

Pse po ndërtojmë Enterprise Service Mesh

Popullariteti i modelit Service Mesh po rritet me popullaritetin e teknologjive cloud. Ai paraqet një shtresë të dedikuar infrastrukturore, që thjeshton ndërveprimin midis shërbimeve të ndryshme në rrjet. Aplikacionet moderne në cloud përbëhen nga qindra e madje mijëra shërbimeve të tilla, secili prej të cilëve mund të ketë mijëra kopje.

Pse po ndërtojmë Enterprise Service Mesh

Ndërveprimi midis këtyre shërbimeve dhe menaxhimi i tyre është detyra kyçe e Service Mesh. Në fakt, kjo është një model rrjeti përmes shumë proxy-eve, e menaxhuar qendrisht dhe që kryen një sërë funksionesh shumë të dobishme.

Në nivelin e proxy-it (data plane):

  • Caktimi dhe shpërndarja e politikave të routing-ut dhe balancimit të trafikut
  • Shpërndarja e çelësave, certifikatave, tokeneve
  • Grumbullimi i telemetrisë, krijimi i metrikeve të monitorimit
  • Integrimi me infrastrukturën e sigurisë dhe monitorimit

Në nivelin e qarkut të menaxhimit (control plane):

  • Zbatimi i politikave të routing-ut dhe balancimit të trafikut
  • Menaxhimi i përsëritjeve dhe kohëzgjatjeve, përcaktimi i ‘niveleve’ të vdekura (circuit breaking), menaxhimi i situatave me dështim (injecting faults) dhe sigurimi i qëndrueshmërisë (resilience) së shërbimeve përmes mekanizmave të tjerë
  • Autentikimi/autorizimi i thirrjeve
  • Heqja e metrikave (observability)

Grupi i përdoruesve të interesuar për zhvillimin e kësaj teknologjie është shumë i gjerë — nga startupet e vogla deri te korporatat e mëdha të internetit, si PayPal.

Për çfarë nevojitet Service Mesh në sektorin e korporatave

Përdorimi i Service Mesh sjell një sërë përfitimesh të dukshme. Para së gjithash, kjo është e përshtatshme për zhvilluesit: për shk γράmin e kodit shfaqet një platformë teknologjike, e cila ndihmon ndjeshëm në integrimin në infrastrukturën cloud për shkak se shtresa e transportit është plotësisht e izoluar nga logjika aplikative.

Për më tepër, Service Mesh e thjeshton marrëdhënien midis ofruesve dhe konsumatorëve. Sot, ofruesit dhe konsumatorët e API-ve kanë shumë më të lehtë të bien dakord për interfesat dhe kontratat vetë, pa tërhequr një ndërmjetës të veçantë integrimi dhe arbitri – një autobus shërbimesh korporative. Ky qasje ndikon ndjeshëm në dy tregues. Rritet shpejtësia e nxjerrjes së funksionaliteteve të reja në treg (time-to-market), por në të njëjtën kohë rritet kostoja e zgjidhjes, pasi integrimi duhet të bëhet vetë. Përdorimi i Service Mesh nga ekipet e zhvillimit të funksionaliteteve të biznesit lejon ruajtjen e ekuilibrave këtu. Si rezultat, ofruesit e API-ve mund të fokusohen ekskluzivisht te elementi aplikativ të shërbimit të tyre dhe thjesht ta publikojnë atë në Service Mesh — API do të bëhet menjëherë i disponueshëm për të gjithë klientët dhe cilësia e integrimit do të jetë e gatshme për prodhim dhe nuk do të kërkojë asnjë rresht kodi të shtuar.

Avantazhi tjetër është ai që zhvilluesi, duke përdorur Service Mesh, fokusohet ekskluzivisht në funksionalitetin e biznesit — në aspektin produktiv, e jo në atë teknologjik të shërbimit të tij. Për shembull, nuk është më e nevojshme të mendosh se në situatën kur shërbimi do të thirret përmes rrjetit, mund të ndodhë një ndërprerje e lidhjes. Për më tepër, Service Mesh ndihmon në balancimin e trafikut mes kopjeve të njëjtë të shërbimit: nëse një nga kopjet "ka vdekur", sistemi do të kalojë tërë trafikun në kopjet e mbetura të gjalla.

Service Mesh — kjo është një bazë e mirë për krijimin e aplikacioneve të shpërndara, e cila e fsheh nga klienti detajet e sigurimit të thirrjeve të shërbimeve të tij si nga brenda, ashtu edhe nga jashtë. Të gjitha aplikacionet që përdorin Service Mesh janë të izoluar në nivelin e transportit si nga rrjeti, ashtu edhe nga njëra-tjetra: nuk ka asnjë lidhje midis tyre. Në të njëjtën kohë, zhvilluesi merr kontrollin e plotë mbi shërbimet e tij.

Nuk mund të neglizhohet se aktualizimi i aplikacioneve të shpërndara në një mjedis ku përdoret Service Mesh bëhet më i lehtë. Për shembull, implementimi blue/green, ku ka dy mjedise aplikacioni në dispozicion për instalim, njëra nga të cilat nuk përditësohet dhe ndodhet në presje. Rënia në versionin e kaluar në rast të një lëshimi të dështuar bëhet përmes një router-i të veçantë, një rol që e kryen mjaft mirë Service Mesh.. Për testimin e versionit të ri mund të përdoret gjithashtu lëshimi kanadez — të kaloni në versionin e ri vetëm për 10% të trafikut ose kërkesave nga grupi pilot i klientëve. Trafiku kryesor shkon në versionin e vjetër, asgjë nuk prish.

Gjithashtu Service Mesh na jep kontrollin SLA në kohë reale. Sistemi i proxy-ve të shpërndarë nuk do t'i lejojë shërbimit të dështojë kur ndonjë klient kalon kuotën e dhënë. Nëse kapaciteti për API është i kufizuar, askush nuk mund ta godasë atë me një numër të madh transaksionesh: Service Mesh qëndron para shërbimit dhe nuk lëviz trafik të tepërt. Ai thjesht do të mbrohet në nivelin e integrimit, ndërsa shërbimet vetë do të vazhdojnë të funksionojnë pa e vënë re këtë.

Nëse kompania dëshiron të reduktojë shpenzimet për zhvillimin e zgjidhjeve integruese, Service Mesh gjithashtu ndihmon: mund të kaloni në versionin e tij open-source nga produktet komerciale.. Service Mesh-i ynë Enterprise bazohet në versionin open-source të Service Mesh.

Një tjetër avantazh është prania e një grupe të vetëm dhe të plotë shërbimesh integruese. Duke qenë se e gjithë integrimi ndërtohet përmes këtij shtresë ndërmjetëse, ne mund të menaxhojmë të gjithë trafikun integrues dhe lidhjet midis aplikacioneve, të cilat formojnë thelbin e biznesit të kompanisë. Kjo është shumë e përshtatshme.

Dhe më në fund Service Mesh inkurajon kompaninë të kalojë në një infrastrukturë dinamike. Tani tani në shumë njerëz po shikojnë drejt konteinerizimit. Të ndahen monolitët në mikrosherbime, të implementohen të gjitha këto bukur — tema është në rritje. Por kur përpiqesh të kalosh në një sistem të ri, që ka qenë në prodhim për shumë vite, menjëherë përballesh me një sërë problemasht: e bën të vështirë vendosjen e të gjitha këtyre në kontejnerë dhe shpërndarjen në platformë. Dhe implementimi, sinkronizimi dhe ndërveprimi i këtyre përbërësve të shpërndarë — është një tjetër temë shumë e vështirë. Si do të komunikojnë ata me njëri-tjetrin? A do të ketë dështime kaskadë? Service Mesh lejon të zgjidhen disa nga këto probleme dhe lehtëson migrimin nga arkitektura e vjetër në të re duke e bërë të mundur që logjika e shkëmbimit të rrjetit të harrohet.

Pse është e nevojshme personalizimi i Service Mesh

Në kompaninë tonë bashkëjetojnë qindra sisteme dhe module, dhe runtime është shumë i ngarkuar. Kështu që një model i thjeshtë, ku një sistem thërret një tjetër dhe merr një përgjigje, nuk është i mjaftueshëm, sepse ne në prodhim duam më shumë. Çfarë tjetër kërkohet nga Service Mesh-i korporativ?

Pse po ndërtojmë Enterprise Service Mesh

Shërbimi i përpunimit të ngjarjeve

Imagjinoni se na nevojitet të realizojmë përpunimin në kohë reale të ngjarjeve — një sistem që analizon veprimet e klientit në kohë reale dhe mund menjëherë të i bëjë një propozim rethues. Për të realizuar një funksionalitet të tillë, përdoret një model arkitektonik i quajtur arkitekturë e drejtuar nga ngjarjet (EDA). Asnjë nga Service Mesh aktuale nuk mbështet natyrshëm këto modele, dhe kjo është shumë e rëndësishme, sidomos për bankën!

Është mjaft çuditshme që "thirrja e largët" Remote Procedure Call (RPC) mbështetet nga të gjitha versionet e Service Mesh, ndërsa me EDA nuk bashkëveprojnë. Sepse Service Mesh është një e ngjashme e integrimit modern të shpërndarë, ndërsa EDA është një model arkitektonik shumë aktual që lejon të realizohen gjëra unike në përvojën e klientit.

Enterprise Service Mesh ynë duhet të zgjidhë këtë problem. Për më tepër, ne duam të shohim në të realizimin e dorëzimit të garantuar, përpunimin e ngjarjeve në rrjedhë dhe tërësor me përdorimin e filtrave dhe jack-podave të ndryshëm.

Shërbimi i transferimit të skedarëve

Përveç EDA, do të ishte mirë të kishte mundësinë për të transferuar skedarë: në shkallën e Enterprise shpesh herë është e mundur vetëm integrimi i skedarëve. Konkretisht, përdoret modeli arkitektonik ETL (Extract, Transform, Load — "ekstraktim, transformim, ngarkim"). Në të, zakonisht, të gjithë ndajnë skedarë: përpunohen të dhëna të mëdha që nuk janë të arsyeshme të dërgohen me kërkesa të veçanta. Mundësia e mbështetjes natyrore për transferimin e skedarëve në Enterprise Service Mesh ofron fleksibilitetin e nevojshëm për biznesin.

Shërbimi i orkestrimit

Në organizatat e mëdha, pothuajse gjithmonë ka ekipe të ndryshme që krijojnë produkte të ndryshme. P.sh., në një bankë disa ekipe punojnë me depozita, ndërsa të tjerë — me produkte krediti, dhe ka mjaft raste të tilla. Këto janë njerëz të ndryshëm, ekipe të ndryshme, që krijojnë produktet e tyre, zhvillojnë API-të e tyre dhe i ofrojnë ato të tjerëve. Dhe shpesh lind nevoja për kompozimin e këtyre shërbimeve, si dhe për implementimin e logjikës së ndërlikuar të thirrjes së një grupi API-sh. Për të zgjidhur këtë problem nevojitet një zgjidhje në nivelin e integrimit, e cila do të lejojë thjeshtimin e kësaj logjike kompozite (thirrja e disa API-ve, përshkrimi i rrugës së kërkesave, etj.). Ky është shërbimi i orkestrimit në Enterprise Service Mesh.

AI dhe ML

Kur mikrosherbimet komunikohet përmes një shtrese integruese të vetme, Service Mesh, natyrshëm, di gjithçka rreth thirrjeve të çdo shërbimi. Ne mbledhim telemetrinë: kush e thirri cilin, kur, sa gjatë, sa herë etj. Kur këto shërbime janë qindra mijëra, dhe thirrjet — miliarda, të gjitha këto akumulohen dhe formojnë Big Data. Këto të dhëna mund të analizohen me mjete të AI, machine learning etj., dhe pastaj të bëhen disa gjëra të dobishme bazuar në rezultatet e analizës. Do ishte e duhur, të paktën pjesërisht, t’i kalonim inteligjencës artificiale menaxhimin e gjithë këtij trafiku rrjethës dhe thirrjeve të aplikacioneve, të integuara në Service Mesh.

Shërbimi API Gateway

Si rregull, në Service Mesh ka proxy dhe shërbime që komunikojnë mes tyre brenda një perimetrin të besueshëm. Por ka gjithashtu edhe kontraktorë të jashtëm. Kërkesat ndaj API-ve që ofrohen për këtë grup konsumatorësh janë shumë më serioze. Ne e ndajmë këtë detyrë në dy pjesë kryesore.

  • Siguria. Pyetje, të lidhura me ddos, cenueshmërinë e protokolleve, aplikacioneve, sistemeve operative etj.
  • Shkallët. Kur vendi i API, që duhet t'u jepet klientëve, është në mijëra ose madje qindra mijëra, ndjenja e nevojës për një mjet për menaxhimin e këtij grupi API krijohet. Duhet të monitorohet vazhdimisht API: a funksionojnë ata apo jo, çfarë statusi kanë, çfarë trafiku po shkon, cilat janë statistikat, etj. Portali API duhet ta përballojë këtë detyrë, duke bërë që e gjithë procesi të jetë i menaxhueshëm dhe i sigurt. Falë kësaj komponente, Enterprise Service Mesh mëson të publikojë pa asnjë vështirësi API si të brendshëm ashtu edhe të jashtëm.

Shërbimi i mbështetjes për protokollet specifikë dhe formatet e të dhënave (portali API)

Aktualisht, shumica e zgjidhjeve Service Mesh dinë të punojnë natyrshëm vetëm me trafik HTTP dhe HTTP2 ose në një modalitet të kufizuar në nivelin TCP/IP. Enterprise Service Mesh ka shumë protokolle të tjera të përcjelljes së të dhënave shumë specifike. Disa sisteme mund të përdorin brokerë mesazhesh, të tjera integrohen në nivelin e bazave të të dhënave. Nëse në kompaninë tuaj ka SAP, ai gjithashtu mund të përdorë sistemin e tij të integrimit. Dhe e gjithë kjo funksionon dhe është një pjesë e rëndësishme e biznesit.

Nuk mund të thoni thjesht: "Le të heqim dorë nga legjenda dhe të bëjmë sisteme të reja që do të jenë në gjendje të përdorin Service Mesh". Për të lidhur të gjitha sistemet e vjetra me ato të reja (në arkitekturën mikroshërbimeve), sistemet që mund të përdorin Service Mesh do të kenë nevojë për një adaptues, një ndërmjetës, një portal. Pajtohuni, do të ishte e shkëlqyer nëse ai do gjendej si një paketë bashkë me shërbimin. Portali API saktësisht mund të mbështesë çdo opsion integrimi. Imagjinoni, thjesht instaluat Enterprise Service Mesh, dhe ai është tashmë i gatshëm të bashkëpunojë me të gjithë protokollet që ju nevojiten. Ky qasje është shumë e rëndësishme për ne.

Pikërisht kështu ne e paraqesim versionin korporativ të Service Mesh (Enterprise Service Mesh). Personalizimi i përshkruar zgjidh shumicën e problemeve që shfaqen kur përpiqeni të përdorni versionet e gatshme open-source të platformës integruese. Pasi është shfaqur vetëm disa vjet më parë, arkitektura Service Mesh vazhdon të zhvillohet, dhe ne jemi të lumtur që mund të kontribuojmë në zhvillimin e saj. Shpresojmë që përvoja jonë do të jetë e dobishme për ju.

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster