github.com/dahs81/otto@v0.2.1-0.20160126165905-6400716cf085/website/source/docs/concepts/foundations.html.md (about)

     1  ---
     2  layout: "docs"
     3  page_title: "Foundations"
     4  sidebar_current: "docs-concepts-foundations"
     5  description: |-
     6    A foundation is what Otto considers to be a fundamental building block
     7    of a real infrastructure. Otto comes built-in with many foundations that
     8    are automatically setup for you.
     9  ---
    10  
    11  # Foundations
    12  
    13  A foundation is what Otto considers to be a fundamental building block
    14  of a real infrastructure. Otto comes built-in with many foundations that
    15  are automatically installed and configured for you.
    16  
    17  Examples of foundations are: service discovery, security, scheduling, etc.
    18  More foundations will be added, changed, and removed as time goes on and
    19  the state of the art changes.
    20  
    21  These are core features of an infrastructure that have grown to become
    22  best practices within modern organizations. However, they're also usually
    23  complicated to deploy and operate. But with Otto, Otto installs, configures,
    24  and scales the foundations for you.
    25  
    26  ## Features
    27  
    28  Otto 0.1 uses foundations to make the following automatically happen:
    29  
    30  **Service discovery**. Dependencies are discoverable using DNS:
    31  `<appname>.service.consul`. For example, if your application depends on
    32  a PostgreSQL database, it will be available at `postgresql.service.consul`.
    33  Otto makes this all happen automatically.
    34  
    35  This is available both in development and production. In development,
    36  to access a dependency, you use DNS the same way.
    37  
    38  ## Future Foundations
    39  <a id="future-foundations"></a>
    40  
    41  In the future, Otto will add more foundations to enable more features:
    42  
    43  **Security**. Otto will install, bootstrap, and configure
    44  [Vault](https://www.vaultproject.io) automatically. Otto will automatically
    45  configure authentication for all applications so they can store and
    46  access secrets. Any required credentials (such as for databases) will be
    47  automatically requested from Vault and passed in to applications.
    48  
    49  The learning curve for this is usually very high, but with Otto, we can
    50  do it all automatically.
    51  
    52  **Scheduling**. Otto will install, bootstrap, configure, and scale
    53  [Nomad](https://www.nomadproject.io) to enable much faster deploys,
    54  auto-scaling, application failover, and more. This will happen transparently:
    55  you'll update your Otto version, update the infrastructure, run
    56  `otto deploy`, and notice that everything happened MUCH faster.
    57  
    58  Combining Otto with a scheduler foundation such as Nomad will also
    59  dramatically lower the cost of infrastructure since Nomad can enable
    60  much higher resource utilization, requiring less servers overall.
    61  
    62  ## Custom Foundations
    63  
    64  Foundations are internally architected in such a way to allow them to
    65  be configurable and replaceable. Otto 0.1 doesn't allow this functionality,
    66  but it will be exposed in a future Otto version.
    67  
    68  This will allow other projects to replace the built-in foundations and
    69  provide similar features.