Prečo vytvárame Enterprise Service Mesh?

Service Mesh je známy architektonický vzor na integráciu mikroslužieb a migráciu do cloudovej infraštruktúry. Dnes vo svete cloud-kontajnerov je dosť ťažké sa bez neho zaobísť. Na trhu je už dostupných niekoľko implementácií open-source service mesh, no ich funkčnosť, spoľahlivosť a bezpečnosť nie sú vždy dostatočné, najmä pokiaľ ide o požiadavky veľkých finančných spoločností po celej krajine. To je dôvod, prečo sme sa v Sbertechu rozhodli prispôsobiť Service Mesh a chceme hovoriť o tom, čo je na Service Mesh skvelé, čo nie je také skvelé a čo s tým urobíme.

Prečo vytvárame Enterprise Service Mesh?

Popularita vzoru Service Mesh rastie s popularitou cloudových technológií. Ide o vyhradenú vrstvu infraštruktúry, ktorá zjednodušuje interakciu medzi rôznymi sieťovými službami. Moderné cloudové aplikácie pozostávajú zo stoviek alebo dokonca tisícok takýchto služieb, z ktorých každá môže mať tisíce kópií.

Prečo vytvárame Enterprise Service Mesh?

Interakcia medzi týmito službami a ich riadenie je kľúčovou úlohou siete služieb. V skutočnosti ide o sieťový model mnohých proxy serverov, spravovaných centrálne a vykonávajúcich súbor veľmi užitočných funkcií.

Na úrovni proxy (údajová rovina):

  • Priraďovanie a distribúcia smerovania a vyvažovania dopravy
  • Distribúcia kľúčov, certifikátov, tokenov
  • Zber telemetrie, generovanie monitorovacích metrík
  • Integrácia s bezpečnostnou a monitorovacou infraštruktúrou

Na úrovni riadiacej roviny:

  • Uplatňovanie politík smerovania a vyvažovania prevádzky
  • Správa opakovaných pokusov a časových limitov, zisťovanie „mŕtvych“ uzlov (prerušenie okruhu), správa porúch vstrekovania a zabezpečenie odolnosti služby prostredníctvom iných mechanizmov
  • Autentifikácia/autorizácia hovoru
  • Zrušenie metrík (pozorovateľnosť)

Okruh používateľov zaujímajúcich sa o vývoj tejto technológie je veľmi široký – od malých startupov až po veľké internetové korporácie, napríklad PayPal.

Prečo je servisná sieť potrebná v podnikovom sektore?

Používanie servisnej siete má mnoho jasných výhod. V prvom rade je to jednoducho výhodné pre vývojárov: na písanie kódu objaví sa technologická platforma, čo výrazne zjednodušuje integráciu do cloudovej infraštruktúry vďaka tomu, že transportná vrstva je úplne izolovaná od aplikačnej logiky.

Okrem toho, Service Mesh zjednodušuje vzťah medzi dodávateľmi a spotrebiteľmi. Dnes je pre poskytovateľov a spotrebiteľov API oveľa jednoduchšie dohodnúť sa na rozhraniach a zmluvách sami, bez zapojenia špeciálneho integračného sprostredkovateľa a rozhodcu – podnikovej servisnej zbernice. Tento prístup výrazne ovplyvňuje dva ukazovatele. Rýchlosť uvedenia novej funkcionality na trh (time-to-market) sa zvyšuje, no zároveň sa zvyšujú náklady na riešenie, keďže integrácia musí prebiehať nezávisle. Používanie Service Mesh tímom pre vývoj obchodných funkcií pomáha udržiavať rovnováhu. Výsledkom je, že poskytovatelia API sa môžu sústrediť výlučne na aplikačnú zložku svojej služby a jednoducho ju publikovať v Service Mesh - API bude okamžite dostupné pre všetkých klientov a kvalita integrácie bude pripravená na produkciu a nebude vyžadovať jediný riadok dodatočného kódu.

Ďalšia výhoda je tá vývojár pomocou Service Mesh sa zameriava výlučne na obchodné funkcie — na produkte a nie na technologickej zložke jeho služby. Napríklad už nemusíte myslieť na to, že v situácii, keď je služba volaná cez sieť, môže niekde dôjsť k výpadku spojenia. Okrem toho služba Service Mesh pomáha vyrovnávať návštevnosť medzi kópiami tej istej služby: ak jedna z kópií „zomrie“, systém prepne všetku premávku na zostávajúce živé kópie.

Servisná sieť - je to dobrý základ pre vytváranie distribuovaných aplikácií, ktorá pred klientom tají detaily poskytovania volaní k svojim službám interne aj externe. Všetky aplikácie využívajúce Service Mesh sú na úrovni prenosu izolované od siete aj od seba navzájom: neexistuje medzi nimi žiadna komunikácia. V tomto prípade získa vývojár plnú kontrolu nad svojimi službami.

