Container orchestration in the embedded space lacks a good story and vision. This article explains where we currently are and what we have planned for the future.
Foundries.io has chosen Docker App as our container orchestration system for a few reasons:
The current version of Docker App integrated into the platform was done before the 0.9 version of Docker App was released. At that time it didn't handle pushing/pulling from Docker Registries very well and also required Docker Swarm which was being debated internally. A slightly awkward approach was chosen:
Docker App 1.0 will not include the "render" function currently used. However, its support of "app bundles" will work in a much better way. So the new approach will look like:
This will allow the LMP to drop docker-compose which is pretty slow on embedded systems and adds several megabytes of size to the image. Docker Swarm does have some benefits versus docker-compose including a much richer way to control application failures and there is also some thought within the Docker App project about making single node systems work without relying on Docker Swarm.
This does mean some legacy users might want to migrate their devices from the old Docker App style to this new style. Work is being planned to create a migration script or add an enhancement to aktualizr-lite that: