Automating development environments and deployment with Otto


Infrastructural Measures

The middle project section of Listing 1 uses the name setting to assign the application to a project. The idea is to allow developers to group applications according to a particular project in the future; however, Otto does not evaluate the setting in version 0.1.2.

Otto summarizes the desired cloud and the resources required in the cloud under the umbrella term infrastructure . The selection can be given an arbitrary name in this section by setting the infrastructure tag (e.g., my-infrastructure in Listing 1).

Whereas the type line defines the target system in the infrastructure section you just named in the project section, flavor selects the variant. Each infrastructure exists in various flavors. Otto v0.1.2 has two flavors for the AWS cloud: simple and vpc-public-private. By default, the tool uses the simple variant, which means the virtual machine makes do with the smallest possible resource set in the cloud.

In contrast, the vpc-public-private variant automatically sets up a private subnet, which makes the web application easier to scale, but also more costly to run. In Listing 1, the web application will run on a single virtual server (flavor = "simple") in the Amazon cloud (type = "aws").

Finally, a customization keyword lets you influence the development environment and follows the application type: in the example here, this is a Ruby application. The supported settings depend on the programming language. Listing 1, for example, stipulates that you need Ruby version 2.1.

Otto does not evaluate a modified or new Appfile until you call otto compile. You then may need to destroy the current development environment (otto dev destroy) and create a new one (otto dev). The developers are trying to sell this recompiling process as a feature; after all, members of a development team can make changes to the Appfile without it influencing the running development environment.


Otto makes you want to come back for more: Just a handful of commands let you set up a development environment and deploy the finished application in the cloud. Under the hood, well-known and proven tools such as Vagrant handle the hard work.

Of course, you can tell that Otto is at a very early stage of development. The biggest problems in version 0.1.2 were faulty resolution of dependencies and restriction to the Amazon cloud. The good documentation contains many promises for future versions on the roadmap [1].

However, even if the current version of Otto is not production capable, friends of DevOps in particular will want to keep a close eye on the system and follow its future development – after all, Otto will be replacing Vagrant in the long term if everything goes to HashiCorp's plans.

The Author

Tim Schürmann is a freelance computer scientist and author. Besides books, Tim has published various articles in magazines and on websites.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus