Hoewel ze niet nieuw zijn, ontwikkelen api’s zich meer en meer als de lijm die alle componenten van hedendaagse applicatieontwikkeling bij elkaar houdt. Meer, api's hebben de manier waarop we naar softwareontwikkeling kijken veranderd.
Een modulaire bouw van een applicaties wordt mogelijk dankzij microservices die aan elkaar verbonden zijn middels application programming interfaces (api’s). Kleinere componenten die in harmonie samenwerken om een geweldige gebruikerservaring te leveren. Microservices kunnen hierbij progressie boeken op hun eigen snelheid als gevolg van de roadmap en feedback van gebruikers. Deze vrijheid is ongekend voor softwareontwikkelaars. Dankzij api’s kunnen ze ook ontwikkelen in de omgeving, in een taal en met de tools die ze willen. Volledig afgestemd op hun wensen of de beoogde doelen.
Aan de slag gaan met softwareontwikkeling op basis van microservices betekent dat de applicatiestrategie vooraf moet worden bepaald. Een duidelijk plan voorkomt dat er tijdens de ontwikkelingsfase allerlei extra features worden bedacht en uitgewerkt. De inzet van api’s maakt het mogelijk snel in te spelen op behoeften van gebruikers. De mogelijkheid om updates uit te rollen naar losse services betekent dat de innovatiekracht toeneemt, terwijl de risico’s worden verkleind.
Api-management
Een applicaties kan wel honderden api’s gebruiken, dus management is een belangrijk aandachtspunt. Hoewel sommige microservices worden geleverd als onderdeel van de applicatie, groeit de vraag naar cloud-gebaseerde services hard. Dit kan het aspect ‘betrouwbaarheid’ onder druk zetten; we moeten ons verzekeren dat applicatie-updates geen impact hebben op de stabiliteit. Api-gateways spelen een cruciale rol hierin. Ze bieden een centraal integratiepunt en zorgen voor monitoring en security.
Applicaties gemaakt via een ‘shared-by-design’-principe hebben een positieve bijvangst: ontwikkelaars plaatsen meer commentaar naast hun code. Het is duidelijk hoe belangrijk het is om te laten weten aan anderen wat het doel is van bepaalde code-elementen. Deze transparantie en samenwerking zien we niet in de traditionele monolithische ontwikkelingsomgevingen.
Uitdagingen
Uiteraard zijn er ook uitdagingen en wordt er een nieuwe mindset gevraagd van de ontwikkelaar. In eerste instantie gaat het erom dat er vertrouwen moet zijn dat gebruikte api’s een stabiele interface bieden en een verwacht resultaat leveren, en dat binnen korte tijd. Het is bijvoorbeeld slim om authenticatie en toegangscontrole te offloaden naar een gateway in plaats van het te hardcoden in elke api. Dit heeft ook schaalvoordelen. Als er iets verandert in de authenticatie-logica hoeft dat dan niet in de honderden api’s worden doorgevoerd.
Het risico zit vooral in de inzet van externe systemen. In een monolithische applicatie ligt de snelheid en security vast in het geheugen van een stuk hardware. Api calls zijn netwerk-calls naar (meestal) externe systemen. Daarom moet de manier waarop intern (!) naar de applicatiebeveiliging wordt gekeken, worden geëvalueerd. Daarnaast is het cruciaal om de gateway zo snel als mogelijk te maken. Zelfs een kleine latency zal een exponentieel gevolg hebben op de app-performance.
Api’s hebben softwareontwikkeling een boost gegeven, zowel op consumenten- als op enterpriseniveau. Teams die zich richten op het verbeteren van losse microservices, die zijn te gebruiken in verschillende applicaties, stimuleren creativiteit en innovatie. Het wordt aantrekkelijk om op zoek te gaan naar nieuwe use-cases en betere performance-niveaus. We moeten hiertoe niet alleen verandering omarmen, omdat het nu eenmaal moet, maar ons laten leiden door de mogelijkheden en doeleinden. En dat doe je stap voor stap, api voor api.