Welcome to the Convox Guide, a set of best practices for developing, deploying and automating an app on the Convox platform.
We built Convox to address the challenge of implementing and automating container-based deployment pipelines.
Our goal is to make it easy to build a simple and consistent workflow that’s easy for your entire development team to understand, use, and maintain.
The Convox CLI follows a philosophy of “Convention over Configuration” which leads to three simple commands to develop and deploy any app:
convox doctor– run checks to verify your app is portable from development to production
convox start– start a local development environment for your app
convox deploy– create and launch a cloud service architecture for your app
The Convox Platform follows a philosophy of “Integration Over Invention” which leads us to building the system on top of:
Convox imposes carefully considered constraints on your application to help you take advantage of the best features of these tools while avoiding common pitfalls. This guide serves as an outline to those constraints, as well as a bit of detail about the underlying reasons behind them.
The guide and tools are informed by the hands-on experience the team and community at Convox have gained by “Dockerizing” thousands of apps and deploying them to the AWS EC2 Container Service. Much of that experience is in turn based on years of hands-on experience working on and using the Heroku platform.
Modern codebases might already pass many of the verifications performed by
convox doctor. For those that don’t, this guide can help.
The five phases of software delivery
Container-based software delivery happens in five distinct phases, which can be thought of as a pipeline:
- Build portable images
- Run an app as a set of Services running on images
- Develop and verify changes to images interactively
- Deploy new images safely to production
- Automate additional verifications of images before production
This guide walks you through every key step of every phase. The companion tools do their best to automatically verify that your app adheres to these key concepts.
You will hit roadblocks where your app is deviating from these best practices–but you will hit these early on in the process and will be pointed towards likely solutions, which will save you endless frustrations in production.
If you haven’t already, install the Convox Command Line Interface (see Installation).
convox doctor to run the first checklist:
$ convox doctor ### Setup [✓] Docker running [✓] Docker version >= 1.9 [✓] Docker run hello-world works [✓] Convox CLI up to date
If you don’t have Docker installed,
convox doctor will point you to the Installing Docker Guide.
Now that you understand the five phases and have run your first checklist to test that your computer is set up, you can begin to build your app!