github.com/dahs81/otto@v0.2.1-0.20160126165905-6400716cf085/website/source/intro/vagrant-successor.html.markdown (about) 1 --- 2 layout: "intro" 3 page_title: "The Successor to Vagrant" 4 sidebar_current: "vagrant" 5 description: |- 6 TODO 7 --- 8 9 # The Successor to Vagrant 10 11 Otto is the successor to [Vagrant](https://www.vagrantup.com). 12 13 The creators of Otto are also the creators of Vagrant. After working 14 on Vagrant for over six years, we've learned a lot and we believe Otto 15 is a superior tool for development plus so much more. Vagrant will still 16 fill an important role for some users, but for the majority of developers, 17 Otto will replace Vagrant over time. 18 19 While we believe Otto is a successor to Vagrant, Vagrant development will 20 continue for years to come. Otto is built on Vagrant, so improvements to 21 Vagrant will benefit Otto users as well. 22 23 ### Improvements Over Vagrant 24 25 **Application level vs. machine level configuration**. The Vagrantfile describes 26 the _machine_ for development. The Appfile in Otto describes the _application_. 27 The first thing you configure in a Vagrantfile is the box, which is the 28 machine image Vagrant uses. The first thing you configure in an Appfile is 29 the application type ("php", "ruby", etc.). Using this knowledge, Otto 30 automatically builds a development environment for that application type. 31 This environment can be further customized through more advanced Appfile 32 directives, but out of the box Otto usually just works. 33 34 **Dependencies as first-class feature**. In a modern microservice oriented 35 world, a Vagrantfile is a difficult mechanism to describe a proper development 36 environment. Multi-VM is too heavy for microservices, and you would have to 37 manually install the full dependency tree (including dependencies of dependencies) 38 to make a complete development environment. Dependencies are a first-class 39 feature in Otto. You only need to specify direct dependencies, and Otto 40 automatically installs and configures all dependencies, including 41 dependencies of dependencies. Even with hundreds of microservices, the 42 Appfile to configure Otto is simple, readable, and intuitive. 43 44 **Deployment**. Otto can deploy your application. Users of Vagrant for years 45 have wanted a way to deploy their Vagrant environments to production. 46 Unfortunately, the Vagrantfile doesn't contain enough information to 47 build a proper production environment with industry best practices. An 48 Appfile is made to encode this knowledge, and deployment is a single 49 command away. 50 51 **Performance**. We took what we learned from Vagrant, and optimized the most common 52 operations. For example, `vagrant status` is an operation that takes 53 several seconds. `otto status` finishes in milliseconds. 54 55 ### The Future of Vagrant 56 57 Vagrant is a mature, battle-hardened piece of technology. It has been 58 in use by millions of users for many years. We don't want to reinvent the 59 wheel, so we've taken the best parts of Vagrant and used them within Otto to 60 manage development environments automatically for the user. 61 62 Otto builds on top of Vagrant to make operations such as SSH take 63 milliseconds, automatically assign addresses, 64 and more. In addition to all the development environment features, Otto does a 65 lot more to enable deployment. 66 67 In addition to Otto using Vagrant, Vagrant will continue to be the best 68 tool for managing highly customized virtualized or containerized environments. 69 Vagrant is a great way to test configuration management, obscure operating 70 systems, etc. These use cases will not go away. 71 72 Due to the above, we're committed to continuing to improve Vagrant and releasing 73 new versions of Vagrant for years to come. But for the everyday developer, 74 Otto should replace Vagrant over time.