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.