Treba poznamenať, že Aktualizácia distribuovaných aplikácií v prostredí servisnej siete je jednoduchšia. Napríklad modro/zelené nasadenie, v ktorom sú na inštaláciu k dispozícii dve prostredia aplikácií, z ktorých jedno nie je aktualizované a je v pohotovostnom režime. Vrátenie späť na predchádzajúcu verziu v prípade neúspešného vydania vykonáva špeciálny smerovač, ktorého úlohu Service Mesh dobre zvláda.. Na testovanie novej verzie môžete použiť vypustenie kanárika — prejsť na novú verziu len 10 % návštevnosti alebo požiadaviek od pilotnej skupiny klientov. Hlavná prevádzka ide na starú verziu, nič sa nezlomí.

Tiež Service Mesh nám poskytuje kontrolu SLA v reálnom čase. Distribuovaný proxy systém nedovolí, aby služba zlyhala, keď jeden z klientov prekročí pridelenú kvótu. Ak je priepustnosť API obmedzená, nikto ju nebude môcť zahltiť veľkým počtom transakcií: Service Mesh stojí pred službou a neumožňuje zbytočnú premávku. Jednoducho sa bude brániť v integračnej vrstve a samotné služby budú naďalej fungovať bez toho, aby si to všimli.

Ak chce spoločnosť znížiť náklady na vývoj integračných riešení, služba Service Mesh tiež pomáha: Z komerčných produktov môžete prejsť na jeho open-source verziu. Naša Enterprise Service Mesh je založená na open source verzii Service Mesh.

Ďalšia výhoda - dostupnosť jediného plnohodnotného súboru integračných služieb. Pretože celá integrácia je postavená prostredníctvom tohto middlewaru, môžeme riadiť všetku integračnú prevádzku a prepojenia medzi aplikáciami, ktoré tvoria obchodné jadro spoločnosti. Je to veľmi pohodlné.

A nakoniec Service Mesh povzbudzuje spoločnosť k prechodu na dynamickú infraštruktúru. Teraz sa mnohí zameriavajú na kontajnerizáciu. Rozrezanie monolitu na mikroslužby, implementácia tohto všetkého krásne - téma je na vzostupe. Ale keď sa pokúsite preniesť systém, ktorý sa vyrába dlhé roky, na novú platformu, narazíte okamžite na množstvo problémov: natlačiť to všetko do kontajnerov a nasadiť na platformu nie je jednoduché. A implementácia, synchronizácia a interakcia týchto distribuovaných komponentov je ďalšou veľmi zložitou témou. Ako budú medzi sebou komunikovať? Vyskytnú sa kaskádové zlyhania? Service Mesh vám umožňuje vyriešiť niektoré z týchto problémov a uľahčiť migráciu zo starej architektúry na novú, pretože môžete zabudnúť na logiku výmeny siete.

Prečo potrebujete prispôsobenie Service Mesh?

V našej spoločnosti koexistujú stovky systémov a modulov a runtime je veľmi zaťažený. Jednoduchý vzorec, že ​​jeden systém zavolá druhému a dostane odpoveď, teda nestačí, pretože vo výrobe chceme viac. Čo ešte potrebujete od siete podnikových služieb?

Prečo vytvárame Enterprise Service Mesh?

Služba spracovania udalostí

Predstavme si, že potrebujeme urobiť spracovanie udalostí v reálnom čase – systém, ktorý v reálnom čase analyzuje akcie klienta a dokáže mu okamžite urobiť relevantnú ponuku. Na implementáciu podobnej funkcie použite architektonický vzor nazývaný udalosťami riadená architektúra (EDA). Žiadna zo súčasných sietí služieb natívne nepodporuje takéto vzory, ale to je veľmi dôležité, najmä pre banku!

Je celkom zvláštne, že Remote Procedure Call (RPC) podporujú všetky verzie Service Mesh, ale nie sú priateľské s EDA. Pretože Service Mesh je druh modernej distribuovanej integrácie a EDA je veľmi relevantný architektonický vzor, ​​ktorý vám umožňuje robiť jedinečné veci z hľadiska zákazníckej skúsenosti.

Naša Enterprise Service Mesh by mala tento problém vyriešiť. Okrem toho v ňom chceme vidieť implementáciu garantovaného doručenia, streamovania a komplexného spracovania udalostí pomocou rôznych filtrov a šablón.

Služba prenosu súborov

Okrem EDA by bolo pekné mať možnosť prenášať súbory: na úrovni Enterprise je veľmi často možná iba integrácia súborov. Používa sa najmä architektonický vzor ETL (Extract, Transform, Load). V ňom si spravidla každý vymieňa súbory výlučne: používajú sa veľké dáta, čo je nepraktické vkladať samostatné požiadavky. Schopnosť natívne podporovať prenosy súborov v Enterprise Service Mesh vám dáva flexibilitu, ktorú vaše podnikanie potrebuje.

