Cases

MuleSoft Container Oplossingen

Hoe kun je de performance van Mule applicaties en de time to market van een MuleSoft upgrade versnellen? Door middel van containers! Voor een overheidsklant in Nederland hebben wij de time to market dankzij containers 78 keer versneld!

Gartner voorspelt dat in 2022 meer dan 75% van de grote organisaties in de wereld applicaties zullen hebben draaien in containers en dat 95% van de nieuwe microservices ook in containers gedeployd zullen worden. Hoewel er een groeiende interesse is in het gebruik van containers, is er sprake van een steile leercurve om deze containers op de juiste manier te ontwerpen, ontwikkelen en vervolgens te onderhouden in productie omgevingen.

Met ons team van integratie specialisten, System Engineers én Network Engineers hebben wij niet alleen diepgaande kennis op het gebied van middleware en full API lifecycle management, maar ook op het gebied van infrastructuur en Cloud strategieën. Met deze unieke mix hebben wij alles in huis om onze klanten de steile leercurve van container oplossingen door te helpen.

Over containers

Containers zijn vandaag de dag aan een sterke opmars bezig en dat verbaast ons helemaal niets. Container engines als Docker en container management platforms als Kubernetes stellen organisaties in staat om op een gestandaardiseerde manier applicaties te verpakken – inclusief de code, runtime en libraries. Vervolgens kan dit alles ook nog op een consistente manier worden gedeployd. Containers hebben ons geïntroduceerd tot een ongekende mate van flexibiliteit en efficiëntie binnen het applicatie development proces. Steeds meer organisaties kijken dan ook hoe zij hier gebruik van kunnen maken.

De klant

Voor een overheidsklant in Nederland hebben wij door middel van containers de performance van Mule applicaties en de time to market van een MuleSoft upgrade 78 keer versneld.

Voor wie is deze case interessant:

  • Voor organisaties die geïnteresseerd zijn in hoe wij onze eigen MuleSoft containers hebben gemaakt bij een overheidsorganisatie
  • Voor organisaties die MuleSoft on-premises hebben draaien, maar behoefte hebben aan meer flexibiliteit en schaalbaarheid in het deployen van MuleSoft applicaties
  • Voor organisaties die al een Kubernetes cluster hebben draaien en voor MuleSoft geen aparte container omgeving (Runtime Fabric) willen
  • Voor organisaties die willen leren over de combinatie Mule, Kubernetes, Docker, Git, Jenkins en Nexus.

Onze uitdaging

Overheidsorganisaties hebben vaak te maken met strikte security voorwaarden, waarbij het draaien van een on-premises MuleSoft Anypoint Private Cloud Edition vaak de standaard is. Bij onze overheidsklant zijn hier een aantal uitdagingen bij komen kijken. Allereerst de performance. Er werd per server maar één runtime geïnstalleerd, die verdeeld moest worden over alle applicaties die op de server draaiden. Hierdoor ondervond de klant regelmatig performance problemen. Als één van de applicaties een probleem ondervond, ervaarden alle andere applicaties dit ook.

Daarnaast was er een gebrek aan flexibiliteit om te kunnen voldoen aan de organisatiestructuur van de klant. Ze hebben te maken met meerdere interne klantdomeinen, die gekoppeld zijn aan ActiveMQ. Doordat ActiveMQ gekoppeld is aan een heel domein konden andere Mule applicaties op dit domein, die geen gebruik maken van ActiveMQ, niet bereikt worden.

Doordat er in het algemeen geadviseerd wordt om slechts één runtime te installeren per server, moesten er steeds nieuwe servers worden aangevraagd als een interne klant een upgrade naar een nieuwe runtime wilde uitvoeren. Dit zorgde voor lange doorlooptijden – soms tot wel 6 maanden. Daarnaast was het hele landschap gebonden aan een bepaalde MuleSoft runtime versie.

Er ontstond een sterke behoefte aan flexibiliteit voor het technisch platform en het applicatiebeheer team, zodat zij met de groeiende vraag vanuit de organisatie mee konden schalen. Wij hebben een oplossing gevonden die ervoor zorgt dat het beheerteam in een korte tijd een applicatie kan uitrollen, onafhankelijk van op welke runtime de applicatie draait – zodanig dat de applicatie zo min mogelijk performance problemen zou veroorzaken voor andere applicaties.

De oplossing: MuleSoft Containers

