Skip to main content

9 min read

Everything you need to know about Mendix deployment & hosting options

Everything you need to know about Mendix deployment & hosting options

The use of low-code tools for software development has grown strongly in recent years. Building applications with a low-code platform such as Mendix is more popular than ever. Mendix offers many benefits for organizations that need new IT solutions but don't have the resources or staff to carry out the projects. Development speed, the ability to deliver software in weeks instead of months, with less dependence on software developers, are commonly cited benefits of Mendix (and low-code tools in general). But how exactly does application hosting work? What's needed to put applications built with Mendix into production and manage them? Do you need IT staff, servers, and other IT infrastructure for that? In this blog, Senior Consultant Steven Brusse answers those questions and explains what options Mendix offers for hosting and deploying applications.

Mendix Cloud

With Mendix Cloud, Mendix offers its own PaaS solution (platform-as-a-service) where applications can be hosted. Mendix Cloud is built on Amazon Web Services (AWS) infrastructure and uses Cloud Foundry as an intermediary layer for hosting applications in containers.

Mendix Cloud is offered in two flavors. First, there's the standard Mendix Cloud. This is a multi-tenant public cloud in which every organization has its own account. Multiple applications can be hosted within an account. Second, there's Mendix Cloud Dedicated. This is a cloud environment reserved for a single organization (single-tenant). Such an environment is created by Mendix in AWS on request and is then also managed by Mendix.

By far most Mendix customers choose to run applications in the standard Mendix Cloud because of the convenience and the service level.

  • Creating an environment and deploying an application to it takes just a few mouse clicks.
  • Mendix guarantees 99.5 to 99.95 percent uptime for applications in Mendix Cloud.
  • Backups are automatically made and retained in Mendix Cloud.
  • The security of applications is handled by Mendix Cloud.
  • As an application administrator, you have various tools at your disposal to monitor application usage in Mendix Cloud, view logs, and set up alerts.
  • You can tune application performance by scaling an environment horizontally or vertically.

To deploy an application to Mendix Cloud, an environment first needs to be created for the application. When creating that environment, you choose which region the application will run in. Each region corresponds to an AWS region, and within a region there are various availability zones. An availability zone corresponds to the location of an AWS data center. Mendix Cloud is available in regions spread across the entire world. For each region, Mendix Cloud offers options for high availability (HA) and disaster recovery (DR), so you can be assured that your application is always available.

But what if you want to host a Mendix application outside Mendix Cloud? Is that possible? The answer is 'Yes'. Thanks to Mendix's architecture, it's entirely possible to run an application on a different cloud platform. It's even possible to run a Mendix application on servers you manage yourself (on-premises). You'll read more about this later in this blog.

Why host elsewhere?

Before we get into the options for hosting outside Mendix Cloud, it's worth pausing on the question of why you'd want to do this.

  • One of the most common reasons is the strategic decision to adopt a specific cloud provider as the standard for IT solutions within an organization.
  • Another reason could be that the data stored in an application isn't allowed to leave the internal company network due to policy and/or regulations around data storage and security.
  • It could also be that an application needs to integrate with other systems that can't be reached from Mendix Cloud.
  • Finally, cost can be a reason to host applications outside Mendix Cloud. If you expect the usage of an application to change significantly in the near term, there are other hosting solutions that can offer cost advantages compared to Mendix Cloud.

For all the scenarios mentioned above, Mendix has alternative options for hosting and deployment. You can read which ones below.

Public or Private Cloud

Mendix offers the ability to host applications in a public cloud from one of the well-known cloud providers (Microsoft, Amazon, Google), or in a private cloud on infrastructure reserved for a single organization. It doesn't really matter what kind of cloud environment it is, as long as that environment supports running containerized applications.

Not sure yet exactly what the terms 'containers' and 'containerized applications' mean? You can find more information about this on Microsoft's website.

There are two types of container platforms on which Mendix applications can run: Cloud Foundry and Kubernetes. Both platforms were launched as open source projects about 10 years ago, with the goal of running applications in containers on scalable infrastructure in the cloud. A major advantage of these kinds of container platforms is that the infrastructure (servers, storage, network, load balancers, etc.) can automatically scale up and down based on an application's usage. When an application's user traffic fluctuates strongly, a container platform can deliver cost savings while also providing guarantees for stable performance and high availability. Nowadays, this technology is offered as a cloud service by all major cloud providers.

