Microservices

Microservice architecturen beloven flexibiliteit en schaalbaarheid te bieden voor de ontwikkeling en implementatie van op services gebaseerde applicaties. Hoe die belofte wordt waargemaakt? Door een architectuur te gebruiken waarmee individuele services onafhankelijk en dynamisch kunnen worden gebouwd en geïmplementeerd; een architectuur die DevOps-praktijken omarmt. Volgens Gartner zijn microservices dé nieuwe ontwikkelmethodiek om platformen te ontwikkelen voor een steeds sneller veranderend applicatielandschap.

Microservices

Een software-applicatie is onderhevig aan een architectuur die bestaat uit regels die op grote lijnen specificeren hoe de software technisch gestructureerd is. Deze architectuur geeft onder andere richting hoe nieuwe functionaliteiten geprogrammeerd moeten worden, maar bepaalt ook wat er wel en niet mogelijk is binnen de software en tegen welke prijs.

Afhankelijk van de context waarin de software leeft, past een bepaalde architectuurstijl goed of minder goed. Er bestaan verschillende architectuurstijlen die allen voor- en nadelen hebben. Een microservices architectuur is ook een architectuurstijl. Helaas bestaat er geen eenduidige definitie hoe deze architectuurstijl precies in elkaar steekt, maar de essentie van het verhaal is doorgaans dat één grote applicatie (een zogenaamde monoliet) wordt opgeknipt in meerdere, kleinere applicaties (de microservices). Al deze losse applicaties praten dan met elkaar om uiteindelijk functioneel hetzelfde te doen als de monolitische applicatie. Voor de eindgebruikers verandert er (als het goed wordt uitgevoerd) niets.

Er zijn diverse ontwikkelmethodieken om een complex digitaal platform te maken. Het aloude monolithisch denken (met Wordpress, Magento en vele anderen) kent als tegenhanger de microservices-gedachte. In het midden van deze twee uitersten ligt de services-georiënteerde architectuur (SOA).

Architecturen in het kort

  • Een monolitische architectuur is vergelijkbaar met een grote container waarin alle softwarecomponenten van een toepassing zijn samengesteld en onlosmakelijk verbonden zijn.
  • Een service-georiënteerde architectuur is een verzameling services die met elkaar communiceren (veelal in containers). De communicatie kan bestaan uit eenvoudige gegevensoverdracht of twee of meer services die een bepaalde activiteit coördineren.
  • Een microservice architectuur is een architecturale stijl die een applicatie structureert als een verzameling kleine autonome diensten, gemodelleerd rond een functie of domein.

Volgens onze werkwijze ziet een microservices architectuur er als volgt uit:

Microservice aarchitectuu

Bij Nerds & Company maken we uitsluitend gebruik van open source applicaties en koppelen we graag met API’s (koppeling tussen microservice en koppelvlak) en ESB's (universeel koppelvak) en hebben we veel ervaring met microservices opgedaan. Iedere door ons gebouwde omgeving is in meer of mindere mate gekoppeld met externe partijen of kent een integratie met omliggende omgevingen. De omgevingen zijn dan ook zoveel mogelijk voorbereid op toekomstige doorontwikkelingen, integraties en veilige gegevensuitwisselingen. Waarom we regelmatig gebruikmaken van microservices leggen we in de pagina's hierna uit.

De hele whitepaper ontvangen? Stuur een mailtje naar Adrian Ariese.

Auteur

Adrian Ariese