Alles wat je moet weten over Mendix deployment & hosting opties

Het gebruik van low code tools softwareontwikkeling is de laatste jaren sterk gegroeid. Applicaties bouwen met een low code platform zoals Mendix is populairder dan ooit. Mendix biedt veel voordelen voor organisaties die nieuwe IT-oplossingen nodig hebben, maar niet de middelen of het personeel hebben om de projecten uit te voeren. De snelheid van ontwikkelen, de mogelijkheid om software in weken in plaats van maanden op te leveren, met minder afhankelijkheid van softwareontwikkelaars, zijn veelgehoorde voordelen van Mendix (en low-code tools in het algemeen). Maar hoe zit het nu precies met de hosting van applicaties? Wat is ervoor nodig om applicaties, die zijn ontwikkeld met Mendix, in productie te nemen en te beheren? Heb je daar IT-personeel, servers en andere IT-infrastructuur voor nodig? In dit blog geeft Senior Consultant Steven Brusse je antwoord op die vragen en lees je welke opties Mendix biedt voor hosting en deployment van applicaties.

Mendix Cloud

Mendix biedt met Mendix Cloud een eigen PaaS-oplossing (platform-as-a-service) waar applicaties kunnen worden gehost. Mendix Cloud is gebouwd op infrastructuur van Amazon Web Services (AWS) en maakt gebruik van Cloud Foundry als tussenlaag voor het hosten van applicaties in containers.

Mendix Cloud wordt in twee smaken aangeboden. Ten eerste is er de standaard Mendix Cloud. Dat is een multi-tenant public cloud, waarbinnen elke organisatie een eigen account heeft. Binnen een account kunnen meerdere applicaties worden gehost. Ten tweede is er Mendix Cloud Dedicated. Dit is een cloudomgeving die is gereserveerd voor één organisatie (single-tenant). Zo’n omgeving wordt door Mendix op aanvraag aangemaakt in AWS en wordt vervolgens ook door Mendix beheerd.

Verreweg de meeste klanten van Mendix kiezen ervoor om applicaties in de standaard Mendix Cloud te draaien vanwege het gemak en het serviceniveau.

  • Het aanmaken van een omgeving en het deployen van een applicatie naar de omgeving is met een paar muisklikken geregeld.
  • Mendix garandeert 99,5 tot 99,95 procent uptime van applicaties in Mendix Cloud.
  • Backups worden automatisch gemaakt en bewaard in Mendix Cloud.
  • De beveiliging van applicaties wordt door Mendix Cloud verzorgd.
  • Als applicatiebeheerder heb je verschillende tools tot je beschikking om het gebruik van applicaties in Mendix Cloud te monitoren, logs te bekijken en alarmeringen in te stellen.
  • Je kunt de performance van applicaties tunen door een omgeving horizontaal of verticaal te schalen.

Om een applicatie naar de Mendix Cloud te deployen moet er eerst een omgeving voor de applicatie aangemaakt worden. Bij het aanmaken van die omgeving kies je zelf in welke regio de applicatie komt te draaien. Elke regio komt overeen met een AWS-regio en binnen een regio zijn er verschillende availability zones. Een availability zone komt overeen met een locatie van een AWS-datacentrum. Mendix Cloud is beschikbaar in regio’s verspreid over de hele wereld. Voor elke regio biedt de Mendix Cloud opties voor high availability (HA) en disaster recovery (DR), zodat je ervan verzekert bent dat jouw applicatie altijd beschikbaar is.

Mendix, Mendix Cloud, Architectuur

Mendix Cloud architectuur

Maar wat nu als je een Mendix-applicatie buiten de Mendix Cloud wil hosten? Is dat mogelijk? Het antwoord daarop is ‘Ja’. Door de architectuur van Mendix is het heel goed mogelijk om een applicatie op een ander cloudplatform te laten draaien. Het is zelfs mogelijk om een Mendix-applicatie te laten draaien op servers die je zelf beheerd (on-premise). Meer hierover lees je verderop in dit blog.

Waarom elders hosten?

Voordat we ingaan op de mogelijkheden voor hosting buiten de Mendix Cloud, is het goed om stil te staan bij de vraag waarom je dit zou willen.

  • Een van de meest voorkomende redenen is de strategische beslissing om een specifieke cloudprovider als standaard voor IT-oplossingen te adopteren binnen een organisatie.
  • Een andere reden kan zijn dat de data, die zijn opgeslagen in een applicatie, het interne bedrijfsnetwerk niet mogen verlaten vanwege beleid en/of regelgeving op het gebied van dataopslag en beveiliging.
  • Het kan ook zijn dat een applicatie moet integreren met andere systemen die niet vanuit de Mendix Cloud kunnen worden benaderd.
  • Tot slot kunnen de kosten een reden zijn om applicaties buiten de Mendix Cloud te hosten. Als je verwacht dat het gebruik van een applicatie binnen korte tijd aanzienlijk zal veranderen, zijn er andere hostingoplossingen die kostenvoordelen kunnen bieden ten opzichte van Mendix Cloud.

Voor alle hierboven genoemde scenario’s heeft Mendix alternatieve opties voor hosting en deployment. Welke dit zijn lees je hieronder.

Public of Private Cloud

Mendix biedt de mogelijkheid om applicaties te hosten in een public cloud van één van de bekende cloudproviders (Microsoft, Amazon, Google), of in een private cloud op infrastructuur die is gereserveerd voor één organisatie. Het maakt eigenlijk niet uit wat voor cloudomgeving het is, zolang die omgeving ondersteuning biedt voor het draaien van gecontaineriseerde applicaties.

Weet je nog niet wat de begrippen ‘containers’ en ‘gecontaineriseerde applicaties’ precies betekenen? Op de website van Microsoft vind je meer informatie hierover.

Er zijn twee typen containerplatforms waarop Mendix-applicaties kunnen draaien: Cloud Foundry en Kubernetes. Beide platforms zijn zo’n 10 jaar geleden als open source project gelanceerd met als doel om applicaties in containers op schaalbare infrastructuur in de cloud te laten draaien. Een groot voordeel van dit soort containerplatforms is dat de infrastructuur (servers, opslag, netwerk, load balancers, etc) automatisch kan op -en afschalen op basis van het gebruik van een applicatie. Wanneer het gebruikersverkeer van een applicatie sterk fluctueert kan een containerplatform kostenbesparingen opleveren en tegelijkertijd garanties bieden voor een stabiele performance en hoge beschikbaarheid. Tegenwoordig wordt deze technologie door alle grote cloudproviders aangeboden als clouddienst.

Cloud Foundry

Mendix Cloud gebruikt onder water Cloud Foundry voor het hosten van gecontaineriseerde applicaties. Hetzelfde geldt voor SAP Business Technology Platform (SAP BTP) en IBM Cloud Platform. Mendix werkt al een aantal jaar nauw samen met SAP en IBM voor integraties met het Mendix-platform en dat verklaart waarom applicaties relatief eenvoudig gedeployed kunnen worden naar SAP BTP en IBM Cloud. Dit kan voordelen bieden voor organisaties die al gebruik maken van de cloudomgeving van SAP of IBM. Vanuit de Mendix Developer Portal kan een koppeling met SAP BTP en IBM Cloud ingesteld worden. Als dat is gedaan is het deployen van je applicatie naar SAP BTP of IBM Cloud net zo makkelijk als het deployen naar Mendix Cloud (1-click deployment).

Kubernetes

Kubernetes is de laatste jaren de standaard geworden voor organisaties die zelf een schaalbaar containerplatform in de cloud willen optuigen voor het hosten van hun applicaties. Kubernetes is echter complex en de specifieke kennis die nodig is voor het inrichten van een Kubernetes cluster (en de onderliggende infrastructuur) hebben de meeste organisaties niet in huis. Om die reden wordt er vaak gebruik gemaakt van een Managed Kubernetes Service, zoals Azure Kubernetes Service van (AKS), of Amazon Elastic Kubernetes Services (ECS). Deze clouddiensten maken het gebruik van Kubernetes veel toegankelijker, omdat je je als klant niet druk hoeft te maken over het aanmaken, configureren en beheren van een Kubernetes cluster. Deze complexe taken worden door de cloudprovider op de achtergrond uitgevoerd, terwijl jij je kan richten op het ontwikkelen van de applicatie.

