Mifos Docs

DevOps Tooling for Deployment

DevOps tooling for the deployment of the platform and Payment Hub EE.
This page describes the DevOps tooling for the deployment of the platform and Payment Hub EE.

Kubernetes and Helm Charts

The Payment Hub EE is deployed using Helm charts (the Kubernetes package manager, see https://helm.sh/). For a successful deployment users needs a basic understanding of how Helm charts work in general.
The Payment Hub EE is supported on Kubernetes clusters running on Microsoft Azure by default. For deploying to other k8s clusters, the Azure Container Registry authentication needs to get configured, following the documentation here: https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-kubernetes.
Zeebe command line tools (the zbctl binary) is also required for deploying the BPMN workflows. This is part of the Zeebe releases and can be downloaded from the Zeebe release page at https://github.com/zeebe-io/zeebe/releases.
Zeebe microservice orchestration engine includes:
  • Zeebe brokers
  • Gateway service
  • Elasticsearch
  • Kibana
  • Zeebe Operate monitoring UI
Certainly all these components have various Kubernetes objects (ReplicationSets, Services, Ingresses, etc). The Helm chart wraps all this complexity into a single package and allows a single-command deployment, as we will see very soon.
Key Feature of Zeebe
Workflow definition
BPMN 2.0, YAML - provides integrators with an easy to use tool to customize workflows
Visual workflow representation
Yes, BPMN workflows are both executable and have visual representation
State storage for active workflow instances
Stored on the machines running Zeebe using embedded RocksDB (no external storage required)
Horizontally scalable via partitions (no DB bottleneck)
Fault tolerance
Yes, via replication factor (3 node, 1 can fail, or 5 node and 2 can fail)
Supported programming languages
Ships with Java and Go clients, plus NodeJS, C# and Ruby clients available, using gRPC for the clients
Historic workflow data
Can be streamed to storage systems via exporters (Elasticsearch and Apache Kafka is available). Complete auditable log.

Terraform and Deployment

Terraform scripts are used to deploy to AWS and Azure.