Comparthing Logo
servisní síťAPI bránastrojové učenícloudová infrastrukturakubernetesmikroslužby

Síť služeb pro strojové učení vs. tradiční brány API

Servisní sítě vytvořené pro úlohy strojového učení zpracovávají dynamický a velkoobjemový inferenční provoz s detailní správou provozu, zatímco tradiční API brány se zaměřují na směrování požadavků, ověřování a omezování rychlosti pro standardní mikroslužby. Výběr mezi nimi závisí na tom, zda je vaším primárním zájmem pozorovatelnost a verzování modelu specifické pro strojové učení, nebo orchestrace API pro obecné účely.

Zvýraznění

  • Servisní sítě poskytují nativní rozdělení provozu pro nasazení modelu Canary, zatímco brány API vyžadují vlastní konfiguraci.
  • Brány API přidávají latenci pouze na okraji sítě, zatímco vedlejší vozy Service Mesh přidávají režijní náklady na každý interní hop.
  • Servisní sítě nabízejí distribuované trasování napříč kanály strojového učení, což poskytuje přehled, kterému se brány API nemohou rovnat.
  • Směrování s ohledem na GPU je možné u servisních sítí, ale není to funkce tradičních API bran.

Co je Síť služeb pro strojové učení?

Vrstva infrastruktury určená ke správě komunikace mezi službami ML, zpracování inferenčního provozu, verzování modelů a směrování s ohledem na GPU.

  • Servisní sítě jako Istio a Linkerd lze rozšířit o komponenty specifické pro strojové učení, jako je KServe pro inferenční směrování.
  • Podporují pokročilé dělení provozu, což umožňuje nasazení typu canary a A/B testování nových verzí modelů v produkčním prostředí.
  • Vestavěný vzájemný protokol TLS (mTLS) zajišťuje komunikaci mezi mikroslužbami bez nutnosti změn kódu v aplikaci.
  • Proxy servery Sidecar, jako je Envoy, shromažďují podrobnou telemetrii pro každý požadavek, včetně latence, míry chyb a velikosti datových částí pro volání inference ML.
  • Servisní sítě se integrují s platformami strojového učení nativními pro Kubernetes, což je činí vhodnými pro cloudová prostředí obsluhující modely.

Co je Tradiční API brány?

Centralizovaný vstupní bod, který směruje požadavky API, vynucuje ověřování, aplikuje limity rychlosti a transformuje datové části pro backendové služby.

  • Mezi oblíbené API brány patří Kong, Apigee, AWS API Gateway a NGINX, které se široce používají v podnikových prostředích.
  • Obvykle fungují na okraji sítě a zpracovávají severojižní provoz mezi klienty a backendovými službami.
  • Brány API poskytují překlad protokolů, převádějí požadavky REST, gRPC nebo WebSocket do formátů kompatibilních s backendem.
  • Většina z nich ihned po instalaci podporuje OAuth 2.0, validaci JWT a správu klíčů API pro zabezpečení veřejně přístupných koncových bodů.
  • Obecně jsou bezstavové a optimalizované pro vzory požadavků a odpovědí, spíše než pro dlouhodobá streamovací připojení běžná v inferenci ML.

Srovnávací tabulka

Funkce Síť služeb pro strojové učení Tradiční API brány
Primární případ použití Správa provozu inference ML a verzování modelů Obecné směrování a orchestrace požadavků API
Dopravní vzorec Východ-západ (služba-služba) a inferenční volání s vysokým objemem Sever-jih (klient-služba) požadavek-odpověď
Model nasazení Sidecar proxy vedle každé služby (např. Envoy, Linkerd-proxy) Centralizovaná brána nasazená na okraji sítě
Podpora verzování modelů Nativní rozdělení provozu pro zavedení modelů Canary a Blue Green Omezené; obvykle vyžaduje vlastní pravidla směrování
Pozorovatelnost Metriky pro jednotlivé požadavky, distribuované trasování a telemetrie specifická pro strojové učení Agregované metriky, základní protokolování a počty požadavků
Bezpečnostní funkce Automatické mTLS mezi službami, detailní autorizační zásady Ověření klíčů API, OAuth 2.0, JWT a whitelisting IP adres
Směrování s ohledem na GPU Může směrovat na základě dostupnosti GPU a využití zdrojů Není nativně podporováno
Režie latence Typicky 1–3 ms na skok kvůli zpracování postranního vozíku Obecně nižší pro volání přes jednosměrnou bránu
Nejvhodnější pro Platformy strojového učení založené na Kubernetes s mikroslužbami Veřejná API, mobilní backendy a vystavení monolitickým službám

