Deployment

Axon Ivy Engine Enterprise Editions support all available deployment methods. However, the application directory must be shared. In container environments, when using the official Axon Ivy Docker image, you need to provide a persistent volume for the application directory, which is by default located at /ivy/applications.

Container Image

You can also create your own container image based on the official Axon Ivy Engine image. To do so, include your Axon Ivy Application along with all required Process Model Versions (including old versions too) for runtime in the deployment directory /ivy/deploy. In this setup, there is no need to share the application directory across nodes.

FROM axonivy/axonivy-engine:12.0
ADD --chown=ivy:0 app.zip /ivy/deploy/app.zip

A CI/CD pipeline can look like this:

digraph overview { layout=neato; node [shape=box, height="0.8", width="2", color="#007095", style=filled, fixedsize="true", margin=0, fontname="Roboto,Helvetica Neue,Arial,sans-serif", fontcolor="white", fontsize=15 ]; /* nodes */ dockerhub [ label="Docker Hub", pos="2,7!", height="0.8", width="1.5"]; git [ label="Git Repository", pos="0,5.5!", height="0.8", width="1.5"]; build [ label="Build Server", pos="2,5.5!", height="0.8", width="1.5"]; dockerregistry [ label="Docker\nRegistry", pos="4,5.5!", height="0.8", width="1.5"]; /* this is a kludge, should be a subgraph but won't display as we'd like, so create the "subgraph" ourselves by positioning the elements */ cluster [ label="Axon Ivy Cluster", pos="6.5,5.5!", height="3.5", width="1.8", style="dashed", fontcolor="black", labelloc="t", fontsize=17]; engine1 [ label="Node 1", pos="6.5,6.4!", height="0.8", width="1.5", color="#C7D426", fontcolor="black"]; engine2 [ label="Node 2", pos="6.5,5.5!", height="0.8", width="1.5", color="#C7D426", fontcolor="black"]; enginespacer [label="...", pos="6.5,4.9!", height="0.8", width="1.5", shape=none, fillcolor=none, fontcolor=black]; enginen [ label="Node n", pos="6.5,4.3!", height="0.8", width="1.5", color="#C7D426", fontcolor="black"]; /* edges */ dockerhub -> build; git -> build; build -> dockerregistry; dockerregistry -> cluster; }

  1. The build server is cloning the Axon Ivy Projects from a SCM system like GitHub.

  2. The build server is building the Axon Ivy Projects and creating an application zip.

  3. The build server is creating a Docker image based on the official Axon Ivy Engine Image.

  4. The build server is publishing the image to an internal or external image registry.

  5. The container orchestration platform (e.g., Kubernetes) is deploying the new image to the cluster.