We are considering utilizing distributed OSGi in our enterprise environment.
We would have the following setup:
- 10 to 100 OSGi containers on many hosts offer various services.
- Many of these services are provided by more than one container.
- Some of these services may require being consistent across all containers (same version deployed).
What is the proper way to manage bundles' lifecycle (install, start, update, stop, uninstall) across all containers?
Several requirements:
- As there may be so many containers, all of them should be handled together; i.e. when I am about to update a bundle, a single command should update all containers where that bundle already present.
- Commands must be repeatable: first perform a command on test systems, and then repeat the exact same command on production system once testing is complete.
I appreciate any suggestion regarding the above question.
Best regards, Marton
You might want to have a look at more "managed" solutions made for cloud-like environments: Apache ACE or its bigger brother Amdatu.
Apache ACE turns a single OSGi Containers into managed containers whose state can be controlled from a single administration point. Amdatu is a more complete framework that includes ACE for provisioning but adds horizontal functionality.