Podrobné srovnání

Řízení provozu a nasazení modelu

Servisní sítě vynikají ve správě složitých vzorců provozu, které generují systémy strojového učení, zejména když týmy potřebují postupně zavádět nové verze modelů. Umožňují rozdělit provoz mezi verzemi modelů na úrovni infrastruktury, takže můžete spustit nový model na 5 % požadavků, zatímco starý model zpracovává zbytek. Tradiční API brány mohou dosáhnout podobného rozdělení pomocí vlastních pravidel směrování, ale nebyly navrženy s ohledem na verzování modelů, což konfiguraci činí křehčí a obtížněji udržovatelnou ve velkém měřítku.

Pozorovatelnost a ladění

Když se něco pokazí s inferenčním kanálem ML, musíte vědět, zda je problém v modelu, datech nebo síti. Servisní sítě poskytují distribuované trasování, které sleduje požadavek napříč více službami, zachycuje latenci v každém kroku a koreluje ji s konkrétními verzemi modelu. Brány API nabízejí slušné protokolování a metriky, ale obvykle se zastaví na hranici brány, takže vy musíte shrnout, co se stalo uvnitř vašeho prostředí servisní sítě nebo mikroslužeb.

Bezpečnostní architektura

Oba přístupy berou bezpečnost vážně, ale řeší různé problémy. Servisní sítě vynucují nulovou důvěryhodnost automatickým šifrováním veškeré komunikace mezi službami pomocí mTLS, což je důležité při toku citlivých inferenčních dat mezi desítkami mikroslužeb. Brány API se zaměřují na perimetrické zabezpečení a ověřují, zda jsou příchozí požadavky legitimní, než se dostanou k vašemu backendu. Pro systémy strojového učení, které zpracovávají regulovaná data, jako je zdravotní péče nebo finanční informace, dává často největší smysl kombinace obou vrstev.

Povědomí o zdrojích a optimalizace GPU

Pracovní úlohy ML se chovají odlišně od typických webových služeb, protože jsou často vázány na GPU a náročné na paměť. Některé implementace sítě služeb (Service Mesh) lze nakonfigurovat tak, aby směrovaly požadavky na základě dostupnosti GPU a odesílaly provoz na uzly s dostupnou kapacitou akcelerátoru. Tradiční brány API nemají žádnou představu o podkladových hardwarových zdrojích a každý backend považují za černou skříňku. Díky tomu jsou méně efektivní, když potřebujete maximalizovat využití drahého GPU napříč flotilou inferenčních serverů.

Provozní složitost

Servisní sítě představují dodatečné provozní náklady, protože každá služba má postranní proxy, který je třeba nasadit, monitorovat a aktualizovat. Pro tým, který je již s Kubernetes obeznámen, je to zvládnutelné, ale přidává to křivku učení. API brány se obecně ovládají snáze, protože se jedná o jednu komponentu, ačkoli podnikové brány, jako je Apigee, mají svou vlastní složitost, pokud jde o vývojářské portály a správu produktů API.

Kompromisy mezi cenou a výkonem

Vzor postranního vozu v servisních sítích přidává latenci na každém skoku, obvykle několik milisekund, což se může v hlubokých řetězcích mikroslužeb hromadit. U aplikací strojového učení citlivých na latenci, jako jsou systémy doporučení v reálném čase, je tato režie důležitá. Brány API přidávají latenci pouze jednou na okraji sítě, což je činí předvídatelnějšími pro jednoduché vzory požadavků a odpovědí. Provozní náklady na provoz servisní sítě ve velkém měřítku však lze kompenzovat zkrácenou dobou ladění a lepší bezpečností zavádění modelů strojového učení.

Výhody a nevýhody

Síť služeb pro strojové učení

Výhody

  • + Nativní verzování modelů
  • + Jemnozrnné řízení provozu
  • + Automatické šifrování mTLS
  • + Hluboká pozorovatelnost
  • + Směrování s ohledem na GPU

Souhlasím

  • Vyšší provozní složitost
  • Přidaná latence na hop
  • Strmější křivka učení
  • Režijní náklady na zdroje z postranních vozíků

Tradiční API brány

Výhody

  • + Jednodušší nasazení
  • + Nižší latence
  • + Zralý ekosystém
  • + Silné ověřovací funkce

Souhlasím

  • Omezené verzování modelů
  • Žádné rozpoznání GPU
  • Slabší interní pozorovatelnost
  • Méně vhodné pro provoz východ-západ

