In de koplampen: Microservices

Modewoord of de toekomst?

In deze editie van ‘In de Koplampen’ duiken we in een term waar we bij Covadis al best veel over geschreven hebben. Het gaat om Microservices. Het is veel genoemd woord in de wereld van softwareontwikkeling. Maar wat is het precies? Wij vroegen het aan wat collega’s van software specialist Covadis.

Projectleider Hermen en directeur Joris zijn voor de gelegenheid bereid om wat meer te vertellen over Microservices. Op geheel eigen wijze leggen zij de werkwijze van de architectuur-stijl toegankelijk uit. Want wat is het eigenlijk?

Kleinere componenten

Joris is bereid antwoord te geven op die eerste vraag.

“Microservices zijn kleine stukjes software die afzonderlijk van elkaar worden ontwikkeld en deployed”, legt hij uit. “Ieder onderdeel heeft één kerntaak en werkt in een groter web samen om processen te optimaliseren. Als er een onderdeel uitvalt, blijft de rest werken. Het kan gaan om een paar onderdelen, maar het kunnen er ook tien- of honderdtallen zijn.”

Essentieel is vooral de wendbaarheid op verschillende vlakken

Hermen - Projectleider Covadis

“Als term is Microservices ook een hypewoord”, reageert Hermen. “Het is een populair modewoord, maar lang niet altijd per se de beste oplossing.”

“Essentieel is vooral de wendbaarheid op verschillende vlakken”, vervolgt hij. “Stel je eens voor dat een applicatie facturen moet genereren. In een klassiek monolithische applicatie zou het één ding zijn. Bij Microservices zijn het kleinere componenten die zich los van elkaar bezig houden met bijvoorbeeld het berekenen van de factuur of het genereren van de PDF.”

“Stel nu dat er eenmalig veel facturen gegenereerd moeten worden. De monolith gaat alles tegelijk proberen te doen, met alle gevolgen van dien. Bij Microservices is het, zeker in combinatie met een cloud, mogelijk om de capaciteit tijdelijk op te schalen en te krimpen zonder dat er onevenredig extra kosten ontstaan. Je betaalt zodoende altijd voor wat je nodig hebt.”

Microservices bij Covadis

Team

Joris legt meer uit over de gevolgen voor het team.

“Als er aan één grote applicatie wordt gewerkt met een groot team is er veel communicatie nodig tussen de mensen van het project”, vervolgt Joris. “Zij zijn dan ook minder goed op de hoogte van alle details van het geheel. Dit leidt tot extra overhead. Het idee bij Microservices is dat een kleiner team verantwoordelijk is voor een klein deel van de totale applicatie. Hierdoor kent het team de ins en outs en kunnen ze snel aanpassingen doen. Dit resulteert in beter onderhoudbare code en aanpassingen kunnen sneller in productie worden genomen.”

De teams kunnen in verschillende programmeertalen werken

Joris - Directeur Covadis

Techniek

Dit heeft ook gevolgen voor de techniek.

“Elk team kan voor zijn eigen deel zelf kiezen welke technieken zij willen gebruiken om te ontwikkelen”, gaat Joris verder. “De teams kunnen dus in verschillende programmeertalen werken.”

Hoe zit dat met de snelheid?

“Mochten er snelheidsproblemen optreden in de software bij het uitvoeren van een proces, dan kan er met Microservices sneller geïnventariseerd worden waar de problemen zich voordoen. Eventueel kan dat specifieke onderdeel opgeschaald worden, in plaats van de hele applicatie. Dit levert waarschijnlijk kostenbesparing op. De snelheid van het ontwikkelen neemt ook toe, omdat services klein zijn. De communicatie-overhead blijft hierdoor klein.”

Softwarebedrijf Covadis Microservices

Schaalbaarheid

Is Microservices de toekomst voor alle applicaties?

“Nee, it depends”, zegt Joris. “De overstap naar Microservices is complex. Bovendien hangt het gewoon van de schaal af. Bij een kleine schaal heeft het meestal geen zin. Het hangt van de doelstelling af. Een monolith kan vaak de beste oplossing zijn.”

“Er zit veel tijd in de ombouw naar een Microservices architectuur”, vervolgt Hermen. “Het is dus vooral een oplossing voor het echt grote werk. Soms zijn Microservices alleen interessant voor bepaalde componenten en niet zozeer het totaalplaatje.”

“Al met al hangt het gebruik van Microservices samen met verschillende elementen:

  • De wendbaarheid op verschillende vlakken
  • De communicatie en de grootte van een team
  • Schaalbaarheid, het opschalen van de toepassing of specifieke onderdelen
  • Verschillende programmeertalen in de techniek
  • De snelheid in een proces

Microservices zijn een goede uitkomst, maar het hangt van verschillende details af”, besluit Joris.

Wie weet zijn Microservices wel de oplossing voor jouw bedrijfsprocessen. Neem vandaag nog contact op met Covadis en ontdek het zelf.