MuleSoft is an integration technology provider that connects on-prem and SaaS applications through multiple deployment models including On-Prem, Cloud, Runtime Fabric and Hybrid. Depending on customer requirements, they can choose any of the deployment modes to host business solutions.
MuleSoft Anypoint platform is an Integration-Platform-as-a-Service provider (iPaaS), that helps an organization build, design and deploy APIs by integrating different applications data, devices and services.
Anypoint Platform is a combination of below components:
- Anypoint Design Center – Helps in designing APIs and Applications.
- Anypoint Management Center – Manages the application by applying the policies and providing access to applications.
- Anypoint Exchange – Acts as a source control management where APIs could be published, or policies from exchange may be imported into Anypoint Management Center or used as a repository for common artifacts across the enterprise for reusability etc.
- Mule Runtime Engine – Provides an environment for Mule applications to run.
First three components are considered as “Control plane” as they provide different platform services to build, design and manage the applications whereas the last component can be considered as “Runtime plane” because it provides environment for hosting an application.
Deployment options determine where control plane and runtimes exist.
CLOUDHUB DEPLOYMENT MODEL:
- Control Plane and Runtime Plane are in AWS (current IaaS provider)
- On-prem systems connectivity with mule application hosted in CloudHub can be established through VPN connectivity
- Secure communication
- Ability to configure a dedicated load balancer which enables some of additional features including organizations to host certificates, Mutual Authentication, SSL Termination and Custom Domains.
- CloudHub model off-loads the infrastructure management to MuleSoft environment, while the customer may focus on the functionality and deployments
- Blue-Green deployment model is used to reduce application unavailability during upgrades
- Vertical and horizontal scalability is out-of-box configuration, without infrastructure management.
- By default, MuleSoft license includes 1 Non-Prod VPC and 1 PROD VPC.
- VPC and VPN costs extra; if there is a need to configure multiple IP address, as each Anypoint VPC allows organization to have one VPN Gateway connection with one IP address.
- If the enterprise has security and compliance-related issues in processing data outside the organization, then CloudHub deployment model may not work.
- Domain Projects are not supported. (Because one worker can have only one mule runtime which can host only one application whereas for a Domain Project, we should have a run time which can host many applications).
- CloudHub only allows a 100 MB log size with a 30-day rolling limit.
HYBRID DEPLOYMENT MODEL:
In this model the control plane is hosted in CloudHub and Runtime Plane in hosted in data center or on-prem. The communication between Runtime plane and Control plane is done using Runtime Agent.
- This type of models is basically used when data should not be exposed outside of on-prem infrastructure
- For long-term projects, hybrid model can serve as a starting point for incremental movements into CloudHub
- As the applications are deployed on-prem, there is more flexibility in sharing of resources
- If there is any failure or downtime in cloud it does not affect the runtime application
- There is a predictable latency based on on-prem infrastructure setup
- Any upgrades or patches to the Mule Runtime, manual effort is needed to get on-prem environment up to date
- Scalability settings would require more customization
RUNTIME FABRIC DEPLOYMENT MODEL:
- Runtime Fabric deployment model is similar to on-prem model where the Control Plane is in the CloudHub and Runtime Plane on-prem but the deployment mechanism is different
- The Data Centre has a Kubernetes cluster which handles the jobs to spin-up or spin-down docker containers as-needed, and the Mule runtime is present as part of Docker containers
- Runtime can be hosted on different cloud service providers like AWS, AZURE. This gives flexibility in handling scalability based on customer’s preferred cloud provider
- Load Balancing is inherent to the Kubernetes cluster configuration; therefore, no separate specification is needed except the Kubernetes configuration files
- No downtime due to upgrades or any individual docker/pod failures
- As each mule runtime is present in individual containers there is no need of common domain to have the shared resources
- Patching and upgrades to the Runtime Engine should be done manually
ON PREMISE DEPLOYMENT MODEL:
- In this model Control Plane is hosted in CloudHub and Runtime Plane will be present on-prem or datacenter.
- In an on-premise environment, enterprises maintain all their data and are in full control.
- This type of model is used when organizations data and meta data cannot be shared out of the premise.
- Data will be not shared to anyone other than the organization internal systems.
- A Mule instance is able to run different versions of an application.
- High Availability of data through server groups and clusters.
- Patching and Runtime engine upgrade should be done manually.
- Need to purchase load balancer, licenses, all other needed hardware
- The organization needs to invest in upfront costs to build and maintain infrastructure teams
As seen from the above deployment options, the decision for setting up a Mule Runtime environment depends on the following factors
- Customer’s infrastructure
- Customer’s security policies and compliance
- Availability of infrastructure expertise
- Trade-offs between upfront costs or pay-as-you-use costs