Běžné mýty

Mýtus

Servisní sítě a API brány dělají totéž a potřebujete jen jednu.

Realita

Slouží různým účelům. Brány API spravují provoz sever-jih na okraji sítě, zatímco sítě služeb zpracovávají provoz východ-západ mezi službami. Mnoho organizací běží na obou současně, přičemž každá z nich se stará o to, co umí nejlépe.

Mýtus

Brány API zvládají verzování modelů ML stejně dobře jako síť služeb.

Realita

Brány API mohou směrovat na základě hlaviček nebo cest, ale postrádají hlubokou integraci s nasazovacími systémy, kterou nabízejí sítě služeb. Vrácení problematické verze modelu je u sítě služeb rychlejší a bezpečnější, protože rozdělení provozu lze dynamicky upravovat bez nutnosti opětovného nasazení konfigurací bran.

Mýtus

Servisní sítě přidávají pro produkční systémy strojového učení příliš mnoho latence.

Realita

Moderní sidecar proxy jako Envoy a Linkerd-proxy přidávají ve většině benchmarků pouze 1–3 milisekundy na skok. Pro většinu úloh inferenčního strojového učení je tato režie zanedbatelná ve srovnání se skutečnou dobou inferenčního modelu, která je často 10–100 milisekund nebo více.

Mýtus

Pokud již máte bránu API, nepotřebujete síť služeb.

Realita

Brána API chrání váš perimetr, ale nezabezpečuje ani nesleduje provoz mezi interními službami. V architektuře mikroslužeb s desítkami služeb poskytuje síť služeb zabezpečení s nulovou důvěrou a sledovatelnost, kterou brána API jednoduše nemůže poskytnout.

Mýtus

Servisní sítě jsou užitečné pouze pro prostředí Kubernetes.

Realita

I když se servisní sítě (service mesh) nejčastěji spojují s Kubernetes, implementace jako Consul Connect a Linkerd mohou běžet na virtuálních strojích a holém kovu. Vzor sidecar funguje všude, kde můžete nasadit proxy vedle aplikace.

Často kladené otázky

Může síť služeb zcela nahradit bránu API?
Teoreticky ano, ale v praxi to bývá jen zřídkakdy použitelné. Servisní sítě sice zvládají provoz na okraji sítě pomocí vstupních bran, ale chybí jim funkce, jako jsou vývojářské portály, správa produktů API a fakturace předplatného, které poskytují podnikové API brány. Většina týmů používá servisní síť pro interní provoz a API bránu pro externí API.
Co je lepší pro nasazení modelu ML, servisní síť nebo API brána?
Servisní sítě jsou obecně lepší pro nasazení modelů ML, protože podporují rozdělení provozu, canary release a automatické vrácení zpět na úrovni infrastruktury. Brány API mohou směrovat do různých verzí modelu, ale vyžadují ruční změny konfigurace a neintegrují se tak těsně s kanály nasazení ML.
Kolik latence přidává síť služeb ve srovnání s bránou API?
Pomocné vozy v rámci sítě služeb (sidecars) obvykle přidávají 1–3 milisekundy na jeden směr (hop) a protože provoz může v řetězci mikroslužeb procházet přes více pomocných vozů (sidecars), celková režie může být 5–15 milisekund. Brány API přidávají latenci pouze jednou na okraji sítě, obvykle celkem 1–5 milisekund. Pro aplikace kritické z hlediska latence je tento rozdíl důležitý.
Potřebuji pro svou platformu ML jak servisní síť, tak i bránu API?
Pokud vaše platforma ML zpřístupňuje API externím klientům a také komunikuje s interními mikroslužbami, je běžné a doporučené používat obě. Brána API se stará o ověřování a omezování rychlosti pro externí provoz, zatímco síť služeb spravuje interní komunikaci mezi službami, mTLS a sledovatelnost.
Jaké jsou nejoblíbenější implementace sítě služeb pro úlohy strojového učení (ML)?
Istio, Linkerd a Consul Connect jsou nejpoužívanější servisní sítě. Pro úlohy specifické pro strojové učení se KServe a Seldon Core integrují s těmito sítěmi a poskytují obsluhu modelů se správou provozu. Inferenční platforma NVIDIA také využívá vzory servisních sítí pro směrování s ohledem na GPU.
Mohou brány API zpracovávat provoz gRPC pro inferenci ML?
Ano, většina moderních API bran, včetně bran Kong, bran založených na Envoy a AWS API Gateway, podporuje gRPC. Servisní sítě však často zpracovávají gRPC přirozeněji, protože byly navrženy s ohledem na HTTP/2 a obousměrné streamování, což je běžné ve scénářích inference ML.
Jak pomáhá servisní síť s pozorovatelností modelu ML?
Servisní sítě automaticky shromažďují metriky, jako je latence požadavků, míra chyb a objem provozu pro každou interakci služby. V kombinaci s nástroji, jako jsou Prometheus a Jaeger, můžete sledovat jeden inferenční požadavek napříč více službami a identifikovat úzká hrdla, což je neocenitelné při ladění ML pipelines.
Je provozování servisní sítě ve velkém měřítku drahé?
Servisní sítě přidávají režijní náklady na CPU a paměť, protože každý sidecar proxy spotřebovává určité prostředky. Pro nasazení se 100 službami můžete potřebovat 2–4 další jádra CPU a 1–2 GB RAM na uzel jen pro síť. Tyto náklady jsou však často kompenzovány zkrácenou dobou ladění a bezpečnějším nasazením.
Co je snazší nastavit, servisní síť nebo API bránu?
Brány API se obecně snáze nastavují, protože se jedná o jednu komponentu s jasným konfiguračním rozhraním. Servisní sítě vyžadují instalaci řídicích rovin, vkládání postranních vozů a konfiguraci vzájemného TLS, což zabere více času, ale po zprovoznění poskytuje hlubší funkcionalitu.
Fungují sítě služeb s platformami pro inferenční strojové učení bez serveru?
Servisní sítě jsou primárně navrženy pro dlouhodobě běžící služby, takže se neintegrují dobře s bezserverovými funkcemi, které se často střídají. Pro bezserverové strojové učení na platformách, jako je AWS Lambda nebo Google Cloud Run, je pro správu provozu obvykle lepší volbou brána API.

