Onze architectuur

AFAS New Technology Architecture

(ANTA)

pijl schuin blauw naar transparant
Sinds 1997 zijn we bezig met de ontwikkeling van de architectuur ‘ANTA’ onder onze ‘Profit’ applicatie. Met deze architectuur hebben we de basis gelegd voor een zowel Online als On-premise beschikbare standaard ERP applicatie. De opzet van de architectuur is vanaf het begin meta data gedreven en biedt met vele configuratie / inrichtingsmogelijkheden. Van de groenteboer op de hoek tot diverse multinationals maken gebruik van deze applicatie en haar onderliggende architectuur. Een aantal jaren geleden hebben we de keus gemaakt om een volledige nieuwe architectuur op te zetten gebruik makend van de laatste methoden en nieuwste technologie.

De huidige applicatie en de onderliggende architectuur is inmiddels cloud enabled en wordt door meer dan 75% van onze klanten in onze hosting infrastructuur AFAS Online afgenomen. De onderliggende architectuur is vanaf het oorspronkelijk geschreven voor een on-premise omgeving. Hoewel we de applicatie inmiddels succesvol draaien in onze hosting infrastructuur ervaren we ook zaken die we willen verbeteren.

Het beheer van de applicatie over meer dan 600 servers en de uitrol van nieuwe versies, updates en patches is erg kostbaar. Het upgrade proces, waarbij we zo min mogelijk last voor de klant willen veroorzaken, vergt nauwkeurige afstemming en is een intensief en foutgevoelig proces. Evenwichtige load balancing waarbij de load over clusters (groepen van servers) wordt verdeeld is alleen handmatig te configureren. Dit is een statisch proces en gebaseerd op metingen over een vorige periode. De schaalbaarheid van de applicatie kent zijn grenzen. Onder andere vanwege het gebruik van een database per klant omgeving. Om single point of failure te voorkomen zijn grote investeringen noodzakelijk. Inzicht in de gezondheid van de draaiende applicatie is beperkt en in veel gevallen wordt inzicht op adhoc basis gecreëerd.

Veel functies zijn inmiddels beschikbaar in een webportal maar er zijn nog specifieke functie die in de windows omgeving leven en een RDP connectie vereisen. Daarnaast is het beheer van miljoenen regels code en deze (continue) mee laten liften met de laatste technologische ontwikkelingen bijna onmogelijk.

De “Next” architectuur

Voldoende uitdaging voor de nieuwe versie van de architectuur onder NEXT. We hebben de ervaringen uit het huidige architectuur omgezet in requirements voor diverse belangrijke onderdelen van de architectuur. 

Specifiek voor onze applicatie is dat deze model gedreven is waarbij de volledige applicatie wordt gegenereerd op basis van een model. Aanpassingen en uitbreidingen op het model moet in de draaiende omgeving doorgevoerd kunnen worden terwijl gebruikers gewoon door kunnen werken. We bieden onze applicatie aan in een SaaS omgeving waarbij we platform onafhankelijke oplossing voor zowel de frontend als de backend als uitgangspunt hebben gesteld. Vanaf de eerste code regel hebben we een cloud-first aanpak waarbij we gebruik maken van onder andere micro-services technologie.

Wil je meer lezen? 

  • over onze backend, die zorgt voor onze schaalbaarheid en betrouwbaarheid,
  • of onze frontend, die cross-device werkt,
  • of de generator, die op basis van het model de uiteindelijke applicatie maakt.

De nieuwe architectuur is gebaseerd op een (conceptuele) indeling van een cloud architectuur. In deze indeling zijn 3 gebieden gedefinieerd; de Architectuur, het Cloud Management en de Application Performance Management. De verschillende verantwoordelijkheden van een cloud architectuur (o.a. schaalbaarheid, betrouwbaarheid, multi-tenancy, conversie, configureren en uitrollen) zijn verdeeld over deze 3 gebieden. 

De “Architecture”

Onder architectuur vallen alle frontend en backend voorzieningen die we nodig hebben en inzetten ten behoeve van de applicatie. De infrastructuur voorzieningen en de diverse data opslag voorzieningen van de draaiende applicatie(s) vallen ook onder dit gebied.

Het “Cloud Management”

Het beheren van applicaties (generatie, uitrollen en conversie), gebruikers, klanten, en de infrastructuur is onderdeel van het gebied Cloud Management. Deze beheersprocessen moeten volledige geautomatiseerd kunnen worden uitgevoerd.

Het “Application Performance Management”

Inzicht in de werking van een meer dan 10.000 applicatie instanties en meer dan 50.000 gelijktijdige gebruikers is een must. Het monitoren van de goede werking van de applicaties, het verzamelen en beschikbaar stellen van informatie onder andere ten behoeven van de load balancing en het inzicht in het gebruik van de verschillende functies binnen de applicatie vallen onder het Application Performance Management gebied.

Open Source

Maar naast dat we dit doen, proberen we ook via open source aan de community bij te dragen. Kijk daarvoor op github.com/AFASSoftware en github.com/AFASResearch

MaquetteJS is onze VirtualDom implementatie die we ge-open-sourced hebben.