Orchestračná služba

Veľké organizácie majú takmer vždy rôzne tímy, ktoré vyrábajú rôzne produkty. Napríklad v banke niektoré tímy pracujú s vkladmi, iné zase s úverovými produktmi a takýchto prípadov je pomerne veľa. Sú to rôzni ľudia, rôzne tímy, ktoré vyrábajú svoje produkty, vyvíjajú svoje API a poskytujú ich ostatným. A veľmi často je potrebné zostaviť tieto služby, ako aj implementovať komplexnú logiku pre sekvenčné volanie sady API. Na vyriešenie tohto problému potrebujete riešenie v integračnej vrstve, ktoré celú túto zloženú logiku zjednoduší (volanie viacerých API, popis trasy požiadavky atď.). Toto je služba orchestrácie v Enterprise Service Mesh.

AI a ML

Keď mikroslužby komunikujú cez jednu integračnú vrstvu, Service Mesh prirodzene vie všetko o volaniach každej služby. Zhromažďujeme telemetriu: kto komu volal, kedy, ako dlho, koľkokrát atď. Keď existujú státisíce týchto služieb a miliardy hovorov, potom sa toto všetko hromadí a vytvára veľké dáta. Tieto údaje je možné analyzovať pomocou AI, strojového učenia atď. a na základe výsledkov analýzy je možné urobiť niekoľko užitočných vecí. Riadenie celej tejto sieťovej prevádzky a volaní aplikácií integrovaných do Service Mesh by bolo vhodné aspoň čiastočne odovzdať umelej inteligencii.

Služba API brány

Sieť služieb má zvyčajne servery proxy a služby, ktoré spolu komunikujú v rámci dôveryhodného obvodu. Existujú však aj externé protistrany. Požiadavky na API vystavené tejto skupine spotrebiteľov sú oveľa prísnejšie. Túto úlohu rozdeľujeme na dve hlavné časti.

  • zabezpečenia. Problémy súvisiace s ddos, zraniteľnosťou protokolov, aplikácií, operačných systémov atď.
  • Mierka. Keď počet rozhraní API, ktoré je potrebné poskytnúť klientom, prekročí tisíce alebo dokonca stovky tisíc, existuje potreba nejakého nástroja na správu pre túto sadu rozhraní API. Musíte neustále monitorovať API: či fungujú alebo nie, aký je ich stav, aká návštevnosť prúdi, aké štatistiky atď. API brána by mala zvládnuť túto úlohu a zároveň zabezpečiť, aby bol celý proces spravovateľný a bezpečný. Vďaka tomuto komponentu sa Enterprise Service Mesh naučí jednoducho publikovať interné aj externé API.

Služba podpory pre špecifické protokoly a formáty údajov (brána AS)

V súčasnosti môže väčšina riešení Service Mesh pracovať natívne iba s prenosom HTTP a HTTP2 alebo v obmedzenom režime na úrovni TCP/IP. Enterprise Service Mesh sa objavuje s mnohými ďalšími veľmi špecifickými protokolmi prenosu údajov. Niektoré systémy môžu využívať sprostredkovateľov správ, iné sú integrované na úrovni databázy. Ak má firma SAP, tak môže využiť aj vlastný integračný systém. Toto všetko navyše funguje a je dôležitou súčasťou podnikania.

Nemôžete len povedať: „Vzdajme sa dedičstva a vytvorme nové systémy, ktoré môžu používať Service Mesh.“ Na prepojenie všetkých starých systémov s novými (na mikroservisnej architektúre) budú systémy, ktoré môžu využívať Service Mesh, potrebovať nejaký adaptér, sprostredkovateľa, bránu. Súhlasím, bolo by pekné, keby to prišlo v krabici spolu so službou. AC brána môže podporovať akúkoľvek možnosť integrácie. Len si predstavte, že si nainštalujete Enterprise Service Mesh a je pripravený na interakciu so všetkými protokolmi, ktoré potrebujete. Tento prístup je pre nás veľmi dôležitý.

Približne takto si predstavujeme firemnú verziu Service Mesh (Enterprise Service Mesh). Popísané prispôsobenie rieši väčšinu problémov, ktoré vznikajú pri pokuse použiť hotové open-source verzie integračnej platformy. Architektúra Service Mesh, ktorá bola predstavená len pred pár rokmi, sa neustále vyvíja a my sme nadšení, že môžeme prispieť k jej rozvoju. Dúfame, že naše skúsenosti budú pre vás užitočné.

Zdroj: hab.com

Pridať komentár