BLOG

Achtergronden

Microservices zijn niet hetzelfde als components

26 februari 2017

Zeg ‘cloud’, praat over ‘DevOps’ en het zal niet lang duren voor iemand microservices zal roepen. Maar wat zijn microservices? De naam doet vermoeden dat het om iets kleins gaat, maar om wat? Gaat het om een deel van een groter geheel of een stukje afzonderlijke functionaliteit? Hoe verschilt microservices van application components?

Components

Een application component is een klein deel van een applicatie, dat moge duidelijk zijn. Het is een functie, een subelement. Soms een extensie of een meer fundamenteel basis element dat kenmerkend is voor wat de grotere applicatie doet. Om een voorbeeld te geven: in Word zou de spellingscontrole een component kunnen zijn. Als we kijken naar hoe componenten passen binnen de totale gebied van software applicatieontwikkeling en engineering, zien we een software systeem verdeeld in componenten die dan op hun beurt weer bestaan uit modules. Dus een module is kleiner dan een component maar niet hetzelfde als een microservice.

In object georiënteerd programmeren, is een component een herbruikbaar blokje/bouwsteen software. In deze context kan één component gecombineerd worden met andere componenten in dezelfde computer om een applicatie te vormen. Op dit hogere niveau in component-based software engineering kunnen we zeggen dat een reserveringssysteem voor hotelkamers een component is van een wijder, hoger en groter applicatie systeem. Maar op een lager level zou een component een calculator kunnen zijn. Of een valuta converteerder. Of zelfs een interface tot een database management systeem in het hotelkamer reserveringssysteem. En dat geeft ook weer aan hoe moeilijk het is om definitief te definiëren.

Expert over Microservices vs Components

Dan Scholnick is een gepassioneerde spreker over microservices en waarom ze zo belangrijk zijn voor tech bedrijven. Hij onderstreept dat hij sinds het prille begin van dit vakgebied altijd betrokken is geweest en vooral bij de omvang en adoptie van microservices. Wat is dan het belangrijke verschil met componenten, volgens Scholnick?

“Als we kijken naar componenten en wat die voorstellen, dan denk ik dat het gewoon een algemene term is voor één enkele microservice in een microservices architectuur. Microservices refereert naar de vorm van een architectuur waar en applicatie wordt opgebroken in veel kleinere apps, onafhankelijk onderhouden en met nauwe focus, die met elkaar communiceren via zeer consistente en goed gedocumenteerd interfaces zoals een API, aldus Scholnick.

Dit klinkt wellicht nog steeds als componenten? Scholnick beargumenteert echter verder: Je zou elk van die kleinere apps componenten kunnen noemen en ze dan groeperen in categorieën, gebaseerd op waar in de architectuur van de applicatie ze zitten. Database componenten, display or presentatie componenten. Ik denk daarom dat je in ieder geval kunt stellen dat een microservices architectuur gebouwd wordt met een variatie van individuele microservices OF componenten, vertelt Scholnick.

Eén stroming omtrent dit onderwerp stelt dat een microservice in staat moet zijn om zelfstandig te draaien, terwijl een component normaal gesproken in een groter software systeem gebruikt wordt. Dat is waar, maar sommige componenten draaien ook zelfstandig en zijn bovendien overdraagbaar. Dit maakt het weer moeilijker om het verschil te definiëren.

Microservices kunnen in meerdere programmeertalen worden geschreven en gebruiken verschillende data opslag technologieën, zeker wanneer het gaat om de ‘nieuwe’ cloud wereld waar opslag en geheugen toegang anders is dan vroeger. Componenten aan de andere kant, (even uitgaande van het eerder genoemde spellingscontrole voorbeeld bij MS Office, zouden niet goed meer functioneren in hun moeder applicatie als ze in verschillende programmeertalen en data opslag technologieën zouden worden gemaakt. Dit verschil kan een geheugensteuntje zijn om de twee verschijnselen te onderscheiden.

Een belangrijk punt ligt in de noodzaak om microservices niet te zien als een geheel apart ‘ding’ met betrekking tot componenten, maar als een architectonische stijl. In een architectonische aanpak worden microservices verspreid over servers met veel processen en vertonen ze gedrag zoals in SOA (Service Oriented Architecture) maar zonder de typische afhankelijkheid van Enterprise Service Bus.

 

Contact met Senet

Senet Eindhoven
Gestelsestraat 258
5654 AM Eindhoven
Bekijk op kaart

+31(0)40-2930395

KvK nummer: 17115078
Btw nummer: NL807989083B01