Managed hosting door True
Deze opinie is van een externe deskundige. De inhoud vertegenwoordigt dus niet noodzakelijk het gedachtegoed van de redactie.

Microservices en SOA: zoek de verschillen

 

Computable Expert

Gijs in ‘t Veld
CTO, Motion10. Expert van Computable voor de topics Digital Transformation, Cloud Computing en Infrastructuur.

De software goeroes rollen op blogs en Twitter op dit moment virtueel over elkaar heen: Is het fenomeen Microservices nu gewoon een nieuwe incarnatie van service oriënted architecture (soa)? Of is het echt iets nieuws.

Een op services gebaseerde software architectuur (soa) houdt in dat je geen monolieten meer ontwikkelt. Oplossingen worden modulair opgebouwd uit afzonderlijke componenten. Door aandacht voor hergebruik worden ontwikkeltijd en -kosten minder en de onderhoudbaarheid beter. Daarnaast biedt de modulaire opzet voordelen voor het parallel plannen van werkzaamheden om zodoende dus in kortere tijd met meerdere teams grotere ict-projecten uit te kunnen voeren. Daarnaast kunnen de componenten op meerdere manieren worden gecombineerd (als een soort Legoblokken), waardoor veel flexibeler oplossingen zijn te realiseren.

Op zich heeft service oriëntatie niets met integratie te maken. In een ideale wereld communiceren services met elkaar, zonder dat er (te configureren) integratie middleware als bijvoorbeeld een service bus aan te pas komt. Dit is waarschijnlijk alleen haalbaar als kunstmatige intelligentie echt op dit niveau doorbreekt en 'no proces's mogelijk wordt. De services weten elkaar dan automatisch te vinden en op die manier zal het proces dynamisch tot stand komen. Hierdoor zal proces optimalisatie altijd automatisch plaatsvinden, zonder dat er een vooraf gedefinieerd proces vast is gelegd en zonder dat dit ook telkens (handmatig) bijgestuurd moet worden. Bpm, maar dan zonder configuratie. Dit is vandaag de dag echter nog ver van de werkelijkheid. Maar dat we daar naar toe gaan is zeker.

Tot die tijd zijn we afhankelijk van integratie middleware. Service bussen die in je eigen datacentrum of in de cloud draaien, en ook hybride (door middel van federatie) elkaars services kunnen gebruiken. Deze technologie maakt het mogelijk dat services van verschillende pluimage goed met elkaar kunnen communiceren, en dat dit ook beheersbaar en monitorbaar is.

Architectuur- en ontwerprichtlijnen

De principes die ten grondslag liggen aan soa, zijn gelijk aan die voor Microservices gelden. Laten we ze nog even in gewoon Nederlands een keer op een rijtje zetten. Services worden gebouwd aan de hand van de volgende algemeen geldende architectuur- en ontwerprichtlijnen:

  • Alle services communiceren via een vergelijkbare manier met elkaar en zijn hiermee met elkaar compatibel.

  • De logica binnen de services is niet rechtstreeks gekoppeld aan onderliggende componenten en achterliggende systemen. Hiermee is er een zekere flexibiliteit bij uitbreidingen of veranderingen.

  • Een service wordt ontworpen voor een functioneel doel en verbergt specifieke technische zaken van onderliggende werking of systemen.

  • De te bouwen logica wordt in losse op zichzelf staande delen onderverdeeld zodat deze losse services kunnen vormen en hergebruikt kunnen worden.

  • Een service is zelfstandig in staat om te functioneren (autonoom) en heeft geen referenties naar onderdelen buiten de service.

  • Een service heeft geen wetenschap van eerdere aanroepen. Elke aanroep wordt behandeld alsof deze voor het eerst wordt gedaan met het oog op schaalbaarheid en betrouwbaarheid.

  • Een service bevat metadata die beschrijft hoe deze te gebruiken is.

Deze principes gelden voor soa en Microservices. Punt.

Wat is nu dan wel het verschil? Wat maakt Microservices zo bijzonder? Ik heb eerlijk gezegd nog geen goede definitie van de 'Micro' in Microservices gezien. Is het alleen het feit dat het zeer fijnmazige services zijn? Fine grained soa? Is het verschil dat soa om enterprise architectuur draait en Microservices om applicatie architectuur? Wat mij betreft is dat niet heel erg relevant.

Waar het bij zowel soa als Microservices om draait, is dat het een onderdeel vormt van een groter geheel, gedreven vanuit de business. Als er op business niveau niet in services wordt gedacht bij het ontwikkelen van oplossingen, zal soa of Microservices nooit een succes worden. Het is aan ons it-mensen om de business duidelijk te maken wat soa en Microservices nu precies betekent voor niet it-mensen en de bedrijfsoplossingen waar het allemaal om draait. Het fenomeen Microservices gaat dat niet voor ons oplossen.

Belangrijk hierbij is dat we kunnen aantonen dat het voordelen oplevert. Een business case voor hergebruik van componenten, die al of niet door de gebruikende organisaties zelf zijn ontwikkeld. Dat 'opvoeden' proberen we al jaren, maar dat lukt ons nog steeds niet erg goed. Laten we ons daar eens druk om gaan maken! Dan komt die architectuur vanzelf wel goed.

Dit artikel is afkomstig van Channelweb.nl (https://www.channelweb.nl/artikel/5209528). © Jaarbeurs IT Media.

?


Lees ook


 

Stuur door

Stuur dit artikel door

Je naam ontbreekt
Je e-mailadres ontbreekt
De naam van de ontvanger ontbreekt
Het e-mailadres van de ontvanger ontbreekt

×
×
Wilt u dagelijks op de hoogte worden gehouden van het laatste ict-nieuws, achtergronden en opinie?
Abonneer uzelf op onze gratis nieuwsbrief.