New Mendix Support for Kubernetes Brings More Choice and More Control

Kubernetes Blog Background Image

At Mendix we have a deep commitment to leading the low-code market in cloud platform advancements, as well as to offering our customers the highest degree of both choice and control. We pioneered multicloud deployment of low-code apps and we are the only vendor to marry high productivity development with high control deployment management and a 100 percent cloud-native architecture. Today we’re excited to unveil the latest advancement of our cloud platform by announcing support for the Kubernetes open source container orchestration system. Let’s have a look at the Mendix cloud stack and what Kubernetes brings to the table.

Cloud-Native and Multicloud Architecture

Mendix was built from the ground up as a cloud-native app platform. And with Mendix 7, we introduced our next-generation cloud architecture, leveraging Cloud Foundry and Docker, to provide market-leading scalability, high availability (HA) and multicloud portability.

In 2014, we made the decision to not only integrate the Cloud Foundry (CF) interoperable Platform-as-a-Service (PaaS) framework into our cloud runtime architecture, but to join the Cloud Foundry Foundation and to become contributors—a commitment we continue to make. In fact, we remain the only low-code platform vendor to do so.

We made the decision to support Cloud Foundry for many reasons, not the least of which are the cloud portability CF offers and its support for massive scalability and continuous operation. In addition to the public Mendix Cloud—which runs on AWS in multiple regions and availability zones, and comes out-of-the-box with HA failover—you can also deploy the Mendix runtime on all CF-based PaaS platforms, including IBM BlueMix, Pivotal, and SAP Cloud Platform.

At the same time, we recognized that as broadly as CF has been embraced, Docker would further broaden our customers’ deployment options, allowing them to deploy on virtually any private cloud, virtual private cloud, or on-premises infrastructure. And that the importance and popularity of Docker will continue to rise as microservices and containerization become core technology strategies for many organizations. In fact, Mendix was the first low-code platform vendor to introduce Docker support for virtual private cloud deployment on AWS, and Azure, offering it to developers in November 2016. And we remain the only low-code vendor to do so.

Enter Kubernetes

With the popularity of containers on the rise and the desire to create containerization strategies that work for both developers and ops teams, the latest advancement in PaaS technology is the emergence of a de facto standard for the next layers above the container engine: container orchestration and scheduling. Why is this an important problem to solve? As Gartner puts it:

Docker is great for solving single-container problems, such as how to build containers (using the Docker tools and image format), how to run them (using the container runtime), and how to share and distribute containers (Docker Registries). But most applications are not encapsulated in a single container. Most have software packaged into multiple containers and use other services, such as the data stores, caches and load balancers in the diagram above. Unlike apps, containers are just processes that tend to have shorter life cycles. This means that in a containerized environment, there are many more life cycles to manage.”[i]

Figure 1. Kubernetes as Infrastructure for PaaS in a Container Technology Stack (Source: Gartner).

Kubernetes as Infrastructure for PaaS in a Container Technology Stack Chart

Container management systems have emerged as a solution to that challenge, with Kubernetes being the preeminent example. With Docker’s rise to ubiquity as a container engine, Kubernetes has rapidly followed as the container orchestration technology of choice. It provides a container management system that automates the deployment, scaling, and operations of application containers, including Docker, across clusters of hosts.

Originally developed by Google to underpin robust web-scale architectures while enabling continuous software delivery, today Kubernetes is an open source project embraced by many organizations—from commercial vendors to other open source initiatives to end-user organizations. Vendors such as Amazon, Google, IBM, Microsoft, Pivotal and Red Hat support Kubernetes today with others, such as Oracle, planning to move to it within the next year. Its broad adoption and unmatched momentum have quickly made Kubernetes the de facto standard for container orchestration.

Kubernetes in Mendix

Today, we are again advancing the state of the art for low-code cloud deployment options by supporting Kubernetes in Mendix. Customers can now deploy Mendix apps across Kubernetes-orchestrated server clusters via Docker containers built using the Mendix Docker Buildpack. For DevOps workflow, popular automation servers such as Jenkins and Gitlab CI can be used to build and deploy containers on the cluster. This means that customers can now enjoy the same ease of deployment and horizontal scalability associated with Cloud Foundry on any PaaS stack that employs Docker and Kubernetes. This includes commercial PaaS solutions and Container as a Service (CaaS) offerings, as well as frameworks that enterprises may assemble themselves using Docker and Kubernetes. In fact, we have customers doing just that for large application portfolios today.

Our Kubernetes support includes a set of how-to’s as well as a Jenkins/Kubernetes reference implementation running on Azure Container Services.                                          

Interoperability Creates More Choice

The broad adoption of Kubernetes is contributing to two significant and beneficial trends in the PaaS market:

(1) An increased degree of collaboration and interoperability across open source projects and commercial offerings.

(2) The unbundling of key capabilities of comprehensive PaaS frameworks.

Both trends are rapidly creating more choice for app development and deployment, as well as for balancing the tradeoffs between simplicity and control.

For example, Pivotal recently announced Pivotal Container Service™ (PKS), created in collaboration with VMware and Google. A commercially supported release of the open source Kubo project, PKS aims to simply deploying and operating Kubernetes in an enterprise environment as well as “a seamless mechanism” to migrate to Docker workloads to run On-Premises on VMware vSphere and Google Cloud Platform (GCP). This is both a great example of portability and interoperability within an open cloud-native infrastructure and yet another stack that Mendix is architected to deploy on.

 Another noteworthy example of interoperability and openness in the PaaS ecosystem is the Open Service Broker API. Supported within the Mendix platform, this API was created to make the service brokering functionality found in Cloud Foundry available independently. It allows applications to find and bind to platform-level services, such as message queues or databases. Providing this form of brokering in a cross-platform way is extremely powerful. Already Google and Microsoft have begun to expose their platform capabilities via the API, and the API has been adopted within OpenShift and Kubernetes.

These examples point to a rapidly growing global cloud ecosystem at the platform level. An ecosystem that allows each organization to mix and match capabilities as they see fit, and to balance simplicity and control in the manner that’s best for them.

A Full Spectrum of Cloud-Native Deployment Options

What makes this all keenly important is that not all organizations or all projects have the same deployment and operational requirements. For some, the simplicity of instant provisioning of a complete cloud stack, out-of-the-box support for elastic scaling and HA failover, and having the stack managed by Mendix will make the public Mendix Cloud highly attractive. For others, the option to assemble, deploy, and manage their own CI/CD and container stack using the likes of Docker, Kubernetes and Jenkins will be the most appropriate strategy. Others will opt for something in the middle: a CF-based or Docker/Kubernetes-based PaaS solution that allows them to pick where to deploy their low-code workloads while simplifying deployment and management. Regardless, our cloud-native architecture and support for the open cloud ecosystem give you the flexibility to make that choice.

For more information, visit our how-to’s and documentation.

[i] Gartner “How to Navigate the Container Orchestration Market”, Dennis Smith, Arun Chandrasekaran, Andrew Lerner, 24 June 2016