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.