Rozhodnutí

Pokud se vaše infrastruktura zaměřuje na platformy strojového učení založené na Kubernetes s častými aktualizacemi modelů a komplexní komunikací mezi službami, pak vám servisní síť přizpůsobená pro úlohy strojového učení poskytne lepší kontrolu a sledovatelnost. Pro organizace, které zpřístupňují několik koncových bodů strojového učení externím klientům nebo mobilním aplikacím, je tradiční brána API jednodušší na správu a pro daný úkol postačuje. Mnoho produkčních systémů nakonec používá obě, přičemž brána API zpracovává externí provoz a servisní síť spravuje interní komunikaci služeb strojového učení.

Související srovnání

Adaptivní infrastruktura vs. návrh statické infrastruktury

Adaptivní infrastruktura se dynamicky přizpůsobuje měnícím se pracovním zátěžím prostřednictvím automatizace a škálování v reálném čase, zatímco statická infrastruktura se spoléhá na fixní, předkonfigurované zdroje. Výběr mezi nimi závisí na variabilitě pracovní zátěže, předvídatelnosti rozpočtu a provozní vyspělosti ve vašem cloudovém prostředí.

Agregace telemetrie vs. protokolování z jednoho zdroje

Agregace telemetrie konsoliduje metriky, protokoly a trasování z mnoha zdrojů do jednotného kanálu, zatímco protokolování z jednoho zdroje se zaměřuje na sběr a analýzu dat z jednoho konkrétního zdroje. Správná volba závisí na složitosti systému, cílech pozorovatelnosti a provozním rozsahu.

AWS vs Google Cloud

Toto srovnání zkoumá Amazon Web Services a Google Cloud analýzou jejich nabídky služeb, cenových modelů, globální infrastruktury, výkonu, zkušeností vývojářů a ideálních případů použití, což organizacím pomáhá vybrat cloudovou platformu, která nejlépe vyhovuje jejich technickým a obchodním požadavkům.

Cloudové zpracování vs. edge zpracování

Cloudové zpracování zpracovává data v centralizovaných vzdálených datových centrech a nabízí masivní škálovatelnost a výpočetní výkon. Zpracování na okraji sítě přibližuje výpočetní výkon k místu, kde jsou data generována, čímž snižuje latenci a využití šířky pásma. Oba přístupy slouží různým potřebám v moderních distribuovaných systémech.

Datové toky v reálném čase vs. dávkové zpracování dat

Datové toky v reálném čase zpracovávají informace průběžně, jakmile přijdou, a poskytují poznatky během milisekund, zatímco dávkové zpracování zpracovává velké objemy nashromážděných dat podle plánu. Každý přístup vyhovuje různým obchodním potřebám v závislosti na požadavcích na latenci, objemu dat a složitosti případu užití.