The Autopilot pattern moves all the orchestration responsibilities to the application itself. This approach enables the application to run independently without relying on an external orchestrator.
But what if you could have a Jenkins environment that is completely disposable, one that could be easily rebuilt at any time? Using Docker and Joyent’s ContainerPilot, the team at Care.com HomePay has created a production Jenkins environment that is completely software-defined. Everything required to set up a new Jenkins environment is stored in source control, versioned, and released just like any other software.
Mandy Hubbard explains how Care.com uses a customized, script-based startup process and Joyent’s ContainerPilot with a just few edits to a Docker Compose
_envfile to launch Jenkins in a Docker container. No configuration in the UI is required for Jenkins to start building. Simply run
docker-compose upand the environment is ready to go.
Michael demonstrated a “better solution”: a Dockerized Apache Kafka installation that uses Joyent’s ContainerPilot for scheduling. His solution – available at https://github.com/vescel – was developed with small-to-medium-sized environments in mind. It leverages the strengths of Kafka and Zookeeper while circumventing the weaknesses of both. And it makes microservices accessible, even for small companies.
Any and all of these containers can be scaled and all other containers will adjust automatically thanks to ContainerPilot.
Self-Orchestrating Micro-Services and Flexible Configuration with ContainerPilot
All the orchestration solution / scheduler has to do is run your containers, and the containers themselves will self-organize. As a solution provider ourselves, this features was a must-have. Our customers can deploy our AutoPilot containers, from publicly published images, with no changes, regardless of the orchestration system they use, and everything will just work. And if a customer changed from one orchestration system / scheduler to another, no changes would be required to any Synchro micro-service Docker images.
ContainerPilot is a great companion to StashBox. We can use the ContainerPilot preStart hook to process configuration, including potentially getting configuration from StashBox, before our application is launched (by ContainerPilot).
At Edgemesh we run our entire platform on Docker, and specifically we do most of the heavy lifting on the Joyent Public Cloud. We make heavy use of Joyent’s Autopilot Pattern which allows our containers to operate with a high degree of autonomy. We run our database systems inside the containers as well with on the metal performance via Triton. […]
But we do something which most people would find strange:
Every night we destroy every production container in every data center and redeploy the entire platform.
Yup. Every day.
ContainerPilot is more like DNA-based systems.