Prime helped the customer to adapt its core product and become cloud-native by adding a provisioning layer and containerizing its solution. To support all business requirements for the new market, our team created the architecture and the design for the solution consisting of the following subsystems:
- POD (Performance on Demand) subsystem – responsible for provisioning, inventory, DNS management, VPN configuration, and Web portals.
- POD OpenStack Cloud Primary region – Customer primary tenant location, Retains customer virtual appliances, Terminates SSL VPN to the customer location (OpenVPN in a network namespace).
- Customer location – all the infrastructure that is being monitored resides there.
- POD DR (Disaster Recovery) region – Contains backup entities of POD and OpenStack control plane nodes, replicates all POD databases, and replicates the daily backups of customer data.
Docker containers on top of Microsoft Azure Cloud
The system needed to support deployment on Microsoft Azure Cloud. To achieve that, a project was approved for containerization and getting it working on top of a swarm. This was not an easy task as the monitoring system is an appliance that consists of many daemons and cron-driven executable that does not fit in Docker & containers philosophy.
For this reason, we added a new release process artefact – Docker image. We produced a continuous deployment pipeline to test and deploy the produced artefact on top of a swarm, Kubernetes and Mesos. We adopted further the image to be working on top of Docker swarm with Azure file (CIFS on top of NTFS with no Symlinks support). We were integrated with Docker and Docker community to change the Docker swarm kit to support container instantiation with permanent hostnames.