# DevOps Tooling for Deployment

This page describes the DevOps tooling for the deployment of the platform and Payment Hub EE.&#x20;

## 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&#x20;
* 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                            | Description                                                                                                             |
| ----------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| **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)                              |
| **Scalability**                                 | 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. |

&#x20;

## Terraform and Deployment

Terraform scripts are used to deploy to AWS and Azure.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mifos.gitbook.io/docs/payment-hub-ee/overview/deployment-models/devops-tooling-for-deployment.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
