Waarom cloud-native applicaties de toekomst zijn van software

Paul Gillin, consultant & editor

28-10-2020

Waarom cloud-native applicaties de toekomst zijn van software

Bij het bouwen van nieuwe apps denken veel organisaties aan cloud-first. Het is echter beter om aan cloud-native te denken. Met cloud-native applicaties kun je namelijk veel beter de voordelen benutten van platformen en processen die zijn ontstaan in de cloud. Ze zijn vrijwel eindeloos schaalbaar en eenvoudig aan te passen. Bovendien is het mogelijk cloud-native apps te verbinden met cloud-diensten zonder daarvoor te hoeven coderen.

Wat zijn cloud-native applicaties?
Cloud-native applicaties gebruiken doorgaans een of meer zaken die hun oorsprong hebben in de cloud. De volgende vier zijn daarbij vooral belangrijk.

1. Software containers
Software containers zijn portable, geïntegreerde omgevingen met hierin een applicatie en alle softwarecomponenten die nodig zijn om deze te laten draaien. Containers zijn een populair alternatief voor virtuele machines omdat ze klein zijn, snel geïmplementeerd kunnen worden en in libraries kunnen worden opgeslagen voor hergebruik. Als je eenmaal een applicatie in een container hebt geschreven, kun je deze verplaatsen naar elk platform dat containers ondersteunt (dit zijn de meeste), en zal de app probleemloos werken. Dat betekent dat de applicatie niet gebonden is aan één enkel cloud-platform en dat deze kan draaien op elk apparaat met voldoende capaciteit, van laptop tot supercomputer.

2. Microservices
Microservices zijn gekoppelde software diensten die samengevoegd kunnen worden om een applicatie te bouwen. Hierdoor hoeven ontwikkelaars niet telkens het wiel opnieuw uit te vinden en worden applicaties flexibel en makkelijk uitbreidbaar. Applicaties die zijn samengesteld uit microservices zijn met minimale programmeer-inspanning als legoblokken op elkaar te stapelen. Dit zorgt voor snellere en meer betrouwbare ontwikkeling. Nieuwe services kunnen eenvoudig worden ingewisseld of toegevoegd zonder uitgebreide integratietests.

3. Software-defined infrastructure
Het vervangen van switches en stekkers door software zorgt ervoor dat de hardware-functie bijna volledig is gevirtualiseerd. Dit maakt het eenvoudig om capaciteit op en af te schalen, resources opnieuw toe te wijzen en services automatisch te starten en te stoppen via software. Een flexibele onderliggende infrastructuur maakt dat cloud-native applicaties worden voorzien in hun behoeften.

4. Application program interfaces (APIs)
API's zijn software-connectoren, waardoor functionaliteit vanuit een bepaalde oplossing gebruikt kan worden in andere software. Ze maken het makkelijk applicaties uit te breiden of aan te passen zonder de onderliggende code aan te passen (wat sowieso goed is om te vermijden). Dankzij API's kunnen ontwikkelaars ook in andere applicaties gebruik maken van allerlei functionaliteit.

Een goed voorbeeld van een API-enabled applicatie is Google Maps. Met Google Maps kan een ontwikkelaar van een vastgoedapplicatie de kaartfunctionaliteit van Google in zijn programma integreren door met API's geografische informatie op te vragen. Stel je eens voor hoeveel tijd de ontwikkelaar bespaart doordat hij/ zij zelf geen kaartfunctionaliteit hoeft te bouwen of een applicatie op de server hoeft te installeren.

3 redenen waarom cloud-native development zo waardevol is

Wat maakt cloud-native development nu zo waardevol? Hieronder drie redenen:

1. Aanpasbaarheid
Cloud-native applicaties kunnen meeveranderen met de behoeften van het bedrijf, zonder afhankelijkheden te creëren waardoor klanten vastzitten aan een bepaalde versie van de software. Als een organisatie bijvoorbeeld een applicatie beschikbaar wil stellen op mobiele apparaten, kan het de mobiele front-end bouwen en API's gebruiken om toegang te krijgen tot data op de server zonder code op de back-end te wijzigen. Deze losse koppeling maakt het mogelijk om in beide toepassingen wijzigingen aan te brengen zonder dat de ander wordt beïnvloed.

2. Schaalbaarheid
Cloud-native applicaties gebruiken een software defined infrastructure om de afhankelijkheid van hardware te verminderen of te elimineren. Daarbij worden commodity-servers toegevoegd voor horizontale schaalbaarheid, in plaats van dat er duurdere processoren, opslag en geheugen aan bestaande servers moeten worden toegevoegd. Horizontale schaalbaarheid maakt massale cloud services zoals Amazon en Facebook mogelijk.

3. Portabiliteit

Door containers te gebruiken kunnen ontwikkelaars applicaties creëren die op alles draaien, van smartphone tot mainframe, zonder de code te wijzigen. Met de groeiende populariteit van 'edge computing' is het ideaal om applicaties te kunnen implementeren waar ze nodig zijn.

Groot verschil tussen cloud-compatibel en cloud-native
Direct werken met containers, microservices en API's is geen eenvoudige taak. Een low-code platform zoals Mendix kan veel van de complexiteit verbergen onder de motorkap. Veel low-code tools zijn gebouwd voordat cloud-native technologieën op grote schaal werden gebruikt. Ze zijn misschien achteraf aangepast om in de cloud te draaien, maar er is een groot verschil tussen cloud-compatibel en cloud-native zijn. De meeste verouderde apps kunnen in de cloud draaien, maar ze kunnen niet profiteren van de voordelen om eenvoudig uit te breiden en de schaalbaarheid en portabiliteit die cloud-native architectuur biedt.

Toch kunnen ook legacy apps profiteren van het draaien op cloud-platformen, en kan het nog steeds van meerwaarde zijn om bij deze applicaties te werken met API's of uitbreidingen te bouwen met behulp van microservices. Maar om volledig te kunnen profiteren van cloud-native ontwikkeling moet je de manier waarop je software bouwt volledig heroverwegen. Traditionele benaderingen met hun uitgebreide specificaties en doorlooptijden van zes maanden moeten plaatsmaken voor iteratieve processen die snel resultaat leveren.

De nieuwe agile methodes voor software-ontwikkeling, die worden omarmd door cloud-native bedrijven, gaan uit van modulariteit, herbruikbaarheid en frequente code releases. Ontwikkelaars profiteren van functies die al beschikbaar zijn in plaats van dat ze deze zelf helemaal opnieuw hoeven te bouwen. Omdat nieuwe functies gemakkelijk toe te voegen zijn, is het voor de ontwikkelaar vaak eenvoudig deze te laten zien aan de eindgebruiker en te valideren of hij op de goede weg zit.

Kortom, met cloud-native is de ontwikkelaar niet alleen zeker dat hij/zij de applicatie sneller kan ontwikkelen. Er is ook meer zekerheid dat er een flexibele, toekomstbestendige oplossing wordt ontwikkeld waarmee de eindgebruiker nu en straks een bijdrage kan leveren aan de bedrijfsresultaten.

Door: Paul Gillin, consultant & editor

Terug naar nieuws overzicht