New Cloud Foundry-based Mendix Cloud Runs Globally on AWS
New Cloud Foundry-based Mendix Cloud Runs Globally on AWS by Jouke Waleson
At Mendix, we’ve been frontrunners in adopting cloud technology to offer our customers a seamless experience managing the full application lifecycle; from idea to operate in the cloud. As Mendix is all about time to value, we saw a need to quickly deploy production-ready applications, so we launched the Mendix Cloud. When we started building the Mendix Cloud there was no Docker, no Cloud Foundry, and AWS was in its infancy. We delivered the first versions with open source and home-grown technology. Today we’re taking the Mendix Cloud to the next level by leveraging the open source Cloud Foundry engine, as well as adding features such as high availability, global deployment, and application portability.
We’ve never communicated a Master Plan for the Mendix Cloud, but we’ve had one for the last 5 years. The general outline of this plan is:
- Launch an extremely stable platform based on current state-of-the-art technology
- Design the system in such a way that all apps adhere to cloud-native, 12-factor principles, to be compatible with future technology
- Wait for the cloud ecosystem to mature
- Launch a new version of the platform on next-gen infrastructure and migrate the applications
Today the final step is happening. We are launching the fourth iteration of the Mendix Cloud, our next-generation platform-as-a-service that has been two years in the making and leaps ahead of the competition. With the introduction of v4, we’re bringing some great features to our customers. Here’s how we did it and what it means for you.
High Availability For All Apps
Right from the beginning we’ve enforced some standardizations based on where we thought technology was going (as it turns out, we were right):
- Your app handles incoming http traffic: no tcp sockets, or other low-level interfaces
- Your app explicitly stores state in either the database or via the file document API, no persistent local file storage
Why would we want to restrict your app in any way? One of the central ideas of the Mendix Cloud is that innovation is included: we upgrade the platform while you sleep. In order for us to do this, we need to be able to pick up your app and upgrade it to newer versions of the platform at any time. The restrictions we enforce allow us to do this. They put us in control of how your app handles incoming traffic, stores its data, how to back it up and how to restore it. It’s a model that works extremely well for us and for our customers.
These restrictions also allow us to move file storage and the database to separately managed services and run the apps in stateless containers. In Mendix Cloud v4, we’ll use AWS S3 for file storage and AWS RDS to manage the databases. The stateless Mendix applications can be scaled horizontally for more performance and to bring High Availability (HA) to all apps running on v4. We will now offer three distinct classes of HA:
- Auto-Recovery – enabled for all apps, including the Community Edition. Your app will be relaunched on replacement infrastructure automatically within minutes.
- Horizontal Scaling/Resiliency – enabled in the Enterprise Edition. If you scale your app horizontally, traffic is processed by all runtimes concurrently. If one runtime goes down, your users seamlessly continue on other runtimes while the crashed runtime is automatically replaced.
- Multi-AZ – available as an option in the Enterprise Edition. In this case the database will have a warm-standby which automatically kicks in when requests to the primary database fail. The full Mendix application, both the runtime and the database, are spread out over multiple fully redundant availability zones within an AWS region. This option offers the best uptime and is part of a 99.95% uptime SLA.
Having High Availability is a game-changer for our users and easy to set up. Simply launch a Mendix 7 app and slide the number of instances to two or more. You get the freedom to divide the total amount of memory any way you like.
Global Deployment: Cloud Foundry & AWS
As part of our plan we’ve been keeping an eye on the larger cloud ecosystem. One of the core principles of Mendix is openness; we adhere to open standards as much as possible. Early on we noticed that the open source Cloud Foundry project aligned perfectly with both our preference for open standards and our vision of platform-as-a-service. It was also clear that Amazon Web Services kept innovating at a breathtaking pace. Once Cloud Foundry became the most adopted and mature standard, we decided to build our new platform on these key technologies. For Mendix Cloud v4, AWS provides the global infrastructure and Cloud Foundry delivers the application deployment engine on top of that.
We were quick to join the Cloud Foundry initiative and make use of the open source platform to deliver enterprise-class scalability and application resilience while keeping deployment flexibility. But we’re not just consumers: our R&D team is actively contributing to the Cloud Foundry project so that others can benefit from what we’ve invented for our cloud.
We are using the global footprint of AWS to launch Mendix Cloud v4 in the EU (Frankfurt) and the US (North Virginia). We’re going to activate more AWS regions based on customer demand.
One of the main advantages of Cloud Foundry is that it’s multi-cloud. It offers a standard way to deploy applications, whether it’s on AWS, Google Cloud Platform, Microsoft Azure, or to other Infrastructure-as-a-Service providers.
Your apps will now run on a Cloud Foundry engine. This ensures that you can just pick up your model, data, and configuration and migrate your app to any other Cloud Foundry based platform. You can read more about the Cloud Foundry Certified program at https://www.cloudfoundry.org/programs/. This website lists all the fully compatible providers, such as IBM Bluemix, Pivotal Cloud Foundry, GE Predix, HPE Stackato and SAP HANA.
If you’re curious about deployment to Cloud Foundry outside of the Mendix Cloud, make sure you read our tutorials on launching a Mendix app on any of the above Cloud Foundry providers.
The indirect benefit of the Mendix Cloud v4 for you is that the operational overhead is drastically lower than for v3. The level of automation inside the platform is simply staggering. This will lead to faster ticket resolution, more self-service features and most importantly, more time for the cloud team to develop new features.
One of the highlights is the use of AWS S3, which will completely remove the risk of running out of disk storage. S3 is a zero-touch, fully managed file store that’s a joy for our support and operations teams.
Migrating To V4
If you are using a Free App you’re already on v4. We’ve been running our entire Community Edition there for over a year to battle test the new platform. In the meantime we’ve added all the features from our Professional and Enterprise Editions to Mendix Cloud v4.
We will work with customers to migrate their apps from Mendix Cloud v3 to Mendix Cloud v4. In Q1 2017 we’ll make v4 the default for new apps. If you have specific reasons to use v3 (for example, if you have an existing VPN connection) you will still be able to launch new apps on v3. Although the migration from v3 to v4 is streamlined, it does require your app to be built with Mendix 6 or higher, so we will support apps that are currently on v3 for at least two more years.
The Mendix Cloud v4 is the next iteration of our Cloud offering. The main advantages over v3 are:
- High Availability for all applications, up to full Multi-AZ for the Enterprise Edition
- AWS S3 – flexible limits on file storage
- App Portability – easily migrate your apps to other platforms
- Global Deployment – place your app closest to your users and be compliant in where you store your data
Most importantly, we’ve laid the foundation for the next couple of years. In the coming months and years, we will continue to improve our state-of-the-art platform faster than ever, as we’ll bring you innovations by AWS, the Cloud Foundry community and Mendix R&D.