# armonik is easy to deploy and administrate
ArmoniK is completely containerized : the middleware (runtime) is distributed as public docker images on DockerHub. We also provide an optionnal containerized worker that can run your computations through C# dynamic library loading. ArmoniK supports a deployment into Kubernetes so that your computationnal workflow takes advantage of Kubernetes properties. We provide terraform scripts to deploy ArmoniK in any Kubernetes to simplify its deployment. ArmoniK also needs a running database, a data storage and a message queue. Our terraform scripts are designed to optionally deploy those 3 services for you in Kubernetes. We even created a Powershell scripts that creates a WSL2 instance, installs k3s on it and ArmoniK with all its dependencies in k3s ready to use. Finally, we also provide terraform scripts to deploy a Kubernetes instance on AWS and install ArmoniK with its dependencies on it. Our terraform scripts also supports the use of AWS managed services for ArmoniK data storage and message queue with just a change in the configuration. Terraform can also be used to update ArmoniK and its infrastructure.
As an application running on Kubernetes, ArmoniK can be monitored and administrated as any Kubernetes application. ArmoniK logs can be sent to Seq, Cloudwatch or ELK depending on the configuration. A Grafana dashboard is also available for you as example of monitoring ArmoniK state over time. ArmoniK administration can be done through our GUI that provides you with the information on your running tasks, open sessions and the eventual errors that occured. This GUI helps you to monitor the status of your task and take action to stop them if needed.
---
Moreover, we provide terraform scripts that describe how the different containers are communicating with each other as well as with our database. These scripts can be executed to replicate this infrastructure on Kubernetes. They can even set up a Kubernetes on AWS for you !
Before deployment, you can change your configuration to tell terraform to choose which storage type you want to deploy. The storages can be services deployed on Kubernetes (usually used for tests purposes on developper machines) or AWS managed services.
We also provide scripts to deploy ArmoniK locally on k3s (you still have to install k3s by yourself). We even provide a Powershell script that sets up WSL2 with k3s for you and install ArmoniK on it with terraform !
ArmoniK administration can be done through our GUI that provides you with the information on your running tasks, open sessions and the eventual errors that occured. This GUI helps you to monitor the status of your task and take action to stop them if needed. A Grafana dashboard is also available for you as example of monitoring ArmoniK state over time. Moreover, ArmoniK can also be monitored and administered as any Kubernetes deployed application. AWS services for monitoring such as CloudWatch can store your logs when ArmoniK is deployed on AWS. Finally, terraform brings an easy way of updating and managing ArmoniK through configuration files.
## Questions à addresser
Questions:
~~- le script permet d'installer un k3s puis c'est le process normal d'install qui se déroule ?~~
~~- comment on choisit si on a un stockage externe ou si c'est dans le kube ?~~
A la lecture, je pense qu'il faut un premier paragraphe dédié à la configuration. Le second consacré au déploiement en tant que tel en explicitant qu'on fournit actuellement plusieurs types de scripts :
- mise en place de l'environnement sur AWS
- mise en place de l'environnement sur WSL
- déploiement sur un kube existant
- Préciser ici que Terraform permet de gérer les màj.
Le dernier paragraphe dédié à l'administration avec 3 parties :
- monitoring système (comme n'importe quelle appli kube), parler ici de la potentielle intégration Cloudwatch ou ELK
- monitoring de l'état de la grille (grafana)
- administration (gui)
Est-ce que les scripts évoqués couvrent le déploiement sur Montparnasse ?