Holmes Component Upgrade Strategy

Holmes mainly comprises two sub-modules: the rule management module and the engine management module. The container of the rule management is stateless, while that of the engine management module is stateful. But the status of the engine management module is controlled by the rule management module. In other words, the engine management module does not have to care about its own status, which makes it not have to interact with the database directly.

For now, what may cause impacts by an upgrade is the change of the database tables. By so far we have not run into issues or requirements that need database modifications. If there are such kind of issues/requirements, we may try our best to make the changes backward-compatible. So basically, if you want to upgrade Holmes, what you have to do is to simply replace the old docker images directly and start the corresponding containers.