plasă de serviciiapi-gatewayînvățare automatăinfrastructură cloudKubernetesmicroservicii
Service Mesh pentru ML vs. Gateway-uri API tradiționale
Rețelele de servicii construite pentru sarcini de lucru de învățare automată gestionează traficul de inferență dinamic, cu volum mare, cu o gestionare fină a traficului, în timp ce gateway-urile API tradiționale se concentrează pe rutarea cererilor, autentificare și limitarea ratei pentru microservicii standard. Alegerea dintre ele depinde de faptul dacă preocuparea principală este observabilitatea specifică ML și versionarea modelului sau orchestrarea API de uz general.
Evidențiate
Mesh-urile de servicii oferă divizarea nativă a traficului pentru implementările modelului canary, în timp ce gateway-urile API necesită configurație personalizată.
Gateway-urile API adaugă latență doar la margine, în timp ce sidecar-urile de tip service mesh adaugă supraîncărcare la fiecare salt intern.
Mesh-urile de servicii oferă urmărire distribuită în conductele de învățare automată (ML), oferind o vizibilitate pe care gateway-urile API nu o pot egala.
Rutarea compatibilă cu GPU este posibilă cu rețelele de servicii, dar nu este o caracteristică a gateway-urilor API tradiționale.
Ce este Service Mesh pentru ML?
Un strat de infrastructură conceput pentru a gestiona comunicarea dintre serviciile de învățare automată (ML), gestionarea traficului de inferență, versionarea modelului și rutarea compatibilă cu GPU-ul.
Rețelele de servicii precum Istio și Linkerd pot fi extinse cu componente specifice ML, cum ar fi KServe, pentru rutarea prin inferență.
Acestea acceptă divizarea avansată a traficului, permițând implementări canary și testarea A/B a noilor versiuni de model în producție.
TLS-ul reciproc încorporat (mTLS) securizează comunicarea între microservicii fără a fi necesare modificări de cod în aplicație.
Proxy-urile sidecar precum Envoy colectează informații detaliate despre telemetrie pentru fiecare solicitare, inclusiv latența, ratele de eroare și dimensiunile sarcinii utile pentru apelurile de inferență ML.
Mesh-urile de servicii se integrează cu platformele de învățare automată (ML) native Kubernetes, ceea ce le face potrivite pentru mediile de servire a modelelor native în cloud.
Ce este Gateway-uri API tradiționale?
Un punct de intrare centralizat care direcționează cererile API, impune autentificarea, aplică limite de rată și transformă sarcinile utile pentru serviciile backend.
Printre gateway-urile API populare se numără Kong, Apigee, AWS API Gateway și NGINX, utilizate pe scară largă în mediile enterprise.
De obicei, acestea operează la marginea unei rețele, gestionând traficul nord-sud dintre clienți și serviciile backend.
Gateway-urile API oferă traducere de protocoale, convertind cererile REST, gRPC sau WebSocket în formate compatibile cu backend-ul.
Majoritatea acceptă OAuth 2.0, validarea JWT și gestionarea cheilor API direct din cutie pentru securizarea endpoint-urilor orientate publicului.
În general, acestea sunt fără stare și optimizate pentru modele de tip cerere-răspuns, mai degrabă decât pentru conexiuni de streaming de lungă durată, comune în inferența ML.
Tabel comparativ
Funcție
Service Mesh pentru ML
Gateway-uri API tradiționale
Caz de utilizare principal
Gestionarea traficului prin inferență ML și versionarea modelului
Rutare și orchestrare generală a cererilor API
Model de trafic
Apeluri de inferență est-vest (serviciu-la-serviciu) și apeluri de inferență cu volum mare
Cerere-răspuns nord-sud (client-serviciu)
Model de implementare
Proxy sidecar alături de fiecare serviciu (de exemplu, Envoy, Linkerd-proxy)
Gateway centralizat implementat la marginea rețelei
Suport pentru versiunea modelului
Divizarea traficului nativ pentru implementările modelelor canary și blue-green
Limitat; necesită de obicei reguli de rutare personalizate
Observabilitate
Metrici per solicitare, urmărire distribuită și telemetrie specifică ML
Indicatori agregați, înregistrare de bază și număr de solicitări
Caracteristici de securitate
mTLS automat între servicii, politici de autorizare detaliate
Validarea cheilor API, OAuth 2.0, JWT și includerea pe lista albă a adreselor IP
Rutare compatibilă cu GPU-ul
Poate ruta în funcție de disponibilitatea GPU-ului și de utilizarea resurselor
Nu este suportat nativ
Costuri suplimentare de latență
De obicei 1-3 ms pe salt datorită procesării sidecar
În general, mai mic pentru apelurile gateway cu un singur hop
Cel mai potrivit pentru
Platforme de învățare automată bazate pe Kubernetes cu microservicii
API-uri publice, backend-uri mobile și expunere monolitică la servicii
Comparație detaliată
Managementul traficului și implementarea modelului
Mesh-urile de servicii excelează în gestionarea modelelor complexe de trafic generate de sistemele de învățare automată (ML), în special atunci când echipele trebuie să implementeze treptat noi versiuni de model. Acestea vă permit să împărțiți traficul între versiunile de model la nivel de infrastructură, astfel încât să puteți rula un model nou pentru 5% din solicitări, în timp ce modelul vechi se ocupă de restul. Gateway-urile API tradiționale pot realiza împărțiri similare prin reguli de rutare personalizate, dar nu au fost proiectate având în vedere versiunea modelului, ceea ce face configurația mai fragilă și mai greu de întreținut la scară largă.
Observabilitate și depanare
Când ceva nu merge bine cu o rețea de inferențe ML, trebuie să știi dacă problema este modelul, datele sau rețeaua. Mesh-urile de servicii oferă urmărire distribuită care urmărește o solicitare pe mai multe servicii, captând latența la fiecare salt și corelând-o cu versiuni specifice ale modelului. Gateway-urile API oferă jurnalizare și metrici decente, dar de obicei se opresc la limita gateway-ului, lăsându-te pe tine să reconstitui ce s-a întâmplat în interiorul mediului tău de mesh de servicii sau microservicii.
Arhitectură de securitate
Ambele abordări iau securitatea în serios, dar rezolvă probleme diferite. Mesh-urile de servicii impun o rețea zero-trust prin criptarea automată a tuturor comunicărilor între servicii cu mTLS, ceea ce este important atunci când datele sensibile de inferență circulă între zeci de microservicii. Gateway-urile API se concentrează pe securitatea perimetrului, validând faptul că solicitările primite sunt legitime înainte de a ajunge vreodată în backend. Pentru sistemele de învățare automată (ML) care gestionează date reglementate, cum ar fi informațiile medicale sau financiare, combinarea ambelor straturi are adesea cel mai mult sens.
Conștientizarea resurselor și optimizarea GPU-ului
Lucrările de ML se comportă diferit față de serviciile web tipice, deoarece sunt adesea limitate la GPU și necesită multă memorie. Unele implementări de service mesh pot fi configurate pentru a direcționa cererile în funcție de disponibilitatea GPU-ului, trimițând trafic către noduri cu capacitate de accelerare disponibilă. Gateway-urile API tradiționale nu au conceptul de resurse hardware subiacente, tratând fiecare backend ca pe o cutie neagră. Acest lucru le face mai puțin eficiente atunci când trebuie să maximizați utilizarea costisitoare a GPU-ului într-o flotă de servere de inferență.
Complexitate operațională
Rețelele de servicii introduc cheltuieli operaționale suplimentare, deoarece fiecare serviciu primește un proxy sidecar care trebuie implementat, monitorizat și actualizat. Pentru o echipă deja familiarizată cu Kubernetes, acest lucru este ușor de gestionat, dar adaugă o curbă de învățare. Gateway-urile API sunt în general mai simplu de utilizat, deoarece sunt o singură componentă, deși gateway-urile enterprise precum Apigee vin cu propria lor complexitate în ceea ce privește portalurile pentru dezvoltatori și gestionarea produselor API.
Compromisuri între cost și performanță
Modelul sidecar din rețelele de servicii adaugă latență la fiecare salt, de obicei câteva milisecunde, ceea ce se poate acumula în lanțuri de microservicii profunde. Pentru aplicațiile de învățare automată (ML) sensibile la latență, cum ar fi sistemele de recomandare în timp real, această suprasarcină este importantă. Gateway-urile API adaugă latență o singură dată la margine, ceea ce le face mai previzibile pentru modelele simple de tip cerere-răspuns. Cu toate acestea, costul operațional al rulării unei rețele de servicii la scară largă poate fi compensat de un timp de depanare redus și de o siguranță sporită la implementare pentru modelele ML.
Avantaje și dezavantaje
Service Mesh pentru ML
Avantaje
+Versionarea modelului nativ
+Controlul traficului cu granulație fină
+Criptare automată mTLS
+Observabilitate profundă
+Rutare compatibilă cu GPU-ul
Conectare
−Complexitate operațională mai mare
−Latență adăugată per salt
−Curbă de învățare mai abruptă
−Cheltuieli generale de resurse din partea sidecar-urilor
Gateway-uri API tradiționale
Avantaje
+Mai simplu de implementat
+Latență redusă
+Ecosistem matur
+Funcții puternice de autentificare
Conectare
−Versiuni limitate ale modelului
−Fără conștientizare GPU
−Observabilitate internă mai slabă
−Mai puțin potrivit pentru traficul est-vest
Idei preconcepute comune
Mit
Rețelele de servicii și gateway-urile API fac același lucru și ai nevoie doar de unul.
Realitate
Acestea servesc unor scopuri diferite. Gateway-urile API gestionează traficul nord-sud la margine, în timp ce rețelele de servicii gestionează traficul est-vest dintre servicii. Multe organizații rulează ambele simultan, fiecare gestionând ceea ce face cel mai bine.
Mit
Gateway-urile API pot gestiona versionarea modelului ML la fel de bine ca o rețea de servicii.
Realitate
Gateway-urile API pot ruta pe baza antetelor sau căilor, dar le lipsește integrarea profundă cu sistemele de implementare pe care o oferă rețeaua de servicii (service mesh). Revenirea la o versiune problematică a modelului este mai rapidă și mai sigură cu o rețea de servicii, deoarece diviziunile traficului pot fi ajustate dinamic fără a redistribui configurațiile gateway-ului.
Mit
Mesh-urile de servicii adaugă prea multă latență pentru sistemele de învățare automată (ML) de producție.
Realitate
Proxy-urile sidecar moderne, precum Envoy și Linkerd-proxy, adaugă doar 1-3 milisecunde pe salt în majoritatea testelor comparative. Pentru majoritatea sarcinilor de lucru cu inferență ML, această suprasarcină este neglijabilă în comparație cu timpul real de inferență al modelului, care este adesea de 10-100 de milisecunde sau mai mult.
Mit
Nu aveți nevoie de o rețea de servicii dacă aveți deja un gateway API.
Realitate
Un gateway API protejează perimetrul, dar nu securizează și nu observă traficul dintre serviciile interne. Într-o arhitectură de microservicii cu zeci de servicii, o rețea de servicii oferă securitatea zero-trust și observabilitatea pe care un gateway API pur și simplu nu le poate oferi.
Mit
Mesh-urile de servicii sunt utile doar pentru mediile Kubernetes.
Realitate
Deși mesh-urile de servicii sunt cel mai frecvent asociate cu Kubernetes, implementări precum Consul Connect și Linkerd pot rula pe mașini virtuale și bare metal. Modelul sidecar funcționează oriunde puteți implementa un proxy alături de o aplicație.
Întrebări frecvente
Poate o rețea de servicii să înlocuiască complet un gateway API?
În teorie, da, dar rareori este practic. Rețelele de servicii pot gestiona traficul edge cu gateway-uri de intrare, dar le lipsesc funcții precum portalurile pentru dezvoltatori, gestionarea produselor API și facturarea abonamentelor pe care le oferă gateway-urile API ale întreprinderilor. Majoritatea echipelor folosesc o rețea de servicii pentru traficul intern și un gateway API pentru API-urile orientate spre exterior.
Ce este mai bun pentru implementarea modelului ML, o rețea de servicii sau un gateway API?
Mesh-urile de servicii sunt în general mai bune pentru implementarea modelelor ML, deoarece acceptă divizarea traficului, versiuni canary și revenirea automată la nivel de infrastructură. Gateway-urile API pot direcționa către diferite versiuni de model, dar necesită modificări manuale de configurare și nu se integrează la fel de strâns cu conductele de implementare ML.
Câtă latență adaugă o rețea de servicii în comparație cu un gateway API?
Sidecar-urile de tip mesh de servicii adaugă de obicei 1-3 milisecunde pe salt, iar din moment ce traficul poate trece prin mai multe sidecar-uri într-un lanț de microservicii, supraîncărcarea totală poate fi de 5-15 milisecunde. Gateway-urile API adaugă latență o singură dată la margine, de obicei 1-5 milisecunde în total. Pentru aplicațiile cu latență critică, această diferență este importantă.
Am nevoie atât de o rețea de servicii, cât și de un gateway API pentru platforma mea de ML?
Dacă platforma dvs. de ML expune API-uri clienților externi și are, de asemenea, microservicii interne care comunică, utilizarea ambelor este comună și recomandată. Gateway-ul API se ocupă de autentificare și limitarea ratei pentru traficul extern, în timp ce rețeaua de servicii gestionează comunicarea internă între servicii, mTLS și observabilitatea.
Care sunt cele mai populare implementări de service mesh pentru sarcini de lucru ML?
Istio, Linkerd și Consul Connect sunt cele mai utilizate rețele de servicii. Pentru sarcinile de lucru specifice ML, KServe și Seldon Core se integrează cu aceste rețele pentru a oferi servicii de servire a modelelor cu gestionarea traficului. Platforma de inferență NVIDIA utilizează, de asemenea, modele de rețele de servicii pentru rutare compatibilă cu GPU.
Pot gateway-urile API să gestioneze traficul gRPC pentru inferență ML?
Da, majoritatea gateway-urilor API moderne, inclusiv Kong, gateway-urile bazate pe Envoy și AWS API Gateway, acceptă gRPC. Cu toate acestea, mesh-urile de servicii gestionează adesea gRPC mai natural, deoarece au fost proiectate având în vedere HTTP/2 și streamingul bidirecțional, ceea ce este comun în scenariile de inferență ML.
Cum ajută o rețea de servicii la observabilitatea modelului ML?
Mesh-urile de servicii colectează automat valori precum latența solicitărilor, ratele de eroare și volumul traficului pentru fiecare interacțiune cu serviciul. Atunci când sunt combinate cu instrumente precum Prometheus și Jaeger, puteți urmări o singură solicitare de inferență pe mai multe servicii și puteți identifica blocajele, ceea ce este neprețuit la depanarea conductelor de învățare automată (ML).
Este scump să rulezi o rețea de servicii la scară largă?
Rețelele de servicii adaugă consum suplimentar de CPU și memorie, deoarece fiecare proxy sidecar consumă resurse. Pentru o implementare cu 100 de servicii, este posibil să aveți nevoie de 2-4 nuclee CPU suplimentare și 1-2 GB de RAM per nod, doar pentru rețea. Cu toate acestea, acest cost este adesea compensat de un timp de depanare redus și de implementări mai sigure.
Ce este mai ușor de configurat, o rețea de servicii sau un gateway API?
Gateway-urile API sunt în general mai ușor de configurat deoarece sunt o singură componentă cu o interfață de configurare clară. Mesh-urile de servicii necesită instalarea de planuri de control, injectarea de sidecar-uri și configurarea TLS mutual, ceea ce necesită mai mult timp, dar oferă funcționalități mai avansate odată ce sunt operaționale.
Funcționează rețelele de servicii cu platforme de inferență ML fără server?
Mesh-urile de servicii sunt concepute în principal pentru servicii cu rulare lungă, așa că nu se integrează bine cu funcțiile serverless care se învârt și se opresc frecvent. Pentru inferența ML serverless pe platforme precum AWS Lambda sau Google Cloud Run, un gateway API este de obicei alegerea mai bună pentru gestionarea traficului.
Verdict
Dacă infrastructura dvs. se concentrează pe platforme de învățare automată (ML) bazate pe Kubernetes, cu actualizări frecvente ale modelelor și comunicare complexă între servicii, o rețea de servicii adaptată pentru sarcinile de lucru ML vă va oferi un control și o observabilitate mai bune. Pentru organizațiile care expun o serie de endpoint-uri ML către clienți externi sau aplicații mobile, un gateway API tradițional este mai simplu de gestionat și suficient pentru această sarcină. Multe sisteme de producție ajung să utilizeze ambele, gateway-ul API gestionând traficul extern, iar rețeaua de servicii gestionând comunicarea internă a serviciilor ML.