Cloud Foundry

Under the hood, Mendix Cloud uses Cloud Foundry for hosting containerized applications. The same applies to SAP Business Technology Platform (SAP BTP) and IBM Cloud Platform. Mendix has worked closely with SAP and IBM for several years on integrations with the Mendix platform, which explains why applications can be deployed relatively easily to SAP BTP and IBM Cloud. This can offer advantages for organizations that already use SAP's or IBM's cloud environment. A connection with SAP BTP and IBM Cloud can be set up from the Mendix Developer Portal. Once that's done, deploying your application to SAP BTP or IBM Cloud is just as easy as deploying to Mendix Cloud (1-click deployment).

Kubernetes

In recent years, Kubernetes has become the standard for organizations that want to set up their own scalable container platform in the cloud for hosting their applications. However, Kubernetes is complex, and most organizations don't have the specific knowledge in-house that's needed to set up a Kubernetes cluster (and the underlying infrastructure). For that reason, a Managed Kubernetes Service is often used, such as Azure Kubernetes Service (AKS), or Amazon Elastic Kubernetes Service (EKS). These cloud services make using Kubernetes much more accessible, because as a customer you don't have to worry about creating, configuring, and managing a Kubernetes cluster. These complex tasks are carried out in the background by the cloud provider, while you can focus on developing the application.

To deploy a Mendix application to Kubernetes, a Docker image of the application needs to be built. You can do this yourself with Mendix's Docker Buildpack (an open source tool available on GitHub). The image then needs to be uploaded to a container registry (for example Azure ACR, or Amazon ECR), and from there the image can be deployed to a Kubernetes cluster. The entire process of building an image, uploading an image to a container registry, and deploying an image to Kubernetes can be automated using CI/CD pipelines.

With Mendix for Private Cloud, Mendix offers the ability to deploy applications to a Kubernetes cluster via the Mendix Developer Portal. This can be a cluster somewhere in a public cloud, private cloud, or local network, as long as the cluster is reachable via the internet. Two Mendix software components need to be installed in the cluster for this, namely the Mendix Gateway Agent and the Mendix Operator. The Gateway Agent ensures secure communication between the Mendix Developer Portal and the cluster. The Operator ensures that the application is deployed to Kubernetes. A connection with the cluster can then be set up from the Mendix Developer Portal. Once that's successful, deploying your application to the cluster is just as easy as deploying to Mendix Cloud. Monitoring and managing applications running in the cluster can then also be done from the Mendix Developer Portal.

On-premises

If deploying to a cloud environment isn't your preference, or simply isn't an option, you also have the choice of installing Mendix on your own servers. With this more traditional setup, you need a web server, database server, and an application server. The application server is a virtual machine (VM) or a physical server on which you need to install Mendix software, specifically the Mendix Service Console and the Mendix Server Distribution. The Mendix software can be installed on both Windows and Unix. In addition, the Java Runtime Environment (JRE) needs to be installed on the application server, because a Mendix application runs in a Java Virtual Machine. Once that's done, you can copy a deployment package of your application to the VM and install it in the Mendix Service Console.

Conclusion

Mendix is highly versatile in terms of deployment options. Mendix is a cloud-native platform, and as a result applications built with Mendix can be hosted on virtually any cloud platform on the market. Even for organizations that have deliberately not (yet) made the move to the cloud, there's the option of hosting applications on on-premises infrastructure.

Do keep in mind that a deployment outside Mendix Cloud requires extra work from your own IT staff. You'll need to take the necessary measures yourself to keep the environment for an application up to date, secure, and maximally available. You'll also need to arrange monitoring of the application and the resources it runs on yourself.

For most organizations, Mendix Cloud is the best solution, offering the most convenience for hosting applications. Mendix Cloud is a very stable and secure hosting environment that's fully managed for you by Mendix.

Get started with Mendix yourself?

Interested in what Mendix can do? Want to experience for yourself how quickly a working application can be built in Mendix Cloud? You can get started building and deploying an application to a Sandbox environment in Mendix Cloud without any license costs. We're of course happy to help you with that. Get in touch with us for more information about the possibilities.

Get in touchSchedule an appointment

Written by Steven Samuels Brusse,
Senior Consultant