Mendix for Private Cloud Operator
Mendix for Private Cloud is based on the Kubernetes native operator framework. The Mendix Operator encapsulates the institutional knowledge needed to manage all the operational aspects of Mendix app environments inside a Kubernetes-based private cloud. These would otherwise typically be carried out by SREs or DevOps engineers spending a great deal of time manually re-running sequences of commands.
Technically, the Mendix Operator is an application-specific controller that extends the Kubernetes APIs to create, configure, and manage Mendix apps on behalf of the Kubernetes user. It builds upon the basic Kubernetes resource and controller concepts, but includes Mendix-specific knowledge to automate common tasks such as:
- Provisioning app environments: allocating the required resources to run a Mendix app, such as database, file storage, or networking.
- Automating build and deployment: creating an OCI (Open Container Initiative) image as the result of combining a MDA (Mendix Deployment Archive) and a base image supplied by Mendix. This OCI app image is pushed to the image registry available to be used later in deployment.
- App metering & logging: exposing app metrics in Prometheus format ready to be gathered from the app pod by any Prometheus-compatible tool. App logs are channeled to the standard output so any log aggregator can collect them directly.
- Horizontal scaling: scaling the Mendix app up and down based on the specified number of replicas, implementing data consistency and traffic switching.
The Mendix Operator leverages the peripheral infrastructure services available to your Kubernetes-based private cloud so it can fulfill the above tasks when needed. The Mendix Operator supports different ways of interacting with your infrastructure to get the balance of automation and control which is right for your organization.
Helm is a package manager which shares reusable recipes for installing things in Kubernetes. The Mendix Operator, on the other hand, implements a Kubernetes design pattern that encapsulates Mendix knowledge for running Mendix applications.
These different technologies share common terms, such as “installation”, “management”, and “lifecycle” but their approach and scope is different. The key difference is in the level of automation. Here the Mendix Operator goes further. It aims to capture the deep knowledge of the human operator who manages Mendix apps, monitoring how the system behaves and reacting accordingly to improve it in case of issues.
To do this, the Mendix Operator automates repeatable tasks specific to Mendix that Kubernetes doesn’t provide natively, Using Helm would require a higher level of expertise in both Mendix and Kubernetes to perform the same activities, meaning more time spent on manual inspections and the re-running of commands. The inefficiencies caused by this error-prone and manual approach will worsen incrementally as your app landscape grows.
Mendix for Private Cloud is a solution that uses Mendix’s experience of working with multiple containerized technologies and supporting customers in different cloud environments. On that journey, Mendix has delivered other solutions, one of these being the Mendix (Mx) Docker Buildpack, which has been adopted by several customers.
So, what are the differences between the Mx Docker Buildpack and the Mendix Operator.
The major difference is the purpose. Whereas the Mx Docker Buildpack is a Dockerfile which only creates Docker app images and can be used as part of an automated or manual release process, the Mendix Operator is a component that, installed in Kubernetes, can operate multiple app runtime environments across their lifecycle. This includes the creation of the app image, as performed by the Mx Docker buildpack, but also includes app deployment, environment provisioning, and horizontal scaling.
The app images produced by the Mx Docker Buildpack can run any OCI-compatible orchestrator platform whilst the Mendix Operator is based on the Kubernetes Operator framework and extends the automation capabilities of a Kubernetes-based cluster. See Supported Providers for more information on which providers are supported by the Mendix Operator.
The following diagram details the level of automation provided by of both solutions and which stage of the app environment lifecycle they support:
See the Private Cloud documentation for more information on Mendix for Private Cloud.
The Docker Buildpack documentation explains more about the Mx Docker Buildpack