post-header-photo

Bezoek aan AFAS in Leusden

Soms doe je nog wel eens wat nuttigs met Facebook. Als developer volg ik natuurlijk Microsoft Visual Studio en (waarschijnlijk) daardoor toonde Facebook op mijn timeline een bericht dat AFAS op 26 november met XPirit een sessie zou houden over Microsoft Microservices. Omdat deze term ook gevallen was bij ons bezoek aan Coolblue even doorgeklikt en het artikel doorgelezen en ook meteen maar geboekt. Want 26 november is op een donderdag, daar kan mijn PT-middag prima voor gebruikt worden. Ook mijn collega Jeldert wilde wel eens horen wat ze te vertellen hadden, dus we zijn met zijn tweeën op de 26e afgereisd naar Leusden.

Een man bij het pand wijst waar we kunnen parkeren (op de stoep). Nadat we binnen zijn wordt een foto gemaakt en deze op de badge geprint die we krijgen. Valt me op dat er op het scherm een paar keer null in de gegevens staat. Je bent nerd of je bent het niet 🙂

Jas in de garderobe opgehangen, vervolgens in de kantine een bakje koffie. De opening, daarna lopen we naar boven, naar het AFAS Theater. Een grote zaal, je kunt een tafeltje voor je neerklappen zodat je aantekeningen kunt maken. Weer een beetje het college-gevoel teruggekregen.

Voor de tapas zijn er twee sessies die algemeen zijn. Deze worden gegeven door Ruud de Jonge, dagvoorzitter en werkzaam bij Microsoft en Alex Thissen, lead consultant bij XPirit. Er vliegen nogal wat termen voorbij.

Reactive Manifesto. Als je via Google zoekt komt als eerst zoeksuggestie reactive manifesto bullshit. Zijn nogal wat mensen die er niet zoveel geloof aan hechten. Zoals het op deze site beschreven wordt is het wel hoe je wilt dat je software werkt: responsive (korte wachttijden), resilliënt (werkend blijven, ook bij problemen, onder andere door replicatie), elastic (systemen die via bv. Azure automatisch op kunnen schalen bij een hogere workload) en message driven. Die term kwam ook naar voren bij Coolblue. Op deze pagina worden de begrippen toegelicht: http://www.reactivemanifesto.org/

Het definiëren van een microservice kan op verschillende manieren gedaan worden. Zo heb je het begrip “kan door 1 team onderhouden worden”. Maar ook dat het “niet te groot” mag zijn. Je zou hierbij kunnen kijken naar de herbouwtijd van de dienst. Voorbeelden van partijen die met microservices werken zijn OTTO, Netflix en Amazon. OTTO heeft de processen opgesplitst naar product / search / order / services. Op de slide wordt de URL ottodev.files.wordpress.com getoond, deze linkt door naar http://dev.otto.de/  Ook valt de naam Martin Fowler. De systemen die je maakt hebben “low coupling, high cohesion”. Bij de vraag van Ruud (of Alex) of iemand al Microservices gebruikt antwoordt iemand uit het publiek dat ze het beperken tot een domein. Hierdoor valt de naam Eric Evans die een boek over Domain Driven Design heeft geschreven.

Voor performance wil je veel zaken cachen. Maar sommige zaken zijn gepersonaliseerd. Oplossing daarvoor is Edge Side Includes. Tijdens de presentatie worden een aantal flows getoond, ik zie dat deze gemaakt zijn met websequencediagrams.com. Een Event Driven Architecture, daar zijn microservices op gericht. Bij een snelle zoektocht op dat begrip kom ik deze slideshare tegen: http://www.slideshare.net/chris.e.richardson/developing-eventdriven-microservices-with-event-sourcing-and-cqrs-phillyete

Componenten/tools die daarbij gebruikt kunnen worden zijn WebSphereMQ, NServiceBus, Google protocol buffers, Apache Thrift, AMQP, Chaos Monkey, Chaos Gorilla, het Circuit Breaker Pattern, het Retry Pattern, Heroku, Nano Server, Apache Mesos, Zookeeper, Kubernetes, Redis, Raven DB, Yarn, MongoDB, Hadoop.

Na de tapas komen Pieter de Bruin en Michiel Overeem aan het woord. Een aantal zaken die bekend zijn (ASP.NET 5 is open-source geworden). Docker waarmee je containers kunt maken. Maar ook nieuwe zaken. We krijgen een demo met Azure te zien. Azure heeft een SDK voor de Service Fabric.

We krijgen wat voorbeelden te zien, allemaal in een Azure-omgeving. Mooi (en goed ook!) dat Michiel meldt dat het ook op andere omgevingen draait en je dus niet vast zit aan Microsoft. Maar het dashboard en de andere zaken bij Azure zien er wel erg gelikt uit.

AFAS heeft 360 medewerkers en heeft 10.000 klanten. Daarbij worden er maandelijks 1.500.000 loonstroken gemaakt. De producten van AFAS worden gebruikt voor HRM en CRM. AFAS Online. Bij het opzetten van de systemen naar microservices is een splitsing gemaakt naar command system en het query system. We horen dat het developmentproces nog even mag duren, eind 2019 moet het gereed zijn. De ontwikkelingen (niet altijd overeenkomend met de huidige stand van zaken, maar soms versimpeld om het makkelijker te begrijpen) staat online en is te raadplegen: https://github.com/AFASSoftware/CQRS-Microservices

Volgens de flow zitten we met microservices nog in de startfase. Hoewel veel nieuwe zaken met veel ‘haleluja’ begroet worden en de oplossing voor alle problemen zouden moeten zijn, kom je er later achter dat dit toch niet zo is. Zo is het ook met microservices. Je moet kritisch kijken of je het voor jouw projecten wel kunt gebruiken. Maar als vervanger voor een groot monolitisch systeem is het zeker aan te raden.

En gelukkig, de presentaties e.d. zijn ook online beschikbaar. Te bekijken op: https://dev.afas.nl/terugblik-microservices