Deployment
How Does Mendix Support Staging & Deployment?
Staging and deployment are essential parts of the DevOps process, and having proper governance and controls in place allows developers to release new versions of their code rapidly.
Building this process can often be complicated, as it requires many moving parts. Mendix provides integrated tooling to support the staging and deployment of applications on Mendix Cloud and other IaaS providers such as AWS, Azure, OpenShift, and SAP BTP.
How Do I Build My Applications Before Deploying?
Before an application can be deployed, it first needs to be built. Building an application creates a deployment package that can be deployed on the platform of your choice.
There are multiple ways to build a deployment package for your application. For all deployment options that are connected to Mendix, you can use the Mendix Build Server. This will create a deployment package of your application in the cloud on Mendix infrastructure. The deployment process can be started manually from the Mendix platform, or it can be triggered using APIs. This allows you to embed the build process in your automated CI/CD deployment pipeline.
For deployment options that are not connected to the Mendix platform, you can use the MxBuild command-line tool to build a deployment package for your application locally. The MxBuild process can be embedded in your automated CI/CD deployment pipeline.
You can also manually start the build of a deployment package in Studio Pro. This will create a deployment package of your application on your development machine, to be used on the deployment option of your choice.
How Do I Deploy My Apps as Part of the Release Process?
A deployment package is required before deploying an application. The Mendix Build Server automatically builds and packages applications in the cloud. The Build Server generates a Mendix Deployment Archive (MDA), which contains all the relevant assets to deploy your application.
Once a revision of the application is created in the Deployment Package Repository, it can be staged into one of the available environments. The Mendix Portal allows you to do this with just a few clicks.
Development teams can fully automate this process by leveraging platform-native Mendix Pipelines or via their own CI/CD tools and services of choice. Mendix Pipelines is a Mendix-native capability aimed at making CI/CD low-code and accessible to all. Design your pipeline with a set of easily configurable pipeline steps, and sit back and enjoy the automation.
All deployment activities on the Mendix Platform are logged and visible in the Mendix Portal. You can review the activity log for each environment to identify the user who ran the operations on your app’s environments.
How Flexible Are Mendix Pipelines?
Pipelines were built with flexibility and simplicity in mind. Pipelines can be designed by using a set of easy-to-use configurable pipeline steps, such as Checkout, Build, Deploy, and Backup. The steps can be added and deleted as per the project team’s needs. Mendix also provides a pipeline template that builds and deploys to the test environment to help users get started quickly.
Pipeline steps are built in a modular fashion, so each step takes input parameters, runs its actions, and results in output parameters. The output of one step can be used in another one by the use of variables.
For example, the Publish step publishes the Package Id of the deployment package and the Deploy step can use $Publish.PackageId to reference this. The option to configure steps using variables unlocks further flexibility. So don’t wait, design your pipeline now.
How Can I Trace Released Changes Back to Requirements?
When you commit the changes you have made to your app model in Mendix Studio Pro to the Team Server, you can mark the relevant user story from your active Sprint. This cross-referencing metadata is stored in the Mendix Team Server so you can trace the changes back to the requirements later in the development process. For more details, see Version Control.
How Many Environments Can I Provision for My Apps?
In Mendix Cloud, environments are provisioned to allow for staged deployment. Most application nodes come with either two environments (acceptance and production) or three environments (test, acceptance, and production). For Premium customers, the Mendix platform supports adding further environments to fit with your DevOps process.
What Controls Are Available to Secure the Production Environments of My Apps?
In Mendix Cloud, you can configure access controls to specify which team members can view, deploy to, and manage each environment. This enables the segregation of responsibilities when deploying to different staged environments.
To deploy an application into a production environment, users must authenticate using two-factor authentication, either by authenticator app or SMS. The token changes every 30 seconds. Once authenticated, you will be able to perform operations in production for up to 8 hours, after which you will be required to authenticate again.
How Does Mendix Support Staging & Deployment to Other Platforms?
Besides Mendix Cloud, Mendix supports deployments on many different platforms, such as AWS, Azure, OpenShift, SAP BTP, and on-premises infrastructure. For details on all the deployment capabilities of the Mendix platform, see the Deployment Options page.