A couple of weeks ago during the HashiConf, Otto was announced (check the official blog post here). It promises to be the successor to Vagrant. For me, this is quite an ambitious statement but I’m not surprised that HashiCorp, the same people that encourage you to treat your infrastructure as code, makes such a claim.
I believe that the work they are doing on programmable infrastructure is important for the market. Their tools empower companies of many sizes, allowing them to easily provision whole infrastructures and migrate environments from development to production. Additionally, HashiCorp’s work encourages healthy discussion in an area where things are not completely clear for everyone. The questions that arise during this discussion include:
- How do you consistently deploy your system to production?
- How do you make sure that new developers can have a consistent development & testing environment ready to use as soon as they start working at the company?
- What is the best way to keep your server security patches up to date? Is it even possible to transition without pain and hiccups from development to production?
- How do you migrate from one cloud provider to another without downtime? Is it even possible?
The more these questions are discussed, the more experiments and development is done around them. This leads to more and more companies and individuals testing out different solutions which in turn leads to more insights. As this happens, a clearer roadmap for how to use the tools emerges. (At Container Solutions, Terraform, Atlas, Vault and Consul are already embedded into our development process.)
It now looks like Otto will be integrated into what we do, not least because it answers a lot, if not all, of the questions above. Otto lets you develop your app (it uses Vagrant behind the scenes), build it into deployable units (Amazon Machine Image, Docker Image, etc.) and deploy it (to AWS for example), which of course makes the whole delivery process smoother.
Otto's documentation clearly explains how to install the CLI tool, set up a sample Ruby application, build an AMI image for it and finally deploy that image to Amazon EC2. It's worth mentioning that Otto comes with a built in detection system that will try its best to guess what kind of project you're trying to set up to help you get started as quick as possible.
Exciting times. Have fun with Otto - we did! - and come back later for more updates.