Wij hebben voor deze klant een ontwerp gemaakt van een MuleSoft Dockercontainer, waarin zoveel mogelijk variabelen naar wens geconfigureerd kunnen worden. Dit ontwerp omvat onder andere de variabelen van de applicatiecode, de runtime, de applicatie properties, de benodigde certificaten en de resources parameters (CPU/RAM).

Door middel van een CI/CD (Continuous Integration/Continuous Development) tool, in dit geval Jenkins, wordt er een pipeline afgespeeld die ervoor zorgt dat de variabelen geconfigureerd kunnen worden in de container en het container management platform. Jenkins haalt de MuleSoft Runtime, de ontwikkelde applicaties en de bijbehorende configuraties (properties) op en maakt hiervan de nieuwe container. Vervolgens praat Jenkins met Kubernetes om de container succesvol te deployen, met de bijbehorende configuraties, zoals het aantal containers en de grootte (CPU/RAM). Het orkestreert het hele proces als spin in het web. Tot slot wordt in Kubernetes de orkestratie van alle containers uitgevoerd. Denk hierbij bijvoorbeeld aan de load balancing en het High Available uitvoeren van de applicaties.

De voordelen van deze oplossing zijn enorm:

  • Efficiëntie: Deze manier van werken bespaart een hoop manueel werk. Iedere keer als er een nieuwe applicatie naar productie moet, hoeft het team alleen nog de configuratie aan te passen. Vervolgens wordt de MuleSoft container met één druk op de knop gebouwd. Hierdoor is het beheerteam in staat om binnen 10 minuten (na configuratie) een applicatie te hebben die draait.
  • Innovatie: Developers van de MuleSoft applicaties zijn niet meer gebonden aan de runtime die op de servers draait. Ze kunnen nu constant op zoek gaan naar betere oplossingen in een betere runtime, met de features van de laatste runtime release (net als op Cloudhub). Zo borgt deze klant haar innovatiekracht en kwaliteit.
  • Flexibiliteit: Het team heeft toegang tot alle functionaliteiten die Cloudhub ook biedt (uploaden van applicaties, resources toevoegen en vCores allocatie), maar dan on-premises. Daarnaast biedt dit het beheer team de mogelijkheid om met andere management tools als Istio te werken. De mogelijkheid om flexibel om te gaan met encryptie en certificaten is groter.
  • Schaalbaarheid: In de organisatie van deze klant moeten 80 applicaties geüpgraded worden. In plaats van dat alles tijdens één groot migratieproject overgezet moet worden, kan de organisatie de applicaties nu geleidelijk overzetten naar Kubernetes, zodat de klant uiteindelijk afscheid kan nemen van de on-premises services.
  • Uptime: Bij een traditionele on-premises upgrade moet eerst de oude applicatie verwijderd worden, voordat de nieuwe in de runtime gedeployd wordt. Dit veroorzaakte altijd een aantal minuten downtime. Bij het deployen van een nieuwe container applicatie zal er geen sprake meer zijn van downtime. Dit komt doordat Kubernetes automatisch eerst een nieuwe container opspant voordat de oude afgesloten wordt.

Resultaat

Door het hergebruik van de container template moet er bij het uitrollen van een nieuwe applicatie maar een aantal variabelen aangepast worden. De properties zijn variabel gemaakt in de Jenkins bouwstraat, waardoor je enkel nog de locatie waar de container de informatie vandaan moet halen, moet veranderen. De rest van de stappen zijn hetzelfde als in de on-premises server situatie en staan vastgelegd in het reeds bestaande script van de container. Het beheerteam van de klant hoeft nu slechts twee waarden aan te passen, waar zij voorheen handmatig alle componenten moesten ophalen en installeren. De herbruikbaarheid is dus enorm. Het team spendeert nu minder dan 10 minuten aan het uitrollen van een applicatie, in plaats van de 13 uur die het eerst kostte. Dit is een versnelling in time to market van 130x!

Daarnaast kunnen er bij het handmatig installeren van bijvoorbeeld runtime menselijke fouten worden gemaakt. Deze tijd is hier niet bij opgeteld. Bij een automatische installatie via de container, die alles installeert volgens een script (stappenplan), wordt elke deployment hetzelfde en automatisch (foutloos) uitgevoerd. Een mega bonus dus!

GLO &

MuleSoft Container Oplossingen

Contact

T: 030 7600 456
F: 030 7600 459
E: info@glo-integration.com

Kom bij ons langs

Computerweg 1
3542 DP Utrecht
Nederland