[Note: This blog post was originally published on the ICCLab blog here.]
Watchtower is built around a Microservices Architecture as a Cloud Native Application. It integrates several open source solutions: Apache Kafka, HP Monasca, Camunda, Rundeck. As of v1.0.0, it has six components of which four provide running services:
- watchtower-common — contains common, reusable, code for all watchtower components. It facilitates communication between components through common objects and provides Json serialization for them
- watchtower-monitoring — its primary role is to get, process, and forward events from the monitoring solutions to watchtower-workflow
- watchtower-automation — handles communication with automation engines
- watchtower-workflow — provides an interface between the workflow engine and the rest of watchtower’s components
- watchtower-workflow-camunda — is a component of watchtower which is deployed onto Camunda and contains both the BPM workflow and the REST service to which watchtower-workflow connects
Features contained by this release are:
- Ability to receive alarms from Monasca or raw Watchtower Events, process and forward them
- Basic workflow management with information persistence, identification of similar incidents, support for a human operator, and automation support
- Running jobs on Rundeck, retrieving their results, all of this however without sending job specific parameters
The current release is centered around the following workflow:
All source code along with installation instructions can be found on Github, each component having its own specific project. Additional watchtower components are under way, however they are not ready as this time.
In order to facilitate automated installation, we are working on having Ansible playbooks which will be available through ansible-galaxy.