pakalpojumu tīklsAPI vārtejamašīnmācīšanāsmākoņinfrastruktūrakubernetesmikropakalpojumi
Pakalpojumu tīkls mašīnmācīšanās apguvei salīdzinājumā ar tradicionālajām API vārtejām
Mašīnmācīšanās darba slodzēm izveidotie pakalpojumu tīkli apstrādā dinamisku, liela apjoma secinājumu trafiku ar detalizētu trafika pārvaldību, savukārt tradicionālie API vārtejas koncentrējas uz pieprasījumu maršrutēšanu, autentifikāciju un ātruma ierobežošanu standarta mikropakalpojumiem. Izvēle starp tiem ir atkarīga no tā, vai jūsu galvenā prioritāte ir mašīnmācīšanās specifiska novērojamība un modeļa versiju veidošana vai vispārējas nozīmes API orķestrēšana.
Iezīmes
Pakalpojumu tīkli nodrošina vietējo datplūsmas sadalīšanu Canary modeļu izvietošanai, savukārt API vārtejām ir nepieciešama pielāgota konfigurācija.
API vārtejas pievieno latentumu tikai perifērijā, savukārt pakalpojumu tīkla blakusvāģi palielina slodzi katrā iekšējā lēcienā.
Pakalpojumu tīkli piedāvā izkliedētu izsekošanu mašīnmācīšanās cauruļvados, nodrošinot redzamību, ko API vārtejas nevar nodrošināt.
GPU apzinīga maršrutēšana ir iespējama ar pakalpojumu tīkliem, bet tā nav tradicionālo API vārteju funkcija.
Kas ir Pakalpojumu tīkls mašīnmācīšanās vajadzībām?
Infrastruktūras slānis, kas paredzēts mašīnmācīšanās pakalpojumu saziņas pārvaldībai, secinājumu datplūsmas apstrādei, modeļu versiju veidošanai un GPU apzinošai maršrutēšanai.
Pakalpojumu tīklus, piemēram, Istio un Linkerd, var paplašināt ar mašīnmācīšanās specifiskiem komponentiem, piemēram, KServe, secinājumu maršrutēšanai.
Tie atbalsta uzlabotu datplūsmas sadalīšanu, nodrošinot iespēju ieviest pēc noklusējuma (canary) un veikt jaunu modeļu versiju A/B testēšanu ražošanas vidē.
Iebūvētais savstarpējais TLS (mTLS) nodrošina saziņu starp mikropakalpojumiem, nepieprasot koda izmaiņas lietojumprogrammā.
Tādi blakuspakalpojumu starpniekserveri kā Envoy apkopo detalizētu telemetriju par katru pieprasījumu, tostarp latentumu, kļūdu līmeni un vērtuma lielumu ML secinājumu izsaukumiem.
Pakalpojumu tīkli integrējas ar Kubernetes dzimtajām mašīnmācīšanās platformām, padarot tos labi piemērotus mākoņdatošanas modeļu apkalpošanas vidēm.
Kas ir Tradicionālās API vārtejas?
Centralizēts ieejas punkts, kas maršrutē API pieprasījumus, nodrošina autentifikāciju, piemēro ātruma ierobežojumus un pārveido vērtumus aizmugursistēmas pakalpojumiem.
Pie populārām API vārtejām pieder Kong, Apigee, AWS API Gateway un NGINX, ko plaši izmanto uzņēmumu vidē.
Tie parasti darbojas tīkla malā, apstrādājot ziemeļu-dienvidu datplūsmu starp klientiem un aizmugursistēmas pakalpojumiem.
API vārtejas nodrošina protokola tulkošanu, konvertējot REST, gRPC vai WebSocket pieprasījumus ar serveri saderīgos formātos.
Lielākā daļa atbalsta OAuth 2.0, JWT validāciju un API atslēgu pārvaldību jau no paša sākuma, lai nodrošinātu publiski pieejamu galapunktu drošību.
Tie parasti ir bezvalstnieki un optimizēti pieprasījumu-atbildes modeļiem, nevis ilgstošiem straumēšanas savienojumiem, kas ir izplatīti mašīnmācīšanās secinājumos.
Salīdzinājuma tabula
Funkcija
Pakalpojumu tīkls mašīnmācīšanās vajadzībām
Tradicionālās API vārtejas
Primārais lietošanas gadījums
ML secinājumu datplūsmas pārvaldība un modeļu versiju veidošana
Vispārīga API pieprasījumu maršrutēšana un orķestrēšana
Satiksmes shēma
Austrumu-rietumu (pakalpojumu savstarpējie) un liela apjoma secinājumu zvani
Blakuspakalpojuma starpniekserveris līdzās katram pakalpojumam (piemēram, Envoy, Linkerd-proxy)
Centralizēta vārteja, kas izvietota tīkla malā
Modeļa versiju veidošanas atbalsts
Vietējā datplūsmas sadalīšana kanārijzaļo un zili zaļo modeļu ieviešanai
Ierobežots; parasti nepieciešami pielāgoti maršrutēšanas noteikumi
Novērojamība
Pieprasījuma metrika, izkliedētā izsekošana un mašīnmācīšanās specifiska telemetrija
Apkopotie rādītāji, pamata reģistrēšana un pieprasījumu skaits
Drošības funkcijas
Automātiska mTLS starp pakalpojumiem, detalizētas autorizācijas politikas
API atslēgas validācija, OAuth 2.0, JWT un IP baltais saraksts
GPU apzinoša maršrutēšana
Var maršrutēt, pamatojoties uz GPU pieejamību un resursu izmantošanu
Nav iebūvēts atbalsts
Latentuma virsizdevumi
Parasti 1–3 ms uz lēcienu blakusvāģa apstrādes dēļ
Parasti zemāks vienas pieturas vārtejas izsaukumiem
Vispiemērotākais
Kubernetes balstītas mašīnmācīšanās platformas ar mikropakalpojumiem
Publiskās API, mobilās aizmugures sistēmas un monolīta pakalpojumu pieejamība
Detalizēts salīdzinājums
Satiksmes pārvaldība un modeļu izvietošana
Pakalpojumu tīkli lieliski pārvalda sarežģītos datplūsmas modeļus, ko ģenerē mašīnmācīšanās sistēmas, īpaši, ja komandām pakāpeniski jāievieš jaunas modeļu versijas. Tie ļauj sadalīt datplūsmu starp modeļu versijām infrastruktūras līmenī, lai jūs varētu palaist jaunu modeli 5% pieprasījumu, kamēr vecais modelis apstrādā pārējo. Tradicionālie API vārtejas var panākt līdzīgu sadalījumu, izmantojot pielāgotus maršrutēšanas noteikumus, taču tie netika izstrādāti, ņemot vērā modeļu versijas, padarot konfigurāciju trauslāku un grūtāk uzturējamu lielā mērogā.
Novērojamība un atkļūdošana
Kad kaut kas noiet greizi ar mašīnmācīšanās secinājumu cauruļvadu, jums jāzina, vai problēma ir modelī, datos vai tīklā. Pakalpojumu tīkli nodrošina izkliedētu izsekošanu, kas seko pieprasījumam vairākos pakalpojumos, fiksējot latentumu katrā lēcienā un korelējot to ar konkrētām modeļa versijām. API vārtejas piedāvā pienācīgu reģistrēšanu un metriku, taču tās parasti apstājas pie vārtejas robežas, ļaujot jums salikt kopā to, kas noticis jūsu pakalpojumu tīklā vai mikropakalpojumu vidē.
Drošības arhitektūra
Abas pieejas uztver drošību nopietni, taču tās risina dažādas problēmas. Pakalpojumu tīkli nodrošina nulles uzticēšanās tīklošanu, automātiski šifrējot visu pakalpojumu savstarpējo saziņu ar mTLS, kas ir svarīgi, ja sensitīvi secinājumu dati plūst starp desmitiem mikropakalpojumu. API vārtejas koncentrējas uz perimetra drošību, pārbaudot ienākošo pieprasījumu likumīgumu, pirms tie sasniedz jūsu aizmugursistēmu. Mašīnmācīšanās sistēmām, kas apstrādā regulētus datus, piemēram, veselības aprūpes vai finanšu informāciju, abu slāņu apvienošana bieži vien ir visizdevīgākā.
Resursu apzināšanās un GPU optimizācija
Mašīnmācīšanās darba slodzes uzvedas atšķirīgi no tipiskiem tīmekļa pakalpojumiem, jo tās bieži vien ir piesaistītas GPU un patērē daudz atmiņas. Dažas pakalpojumu tīkla implementācijas var konfigurēt tā, lai pieprasījumus novirzītu, pamatojoties uz GPU pieejamību, nosūtot datplūsmu uz mezgliem ar pieejamu paātrinātāja jaudu. Tradicionālajām API vārtejām nav koncepcijas par pamatā esošajiem aparatūras resursiem, katru aizmugursistēmu uzskatot par melnu kasti. Tas padara tās mazāk efektīvas, ja ir nepieciešams maksimāli palielināt dārgā GPU izmantošanu visā secinājumu serveru flotē.
Darbības sarežģītība
Pakalpojumu tīkli rada papildu darbības izmaksas, jo katram pakalpojumam ir blakusparādību starpniekserveris, kas ir jāizvieto, jāuzrauga un jāatjaunina. Komandai, kas jau ir iepazinusies ar Kubernetes, tas ir pārvaldāms, taču tas rada mācību līkni. API vārtejas parasti ir vienkāršāk lietojamas, jo tās ir viena sastāvdaļa, lai gan uzņēmumu vārtejas, piemēram, Apigee, ir sarežģītas izstrādātāju portālu un API produktu pārvaldības ziņā.
Izmaksu un veiktspējas kompromisi
Pakalpojumu tīklu blakusvāģu modelis katrā lēcienā palielina latentumu, parasti dažas milisekundes, kas var palielināt dziļo mikropakalpojumu ķēžu radīto slodzi. Latentuma jutīgām mašīnmācīšanās lietojumprogrammām, piemēram, reāllaika ieteikumu sistēmām, šī papildu slodze ir svarīga. API vārtejas pievieno latentumu tikai vienu reizi malā, padarot tās paredzamākas vienkāršiem pieprasījumu-atbildes modeļiem. Tomēr pakalpojumu tīkla darbības izmaksas plašā mērogā var kompensēt ar samazinātu atkļūdošanas laiku un labāku mašīnmācīšanās modeļu ieviešanas drošību.
Priekšrocības un trūkumi
Pakalpojumu tīkls mašīnmācīšanās vajadzībām
Iepriekšējumi
+Vietējā modeļa versiju veidošana
+Detalizēta satiksmes kontrole
+Automātiska mTLS šifrēšana
+Dziļa novērojamība
+GPU apzinoša maršrutēšana
Ievietots
−Augstāka darbības sarežģītība
−Pievienota latentuma vērtība katram lēcienam
−Stāvāka mācīšanās līkne
−Resursu pieskaitāmās izmaksas no blakusvāģiem
Tradicionālās API vārtejas
Iepriekšējumi
+Vienkāršāk izvietot
+Zemākas latentuma izmaksas
+Nobriedusi ekosistēma
+Spēcīgas autentifikācijas funkcijas
Ievietots
−Ierobežota modeļa versiju veidošana
−Nav GPU izpratnes
−Vājāka iekšējā novērojamība
−Mazāk piemērots satiksmei austrumu-rietumu virzienā
Biežas maldības
Mīts
Pakalpojumu tīkli un API vārtejas dara to pašu, un jums ir nepieciešams tikai viens.
Realitāte
Tie kalpo dažādiem mērķiem. API vārtejas pārvalda ziemeļu-dienvidu datplūsmu perifērijā, savukārt pakalpojumu tīkli apstrādā austrumu-rietumu datplūsmu starp pakalpojumiem. Daudzas organizācijas darbojas abos vienlaicīgi, katrai apstrādājot to, ko tā dara vislabāk.
Mīts
API vārtejas var apstrādāt ML modeļu versiju izveidi tikpat labi kā pakalpojumu tīkls.
Realitāte
API vārtejas var maršrutēt, pamatojoties uz galvenēm vai ceļiem, taču tām trūkst dziļas integrācijas ar izvietošanas sistēmām, ko piedāvā pakalpojumu tīkli. Problemātiskas modeļa versijas atcelšana ir ātrāka un drošāka, izmantojot pakalpojumu tīklu, jo datplūsmas sadalījumu var dinamiski pielāgot, nepārizvietojot vārtejas konfigurācijas.
Mīts
Pakalpojumu tīkli rada pārāk lielu latentumu ražošanas mašīnmācīšanās sistēmām.
Realitāte
Mūsdienu blakusvāģu starpniekserveri, piemēram, Envoy un Linkerd-proxy, vairumā etalonu pievieno tikai 1–3 milisekundes uz katru lēcienu. Lielākajai daļai mašīnmācīšanās secinājumu darba slodžu šī pieskaitāmā slodze ir niecīga, salīdzinot ar faktisko modeļa secinājumu laiku, kas bieži vien ir 10–100 milisekundes vai vairāk.
Mīts
Jums nav nepieciešams pakalpojumu tīkls, ja jums jau ir API vārteja.
Realitāte
API vārteja aizsargā jūsu perimetru, taču tā nenodrošina un neuzrauga datplūsmu starp iekšējiem pakalpojumiem. Mikropakalpojumu arhitektūrā ar desmitiem pakalpojumu pakalpojumu tīkls nodrošina nulles uzticamības drošību un novērojamību, ko API vārteja vienkārši nevar nodrošināt.
Mīts
Pakalpojumu tīkli ir noderīgi tikai Kubernetes vidēm.
Realitāte
Lai gan pakalpojumu tīkli visbiežāk tiek saistīti ar Kubernetes, tādas ieviešanas metodes kā Consul Connect un Linkerd var darboties gan virtuālajās mašīnās, gan uz tukša metāla. Blakusvāģa modelis darbojas jebkur, kur var izvietot starpniekserveri līdzās lietojumprogrammai.
Bieži uzdotie jautājumi
Vai pakalpojumu tīkls var pilnībā aizstāt API vārteju?
Teorētiski jā, bet tas reti ir praktiski. Pakalpojumu tīkli var apstrādāt perifērijas trafiku ar ieejas vārtejām, taču tiem trūkst tādu funkciju kā izstrādātāju portāli, API produktu pārvaldība un abonēšanas norēķini, ko nodrošina uzņēmumu API vārtejas. Lielākā daļa komandu izmanto pakalpojumu tīklu iekšējai trafikai un API vārteju ārējiem API.
Kas ir labāks ML modeļa izvietošanai — pakalpojumu tīkls vai API vārteja?
Pakalpojumu tīkli parasti ir labāki mašīnmācīšanās modeļu izvietošanai, jo tie atbalsta datplūsmas sadalīšanu, Canary Releases un automātisku atcelšanu infrastruktūras līmenī. API vārtejas var maršrutēt uz dažādām modeļa versijām, taču tām ir nepieciešamas manuālas konfigurācijas izmaiņas un tās nav tik cieši integrētas ar mašīnmācīšanās izvietošanas kanāliem.
Cik lielu latentumu pievieno pakalpojumu tīkls, salīdzinot ar API vārteju?
Pakalpojumu tīkla blakusvāģi parasti pievieno 1–3 milisekundes katrā lēcienā, un, tā kā datplūsma mikropakalpojumu ķēdē var iet caur vairākiem blakusvāģiem, kopējās papildu izmaksas var būt 5–15 milisekundes. API vārtejas pievieno latentumu tikai vienu reizi malā, parasti kopā 1–5 milisekundes. Lietojumprogrammām, kurām ir kritiska latentuma ietekme, šī atšķirība ir svarīga.
Vai manai mašīnmācīšanās platformai ir nepieciešams gan pakalpojumu tīkls, gan API vārteja?
Ja jūsu mašīnmācīšanās platforma nodrošina API ārējiem klientiem un tai ir arī iekšējie mikropakalpojumi, kas sazinās, abu izmantošana ir izplatīta un ieteicama. API vārteja apstrādā autentifikāciju un ātruma ierobežošanu ārējai datplūsmai, savukārt pakalpojumu tīkls pārvalda iekšējo pakalpojumu savstarpējo saziņu, mTLS un novērojamību.
Kādas ir populārākās pakalpojumu tīkla implementācijas mašīnmācīšanās (ML) darba slodzēm?
Istio, Linkerd un Consul Connect ir visplašāk izmantotie pakalpojumu tīkli. Mašīnmācīšanās (ML) specifiskām darba slodzēm KServe un Seldon Core integrējas ar šiem tīkliem, lai nodrošinātu modeļu apkalpošanu ar datplūsmas pārvaldību. NVIDIA secinājumu platforma arī izmanto pakalpojumu tīklu modeļus GPU apzinīgai maršrutēšanai.
Vai API vārtejas var apstrādāt gRPC datplūsmu mašīnmācīšanās secinājumiem?
Jā, lielākā daļa mūsdienu API vārteju, tostarp Kong, Envoy vārtejas un AWS API vārtejas, atbalsta gRPC. Tomēr pakalpojumu tīkli bieži apstrādā gRPC dabiskāk, jo tie tika izstrādāti, ņemot vērā HTTP/2 un divvirzienu straumēšanu, kas ir izplatīta mašīnmācīšanās secinājumu scenārijos.
Kā pakalpojumu tīkls palīdz uzlabot mašīnmācīšanās modeļa novērojamību?
Pakalpojumu tīkli automātiski apkopo tādus rādītājus kā pieprasījuma latentums, kļūdu līmenis un datplūsmas apjoms katrai pakalpojuma mijiedarbībai. Apvienojumā ar tādiem rīkiem kā Prometheus un Jaeger varat izsekot vienam secinājuma pieprasījumam vairākos pakalpojumos un identificēt vājās vietas, kas ir nenovērtējami mašīnmācīšanās cauruļvadu atkļūdošanā.
Vai pakalpojumu tīkla pārvaldīšana plašā mērogā ir dārga?
Pakalpojumu tīkli palielina centrālā procesora un atmiņas slodzi, jo katrs blakuspakalpojumu starpniekserveris patērē resursus. Izvietošanai ar 100 pakalpojumiem var būt nepieciešami 2–4 papildu centrālā procesora kodoli un 1–2 GB RAM uz katru mezglu tikai tīklam. Tomēr šīs izmaksas bieži vien kompensē samazināts atkļūdošanas laiks un drošākas izvietošanas.
Kas ir vieglāk iestatāms — pakalpojumu tīkls vai API vārteja?
API vārtejas parasti ir vieglāk iestatīt, jo tās ir viens komponents ar skaidru konfigurācijas saskarni. Pakalpojumu tīkliem ir jāinstalē vadības plaknes, jāievieto blakusvāģi un jākonfigurē savstarpējais TLS, kas aizņem vairāk laika, bet nodrošina dziļāku funkcionalitāti, kad tie ir darbspējīgi.
Vai pakalpojumu tīkli darbojas ar bezserveru mašīnmācīšanās secinājumu platformām?
Pakalpojumu tīkli galvenokārt ir paredzēti ilgstoši darbojošiem pakalpojumiem, tāpēc tie slikti integrējas ar bezservera funkcijām, kas bieži mainās. Bezservera mašīnmācīšanās secinājumiem tādās platformās kā AWS Lambda vai Google Cloud Run, API vārteja parasti ir labāka izvēle datplūsmas pārvaldībai.
Spriedums
Ja jūsu infrastruktūras centrā ir Kubernetes balstītas mašīnmācīšanās platformas ar biežiem modeļu atjauninājumiem un sarežģītu pakalpojumu savstarpēju komunikāciju, mašīnmācīšanās darba slodzēm pielāgots pakalpojumu tīkls nodrošinās labāku kontroli un novērojamību. Organizācijām, kas ārējiem klientiem vai mobilajām lietotnēm nodrošina vairākus mašīnmācīšanās galapunktus, tradicionālā API vārteja ir vienkāršāk pārvaldāma un pietiekama šim uzdevumam. Daudzas ražošanas sistēmas galu galā izmanto abus, API vārtejai apstrādājot ārējo datplūsmu, bet pakalpojumu tīklam pārvaldot iekšējo mašīnmācīšanās pakalpojumu komunikāciju.