The deployment of applications ensuring reuse, high-availability, and proper load balancing, requires applications to be divided into clustered micro-services, both at the service level - with load balancers - and at the data level - with a distributed computation platform.

These requirements pose certain challenges that you must consider if you are to ensure the success of your projects:

  • How to efficiently distribute workloads among your clustered applications?
  • How to ensure data consistency?
  • How to synchronize critical processes between your clustered applications?
  • How to update your applications without affecting the availability of your system?
  • How to monitor your applications in a cluster with a high number of instances?

After all, the goal of designing applications as a set of micro-services is to decouple high-level functionalities to allow reuse, facilitate upgrades, and perform selective scaling depending on, for example, whether a given micro-service requires more or fewer resources at a given time.

But, how can you do this with Mule applications on Kubernetes?

In this article we’ll give you some keys to join the productivity of Mule within the Spring Boot ecosystem, together with the distributed computation power of Ignite - and the Apache Ignite connector for Mule 4 or the GridGain connector for Mule 4 - as well as the container and service orchestration capabilities of Kubernetes.

Recently, we have released the library Spring Boot starter for Mule 4, which will allow you to run Mule’s Runtime as a Spring Boot application and provide you with the following features:

  • Easy deployment of Mule applications such as micro-services on Kubernetes or other container management platforms.
  • Deployment of Mule’s artifacts (applications and domains) stored in an external repository.
  • Deployment services for Mule’s artifacts through Spring boot REST controllers, in stand-alone mode.
  • Administration and monitoring of Mule runtime with Spring Boot Admin Server:
    • Manage the log level in a simple way.
    • View and download the log.
    • Memory and JVM metrics.
    • Interact with JMX-beans.
    • Show Mule’s health status and deployed applications.

image

Since we believe a picture is worth a thousand words, please take a look at these examples:

image

image

Conclusions

Deploying Mule 4 applications on Kubernetes along with Apache Ignite or GridGain will allow you to build systems that are highly productive and easily scalable: