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í.