Latest / M365.FM – Microsoft 365, Copilot & AI podcast in het Nederlands / API-gateway uitgelegd: routing, beveiliging en rate limiting voor microservices – heb je er een nodig? (AI-nasynchronisatie)
Transcript
- 0:00Klaar voor 10 dagen Microsoft 365, Copilot, AI, Azure en de mensen die de toekomst van werk vormgeven?
- 0:07Deze januari is M365, kom terug en we pakken groter uit.
- 0:12Doe mee voor live sessies, praktijkdemos en praktische kennis van MVP's en experts uit de hele wereld.
- 0:18Geen algemene dia's, geen eindeloos jargon.
- 0:21We pakken de echte uitdagingen aan Copilot Studio, AI Agents, Fabric, Beveiliging, Governance en Automatisering.
- 0:28Automatisering. Of je nu een IT-professional, ontwikkelaar of zakelijk leider bent, er zijn sessies speciaal voor jou.
- 0:35Met 10 volle dagen kun je diverse technologieën verkennen en in contact komen met een wereldwijde community.
- 0:40Kijk live mee en neem praktische inzichten mee terug naar je organisatie.
- 0:44Januari 2027, 10 dagen, 1 Microsoft Community.
- 0:49De registratie is nu geopend.
- 0:51Ga naar M365.com.net en verzeker je vandaag nog van een plek.
- 0:55Dat is M365.com.net.
- 1:00Meld je nu aan op M365.com.net en we zien je live in januari.
- 1:05Je hebt een app gebouwd die werkt, dan voeg je een andere service toe en nog een...
- 1:08...en plotseling wordt het verkeer daartussen een nachtmerrie.
- 1:11Dus, wat is nu precies een API Gateway en heb je er echt een nodig?
- 1:14Aan het einde van deze aflevering begrijp je wat een API Gateway doet,
- 1:18waarom het de chaos van het beheren van meerdere services oplost en hoe je weet of je er een nodig hebt.
- 1:22Laten we beginnen met het probleem, dan de onderdelen en vervolgens hoe alles samenkomt.
- 1:27Het probleem, te veel deuren.
- 1:29Stel je voor dat je een bedrijf runt dat snel groeit.
- 1:32Je hebt een salesteam op de derde verdieping, de boekhouding in de kelder en IT in de achtervleugel.
- 1:37Stel je nu voor dat elk van die afdelingen zijn eigen voordeur, eigen telefoonnummer en eigen beveiliger heeft die niet met de andere praat.
- 1:43Als je een bezoeker bent die een pakketje wil afleveren, veel succes.
- 1:46Je moet precies weten welke deur je moet gebruiken, welke beveiliger je moet spreken en wat je moet doen als die beveiliger pauze heeft.
- 1:51Dat is precies wat er gebeurt wanneer je app meerdere back-end services heeft en elke client zijn rechtstreeks aanroept.
- 1:56De client, of het nu een mobiele app, een website of een andere service is, moet weten waar elke service zich bevindt, hoe je bij elk moet verifiëren en wat je moet doen als er iets misgaat.
- 2:04Elke afzonderlijke service moet zijn eigen beveiliging, eigen rate limiting en eigen foutafhandeling afhandelen.
- 2:09Dat is dubbel werk en het is makkelijk voor zaken om inconsistent te worden.
- 2:12Neem bijvoorbeeld een bank.
- 2:13Zij hebben aparte services voor rekeningen, betalingen, leningen en fraudedetectie.
- 2:17Op de oude manier wordt elk daarvan rechtstreeks blootgesteld.
- 2:19Een mobiele app moet vier verschillende URL's, vier verschillende authenticatie methoden en vier verschillende manieren voor foutafhandeling kennen.
- 2:25Dat is vier keer de complexiteit en vier keer zoveel kans dat er iets misgaat en dat is de chaos die een API Gateway moet oplossen.
- 2:32Dus, wat is de oplossing?
- 2:34Wat is een API Gateway?
- 2:35Zie een API Gateway voor je als de receptie van een hotel.
- 2:38Wanneer je binnenkomt, hoef je niet te weten op welke verdieping de schoonmaak is, waar de keuken is of hoe je de onderhoudsdienst bereikt.
- 2:44Je loopt gewoon naar de receptie, vertelt wat je nodig hebt en zij regelen de rest.
- 2:48Ze sturen je verzoek door naar de juiste persoon, controleren of je daar mag zijn en handelen eenvoudige verzoeken zelf af.
- 2:54Een API Gateway doet hetzelfde voor je software.
- 2:57Het is één enkel toegangspunt dat tussen je clients en je back-end services staat.
- 3:01Elk verzoek gaat eerst door de Gateway.
- 3:03Deze beslist waar het heen gaat, of het is toegestaan en wat er wordt teruggestuurd.
- 3:07Dit is overigens geen nieuw idee.
- 3:09Reverse proxies bestaan al decennia, maar de API Gateway is essentieel geworden met microservices.
- 3:13Wanneer je je app opdeelt in veel kleine services, heb je plotseling veel deuren.
- 3:17De Gateway geeft je één voordeur.
- 3:19In de Azure wereld is Azure API Management het volledige platform en de Gateway de kerncomponent die het verkeer afhandelt.
- 3:24Maar het patroon is overal hetzelfde.
- 3:26Eén toegangspunt, gecentraliseerde controle.
- 3:29Elk verzoek komt binnen.
- 3:30De Gateway controleert het, routeert het en stuurt het antwoord terug.
- 3:33De client spreekt nooit rechtstreeks met je back-end services.
- 3:36Deze praat alleen met de Gateway.
- 3:37Laten we eens kijken wat dat precies betekent.
- 3:39Beginnend bij de meest basale taak, routing.
- 3:42Deel 1. Verkeer routeren.
- 3:44De eenvoudigste taak van een API Gateway is routing.
- 3:47Elk verzoek naar de juiste service sturen.
- 3:49Denk eens na over hoe een website werkt.
- 3:51Wanneer je op een link klikt, verstuurt je browser een verzoek.
- 3:53Dat verzoek bevat een pad.
- 3:54Als het pad Users is, weet de Gateway dat het naar de gebruikerservice moet.
- 3:57Als het Orders is, gaat het naar de bestelservice.
- 4:00De Gateway leest het pad, bepaalt waar het heen moet en stuurt het door.
- 4:03Zonder Gateway moeten je clients elke individuele service URL kennen.
- 4:06De mobiele app heeft het adres nodig van de gebruikerservice, de bestelservice, de betaalservice en de katalogerservice.
- 4:12Dat is een heleboel URL's om te beheren.
- 4:14En als een van die adressen verandert, moet je elke client bijwerken.
- 4:17Met een Gateway kennen clients slechts één URL.
- 4:19Het adres van de Gateway.
- 4:20Het maakt ze niet uit waar de services zich daadwerkelijk bevinden.
- 4:23Ze sturen hun verzoek simpelweg naar de Gateway en die regelt de rest.
- 4:26Dit is een van de meest voorkomende API Gateway toepassingen, resource gebaseerde routing.
- 4:30Het onderzoek naar Apache API SIX benoemt dit expliciet.
- 4:32Je routeert op basis van het pad, de HTTP-methode, headers en zelfs de geolocatie van de client.
- 4:37Als iemand in Europa een verzoek stuurt, kun je die naar een Europees datacenter routeren.
- 4:41Als iemand in de VS een verzoek stuurt, gaan ze naar een Amerikaans datacenter.
- 4:44De client merkt helemaal niets van dit proces.
- 4:46Ze krijgen gewoon een snel antwoord.
- 4:48Routing regelt ook versiebeheer.
- 4:49Stel dat je een nieuwe versie van je gebruikerservice hebt.
- 4:52De oude clients gebruiken nog V1-users en de nieuwe clients gebruiken V2-users.
- 4:56De Gateway routeert ze naar verschillende backends.
- 4:58Oude clients blijven werken terwijl je de nieuwe versie uitrolt.
- 5:01Je kunt je back-end wijzigen zonder je clients te storen.
- 5:04Dat is erg belangrijk bij het beheren van een live applicatie met echte gebruikers.
- 5:07Denk aan een e-commerce platform.
- 5:09Je hebt aparte services voor de catalogus, het winkelwagentje, de checkout- en gebruikersaccounts.
- 5:13Zonder Gateway moet een mobiele app 4 verschillende URL's kennen.
- 5:17Met een Gateway kent de app er slechts één.
- 5:19De Gateway leest het pad, catalogus, winkelwagentje, checkout, account en stuurt elk verzoek naar de juiste service.
- 5:25Eenvoudige routing is het makkelijke deel.
- 5:27De volgende taak is waar het echt nuttig wordt.
- 5:29Deel 2. Beveiliging bij de voordeur.
- 5:31Elke API-aanroep moet worden gecontroleerd.
- 5:33Wie doet dit verzoek?
- 5:34Heeft diegene de juiste rechten?
- 5:36Zonder Gateway moet elke service zijn eigen authenticatie regelen.
- 5:39Dat betekent dubbel werk en het is makkelijk om fouten te maken.
- 5:42De ene service controleert tokens misschien goed, een andere slaat een stap over en weer een andere gebruikt een totaal andere methode.
- 5:48Zo krijg je inconsistente beveiliging in je hele applicatie.
- 5:51De Gateway verandert dat.
- 5:52Het regelt authenticatie en autorisatie op één centrale plek.
- 5:55Eén plek om te controleren, één plek om af te dwingen, één plek om bij te werken als beleid verandert.
- 5:59Dat is een belangrijke beveiligingsbestpractice.
- 6:01Het valideert API-sleutels, JWTs, OAuth tokens of certificaten bij elk individueel verzoek.
- 6:07Elk verzoek doorloopt dezelfde controle.
- 6:09Geen uitzonderingen.
- 6:10De Gateway kan ook regels afdwingen.
- 6:12Je kunt zeggen, deze API-sleutel mag alleen de leesendpoints aanroepen.
- 6:15Of deze client heeft alleen toegang tot de katalige service, niet tot de betalingsservice.
- 6:19Je definieert gedetailleerde rechten op Gateway-niveau en ze worden automatisch toegepast.
- 6:23Back-end-services hoeven zich nooit zorgen te maken over autorisatie.
- 6:26Ze verwerken simpelweg het verzoek en sturen de gegevens terug.
- 6:28Hier is het punt.
- 6:30De Gateway is de centrale plek om toegang in te trekken als er iets misgaat.
- 6:33Als de API-sleutel van een klant is gecompromitteerd, trek je deze in bij de Gateway.
- 6:36Een wijziging, klaar.
- 6:37Je hoeft geen enkele service bij te werken of iets opnieuw op te starten.
- 6:40Het volgende verzoek van die sleutel wordt direct afgewezen.
- 6:43Neem een concreet voorbeeld.
- 6:44Een bank heeft een betalingsservice en een facturatieservice.
- 6:46Alleen de betalingsservice heeft schrijftoegang nodig tot het facturatiesysteem.
- 6:49De Gateway blinkt dit af.
- 6:50Als een client via het verkeerde eindpunt naar het facturatiesysteem probeert te schrijven,
- 6:54blokkeert de Gateway dit.
- 6:55De facturatieservice ziet het verzoek niet is.
- 6:57De Gateway ondersteunt ook Mutual, TLS en WAF integratie voor diepere beveiliging.
- 7:02Maar in de kern is het je eerste verdedigingslinie.
- 7:04Beveiliging is één ding, maar wat als er te veel verzoeken tegelijk binnenkomen?
- 7:08Deel 3.
- 7:09Verkeersbeheer
- 7:10Wat gebeurt er als 10.000 gebruikers tegelijkertijd je app bezoeken?
- 7:14Misschien heb je een flitsverkoop, een virale productlancering,
- 7:17of is het een normale dinsdag en besluit iedereen tegelijk in te loggen.
- 7:20Zonder Gateway worden je back-end services direct bestookt en kunnen ze crashen.
- 7:24Niet langzaam, maar allemaal tegelijk.
- 7:26Dat is waar verkeersbeheer om de hoek komt kijken.
- 7:28De Gateway kan beperken hoeveel verzoeken elke client kan indienen.
- 7:32Rate limiting en throttling zijn standaard functies.
- 7:34Jij stelt de regels in bij de Gateway en deze dwingt ze af.
- 7:37Je back-end services merken niets van de piek.
- 7:39Je kunt quota instellen per gebruiker, per API-sleutel of per IP-adres.
- 7:43Stel dat je een gratis versie van je API hebt.
- 7:45Gratis gebruikers krijgen 100 verzoeken per uur.
- 7:47Premium gebruikers krijgen er 10.000.
- 7:48De Gateway volgt elk verzoek en dwingt de limieten af bij de poort.
- 7:52Een gratis gebruiker bereikt de limiet en de Gateway stuurt een beleefde melding om het later opnieuw te proberen.
- 7:56De back-end services weten niet eens dat er een verzoek was.
- 7:59Ze blijven rustig doorgaan met het bedienen van de betalende klanten.
- 8:02De Gateway regelt ook load balancing.
- 8:04Als je meerdere instanties van dezelfde service hebt draaien, verdeelt de Gateway de verzoeken daarover.
- 8:09Instantie 1 krijgt een verzoek, instantie 2 de volgende, instantie 3 de volgende.
- 8:12Het gaat automatisch.
- 8:14En als één instantie uitvalt, leidt de Gateway het verkeer om naar een andere.
- 8:16Klanten merken er niets van. Ze krijgen gewoon hun antwoord.
- 8:19Load balancing met gezondheidschecks houdt alles soepel draaiende.
- 8:22De Gateway pinkt elk instantie om er zeker van te zijn dat deze actief is.
- 8:25Als dat niet zo is, stopt het met het sturen van verkeer daarheen.
- 8:27Dit is vooral belangrijk voor APIs met veel verkeer.
- 8:30Zonder Gateway raakt een piek in het verkeer je services direct.
- 8:33Met de Gateway raakt de piek eerst de Gateway.
- 8:36Deze vangt het op, verspreidt het en beschermt je services tegenover belasting.
- 8:39Oké, maar wat als de data niet klopt wanneer deze aankomt?
- 8:44Deel 4, datatransformatie.
- 8:46Soms komt de data die je client verstuurt niet overeen met wat je bekend verwacht.
- 8:50Misschien verstuurt de client JSON, maar begrijpt je bekend alleen XML.
- 8:54Misschien komen de veldnamen niet overeen.
- 8:55De client gebruikt, first name, en je bekend verwacht, voornaam.
- 8:59Deze verschillen maken dingen kapot.
- 9:00Op de oude manier moest je elke client aanpassen of de bekend herschrijven.
- 9:04Niet ideaal.
- 9:05De Gateway kan de data transformeren voordat deze de bekend bereikt.
- 9:08Zie het als een vertaler.
- 9:09Hij zit in het midden en kan de data wijzigen bij binnenkomst, bij vertrek, of beide.
- 9:13Dat is verzoek en responstransformatie in een notendop.
- 9:15Laat me je een echt voorbeeld geven.
- 9:17Stel, je hebt een legacy systeem dat XML verwacht.
- 9:19Het draait al 15 jaar.
- 9:21Het werkt prima.
- 9:22Maar nu bouw je een nieuwe mobiele app.
- 9:23En mobiele apps spreken JSON.
- 9:25Zonder Gateway zou je het legacy systeem moeten herschrijven of de app dwingen XML te sturen.
- 9:29Met een Gateway hoef je geen van beide te doen.
- 9:31De mobiele app verstuurt JSON.
- 9:33De Gateway zet dit om naar XML.
- 9:34Het systeem ontvangt wat het verwacht.
- 9:36De mobiele app krijgt een antwoord terug, al in JSON.
- 9:39Niemand hoefde iets te herschrijven.
- 9:40Dat is het mooie ervan.
- 9:41De Gateway kan ook headers toevoegen of verwijderen, URL's wijzigen of gevoelige data maskeren.
- 9:46Stel je voor dat een antwoord een creditcardnummer bevat.
- 9:48Je wilt niet dat dit teruggaat naar de client.
- 9:50De Gateway kan het eruit filteren voordat het antwoord vertrekt, of het vervangen door een gmaskeerde versie.
- 9:54De bekend hoeft nooit te veranderen.
- 9:56De Gateway regelt het.
- 9:57Dit is vooral handig bij het moderniseren van oude systemen.
- 9:59Je hoeft de bekend niet te herschrijven.
- 10:01Je hoeft clients niet te dwingen tot wijzigingen.
- 10:03Je past alleen de Gateway aan.
- 10:04Het is als een talk op een internationale conferentie.
- 10:07Iedereen spreekt zijn eigen taal, maar de talk zorgt ervoor dat iedereen elkaar begrijpt.
- 10:10De Gateway is die talk voor je software.
- 10:12Dus, routering, beveiliging, throttling, transformatie, dat is een hoop.
- 10:15Maar het zijn geen vier losse dingen.
- 10:17Laat me zien hoe ze met elkaar verbonden zijn.
- 10:19Hoe alles samenkomt.
- 10:20Het zit zo.
- 10:21Deze vier taken staan niet op zichzelf.
- 10:23Ze werken samen bij elk verzoek, telkens wanneer er een verzoek binnenkomt.
- 10:26De Gateway controleert de authenticatie.
- 10:28Hij valideert de snelheidslimiet.
- 10:29Hij routeert naar de juiste service.
- 10:31Het transformeert de data indien nodig.
- 10:32Het ontvangt de respons terug.
- 10:34Het transformeert die ook indien nodig.
- 10:36Vervolgens stuurt het alles terug naar de client.
- 10:38Een pipeline.
- 10:38Elke stap gebeurt automatisch, op volgorde, zonder dat een service erover na hoeft te denken.
- 10:42De echte kracht is niet één specifieke functie.
- 10:44Het is de integratie.
- 10:46Je kunt een nieuw beveiligingsbeleid toevoegen zonder de routing aan te passen.
- 10:49De bekend service wijzigen zonder de client aan te passen.
- 10:52Je kunt de snelheidslimieten updaten zonder iets opnieuw te hoeven deployen.
- 10:54Elk onderdeel is onafhankelijk, maar ze werken allemaal in dezelfde pipeline.
- 10:58En omdat alles door één plek gaat, krijg je volledig inzicht in wat er gebeurt.
- 11:01Logs, statistieken, analytics, allemaal vanaf één punt.
- 11:05Je kunt zien hoeveel verzoeken er binnenkwamen, welke mislukten, welke traag waren, welke clients de meeste resources gebruiken.
- 11:10Zonder gateway zou je die data van elke service afzonderlijk moeten verzamelen.
- 11:13Met een gateway is het daar allemaal aanwezig.
- 11:15Dat is het grote inzicht.
- 11:16De gateway is niet zomaar een router.
- 11:18Het is een controlecentrum voor je volledige API-platform.
- 11:20Elk verzoek, elke respons, elke fout, alles stroomt door één plek.
- 11:24Je hebt één centraal overzicht voor alles wat er gebeurt.
- 11:26Dus, hoe gebruik je dit eigenlijk?
- 11:27Laten we bespreken wat je hier nu mee kunt doen.
- 11:30Praktische inzichten.
- 11:31Laten we eerlijk zijn.
- 11:32Als je één of twee services hebt, heb je waarschijnlijk nog geen API-gateway nodig.
- 11:35Je kunt de routing zelf afhandelen.
- 11:37Authenticatie beheren in elke service.
- 11:38Het is niet elegant, maar het werkt.
- 11:40Maar zodra je drie services hebt of APIs blootstelt aan externe clients, neemt de complexiteit snel toe.
- 11:45De gateway verdient zichzelf snel terug.
- 11:47Dus, wat is je beste eerste zet?
- 11:49Centraliseer authenticatie bij de gateway.
- 11:51Doe dat voor alles anders.
- 11:52Kies één service.
- 11:53Verplaats de authenticatie-check naar de gateway.
- 11:54Je zult direct merken dat je service code schoner wordt.
- 11:57Geen logica voor tokenvalidatie meer die overal verspreid staat.
- 12:00Niet meer afvragen of je het in elke service op dezelfde manier hebt geïmplementeerd.
- 12:03De gateway regelt het één keer en elke service profiteert ervan.
- 12:07Volgende stap.
- 12:07Rate limiting.
- 12:08Zelfs een simpele limiet beschermt je bekend tegenover belasting.
- 12:11Begin met iets bazaals, zoals 100 verzoeken per minuut per client.
- 12:14Dat voorkomt dat een op hol geslagen client je services platlegt.
- 12:16Je kunt praten.