BlueDolphin Service Fabric

Posted on

BlueDolphin, functioneel sneller met Service Fabric

Dennis Hoefakker 12 oktober 2018, Dennis Hoefakker

Volledig vernieuwde back-end in BlueDolphin: Hoe werkt dat?

In 2014 werd leven geblazen in “BlueDolphin”. Sindsdien is er, zoals jullie waarschijnlijk allemaal gemerkt hebben, veel veranderd en verbeterd. De interface is stap voor stap getransformeerd, talloze functionaliteiten zijn toegevoegd en er is een compleet nieuwe module in de vorm van BPMN toegevoegd. De hosting van BlueDolphin is ongeveer het enige dat al die tijd gelijk bleef.

In 2014 kozen we ervoor om BlueDolphin middels Cloud Services op Microsoft Azure te hosten, omdat dat destijds de beste optie was om de software enigszins schaalbaar te maken. Toentertijd zag de Azure portal er zo uit:

 

Cloud Services

Cloud Services dus... Een Cloud Service kan bestaan uit één of meerdere Virtual Machines. Daarmee kun je schalen als je minder of meer capaciteit nodig hebt. Ideaal, zo lijkt het, maar dat is telkens een handmatige en vrij tijdrovende klus.

Zo zorgde het development team van ValueBlue de afgelopen jaren continu zelf voor voldoende capaciteit. Dat was vrij arbeidsintensief en daarbij was sprake van ‘waste’ omdat we per periode de maximale klantbehoefte moesten inschatten; we konden niet ‘on-demand’ op- en afschalen zonder dat het ons veel werktijd kostte.

Om de werkzaamheden rondom BlueDolphin en development zo effectief en schaalbaar mogelijk op te zetten, splitsten we de Cloud Services op in logische groepen. Dit werkte al beter. Hierdoor konden we individuele onderdelen van de tool op- en afschalen. Dat zijn in de loop der jaren veertien Cloud Services geworden, allen bestaande uit minimaal twee Virtual Machines. Maar op de momenten dat we deze Virtuele Machines onder de loep namen, bleken deze bijzonder veel resources (CPU/Memory) over te hebben. Ruimte waarvoor we betaalden die dus onbenut bleef.

Rond 2015 kondigde Microsoft aan in 2016 het Microservices Platform Service Fabric uit te rollen voor al haar Azure klanten. Dit Service Fabric platform leek erg bij onze behoefte, om beter te kunnen schalen, te passen. BlueDolphin bestaat, zoals eerder beschreven, uit verschillende groepen resources ofwel meerdere ‘(mirco)services’. Zo onderzochten we de mogelijkheden en concludeerden dat een overstap van de Cloud Services architectuur naar de Service Fabric architectuur veel voordelen zou bieden.

Om de overstap naar de Service Fabric Architectuur te maken en soepel te laten verlopen, was het nodig om simultaan te werken aan twee zogenoemde codebases. Daarbij kozen we voor een ‘lift and shift’ aanpak. We wilden de codebase in Service Fabric Services en de Cloud Service zo gelijk mogelijk houden om nieuwe functionaliteiten en opgeloste bugs makkelijk en relatief snel door te gaan voeren in beide omgevingen. Daar stond tegenover dat we de afgelopen tijd twee codebases moesten bijhouden. Dat heeft invloed gehad op de hoeveelheid werk en daarmee de ontwikkel-snelheid.

Wat levert Service Fabric op?

Schaalbaarheid
Zoals eerder aangegeven hadden we ongeveer 28 Virtual Machines die de Cloud Services draaiend hielden. Service Fabric draait op minder Virtual Machines; op dit moment maakt ons development team in haar productie-omgeving gebruik van vijf virtuele machines. Daarnaast kunnen we:

  • Het aantal Virtuele Machines van het cluster schalen;
  • Het aantal BlueDolphin (micro)services schalen.

Deze twee handelingen kunnen geautomatiseerd uitgevoerd worden, waarbij het Microsoft platform ervoor zorgt dat de services gelijkmatig over de beschikbare machines worden verdeeld. Daar waar het in de eerdere situatie relatief veel tijd kostte om op en af te schalen, is het dankzij Service Fabric een kwestie van minuten op het moment dat we iets veranderen qua capaciteit en/of gebruik.

Snelheid
In de oude situatie liep de communicatie tussen de verschillende services van BlueDolphin via een servicebus. Deze servicebus heeft, afhankelijk van het gekozen type, een vertraging. Dit kon resulteren in vertragingen. Nu, in het Service Fabric cluster, communiceren de services direct met elkaar. Dit zorgt er voor dat we minder last hebben van vertragingen en dat BlueDolphin sneller reageert.

Release verbeteringen
We zijn beter in staat code en configuratie te scheiden. Daarbij werken we met releases (met behulp van Visual Studio Online) en zijn we makkelijker in staat om builds/features onafhankelijk van elkaar te testen. We kunnen dus in kleinere stukjes bouwen, testen en releasen in plaats van de grote blokken waartoe we eerder genoodzaakt waren. Dit betekent dat we in de toekomst sneller nieuwe functionaliteiten aan onze klanten aanbieden en verbeteringen eveneens sneller doorvoeren.

Rolling Updates
ServiceFabric ondersteunt een werkwijze genaamd ‘Rolling updates’. Dit houdt in dat we service(s) en releases zonder merkbare effecten voor de klant upgraden. In theorie voeren we bepaalde releases vanaf nu op elk willekeurig moment door zonder downtime en zonder merkbare impact voor de eindgebruiker.

En hoe nu verder?

De overstap van het oude Cloud Services platform naar het Service Fabric platform was een grote stap. Daar hebben we hard aan gewerkt met het development team. Nu is het tijd voor optimalisatie, zodat we bijvoorbeeld nog fijnmaziger schalen.

Inmiddels heeft ValueBlue alle BlueDolphin-omgevingen in batches overgezet naar de nieuwe back-end op basis van Service Fabric. De resultaten zijn erg goed. De performance is verbeterd en het overzetten van de BlueDolphin omgevingen is vrijwel onopgemerkt verwezenlijkt. De komende tijd ligt de focus dus volledig op het ontwikkelen van nieuwe functionaliteiten; functionaliteiten die we nu nog sneller en beter testen en uitrollen.

Geïnteresseerd in BlueDolphin?

Brochure

Bekijk onze BlueDolphin Brochure met alle relevante informatie over het samenwerkingsplatform. Zijn er vragen of opmerkingen, neem vooral contact met ons op!

Demo

Benieuwd naar wat BlueDolphin kan betekenen voor jouw organisatie? Met plezier komen we vrijblijvend langs voor een demo waarin we delen over het waarom, hoe en wat rondom BlueDolphin.

BlueDolphin

Het samenwerkingsplatform dat slim gebruik maakt van informatie en kennis op het gebied van de bedrijfsvoering en IT