Om een Mendix-applicatie naar Kubernetes te deployen moet er een Docker image van de applicatie gebouwd worden. Dit kun je zelf doen met de Docker Buildpack van Mendix (een open source tool die beschikbaar is op GitHub). Het image moet vervolgens geüpload worden naar een container registry (bijvoorbeeld Azure ACR, of Amazon ECR) en vandaar kan het image naar een Kubernetes cluster gedeployed worden. Het hele proces van het bouwen van een image, het uploaden van een image naar een container registry en het deployen van een image naar Kubernetes kan geautomatiseerd worden met behulp van CI/CD pipelines.

Met Mendix for Private Cloud biedt Mendix de mogelijkheid om applicaties naar een Kubernetes cluster te deployen via de Mendix Developer Portal. Dit kan een cluster zijn ergens in een public cloud, private cloud, of lokaal netwerk, zolang het cluster maar te benaderen is via het internet. Hiervoor moeten er twee softwarecomponenten van Mendix geïnstalleerd worden in het cluster, namelijk de Mendix Gateway Agent en de Mendix Operator. De Gateway Agent zorgt voor de veilige communicatie tussen Mendix Developer Portal en het cluster. De Operator zorgt ervoor dat de applicatie naar Kubernetes wordt gedeployed. Vanuit de Mendix Developer Portal kan vervolgens een koppeling met het cluster ingesteld worden. Als dat is gelukt is het deployen van je applicatie naar het cluster net zo makkelijk als het deployen naar de Mendix Cloud. Ook het monitoren van beheren van applicaties, die in het cluster draaien, kan dan vanuit de Mendix Developer Portal gedaan worden.

On-premises

Als deployment naar een cloudomgeving niet jouw voorkeur heeft, of simpelweg geen optie is, dan heb je nog de keuze om Mendix te installeren op eigen servers. Bij deze meer traditionele setup heb je een webserver, databaseserver en een applicatieserver nodig. De applicatieserver is een virtual machine (VM), of een fysieke server, waarop je software van Mendix moet installeren, om precies te zijn de Mendix Service Console en de Mendix Server Distribution. De Mendix-software kan op zowel Windows als Unix geïnstalleerd worden. Daarnaast moet de Java Runtime Environment (JRE) op de applicatieserver geïnstalleerd worden, omdat een Mendix-applicatie in een Java Virtual Machine draait. Als dit is gedaan kun je een deployment package van jouw applicatie kopiëren naar de VM en installeren in de Mendix Service Console.

Conclusie

Mendix is zeer veelzijdig qua inzetmogelijkheden. Mendix is een cloud-native platform en daardoor kunnen applicaties, die zijn gebouwd met Mendix, gehost worden op vrijwel elk cloudplatform op de markt. Zelfs voor organisaties die bewust de overstap naar de cloud (nog) niet hebben gemaakt is er de mogelijkheid om applicaties te hosten op on-premise infrastructuur.

Houd er wel rekening mee dat een implementatie buiten de Mendix Cloud extra werk van eigen IT-personeel vergt. Je zult zelf de nodige maatregelen moeten nemen om de omgeving voor een applicatie up-to-date, veilig en maximaal beschikbaar te houden. Ook het monitoren van de applicatie en de resources waarop de applicatie draait zul je zelf moeten regelen.

Voor de meeste organisaties is de Mendix Cloud de beste oplossing die het meeste gemak biedt voor het hosten van applicaties. Mendix Cloud is een zeer stabiele en veilige hostingomgeving die volledig voor jouw wordt beheerd door Mendix.

Zelf aan de slag met Mendix?

Ben je geïnteresseerd in de mogelijkheden van Mendix? Wil je zelf ervaren hoe snel een werkende applicatie kan worden gerealiseerd in de Mendix Cloud? Je kunt zonder licentiekosten aan de slag met het bouwen en deployen van een applicatie naar een Sandbox-omgeving in de Mendix Cloud. Wij kunnen je daar natuurlijk bij helpen. Neem contact met ons op voor meer informatie over de mogelijkheden.

Neem contact opPlan een afspraak in

Geschreven door Steven Samuels Brusse,
Senior Consultant