Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

First pass at new why-habitat #774

Merged
merged 5 commits into from
Jun 13, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion www/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -67,5 +67,5 @@ def layout_class
###
# Redirects
###
redirect 'about/index.html', to: 'about/habitat-genesis.html'
redirect 'about/index.html', to: 'about/why-habitat.html'
redirect 'docs/index.html', to: 'docs/overview.html'
6 changes: 4 additions & 2 deletions www/data/about_sidebar.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
sidebar_links:
- title: Why Habitat?
links:
- title: The Genesis of Habitat
link: "/about/habitat-genesis/"
- title: Overview
link: "/about/why-habitat/"
- title: Further Reading
links:
- title: What is a Modern Application?
link: "/about/what-is-modern-app/"
- title: Why Package the App and Its Automation Together?
Expand Down
2 changes: 1 addition & 1 deletion www/source/about/habitat-and-workload-placement.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Habitat - Habitat and Workload Placement
description: Habitat is agnostic about image formats. It can create Docker container images, Amazon Machine Images, Mesosphere packages or Heroku buildpacks.
---

h2 Habitat and Workload Placement
h1 Habitat and Workload Placement

p We assume that you've already read the previous articles in this series and
understand why intelligent application automation is important. In this
Expand Down
136 changes: 0 additions & 136 deletions www/source/about/habitat-genesis.html.slim

This file was deleted.

2 changes: 1 addition & 1 deletion www/source/about/what-is-modern-app.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -182,5 +182,5 @@ p Habitat provides much of the standard "plumbing" that developers need for
<hr>
<ul class="main-content--button-nav">
<li><a href="/about/why-package-automation-with-app" class="button cta">Next - Why Package the App and Its Automation Together?</a></li>
<li><a href="/about/habitat-genesis">Back - The Genesis of Habitat</a></li>
<li><a href="/about/why-habitat">Back - Why Habitat?</a></li>
</ul>
139 changes: 139 additions & 0 deletions www/source/about/why-habitat.html.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
---
title: Habitat - Why Habitat
description: An open source project created by Chef, Habitat is application automation.
---

h1 Why Habitat?

p Habitat exists to solve the problem of how we build, deploy, and manage
applications. As Marc Andreeesen declared in 2011, <a
href="http://www.wsj.com/articles/SB10001424053111903480904576512250915629460">"software
is eating the world"</a>. In every sector, in every industry, from small startups
to the largest of enterprises, we see software at the center of how we build and run
our companies, and how we interact with our customers. This shift forces us all to
become fast, efficient, software-driven organizations&mdash;or lose out to a competitor
who is.

img[src="/images/why-habitat/culture-people-technology.svg" style="margin-bottom: 2em; padding: 2em;" class="float-right small-12 medium-5"]

p This challenge is not simply technical. It is also organizational and it is cultural.
We have to change the way we work together, hand-in-hand with changing the
systems that enable us all. We need to build solutions that help create the culture that
enables us.


h2. What have we done so far?

p As an industry, we have designed our solutions to this problem either from
the perspective of the Enterprise, or the perspective of the Big Web
(Facebook, Google, Netflix, Twitter, etc.).

p When we start from the
Enterprise, we tend to build solutions that are too narrowly focused. Our
software becomes an example of
<a href="https://en.wikipedia.org/wiki/Conway%27s_law">Conway's Law</a> in action.
The deep silo-ing of responsibility present in most enterpries drives us to design
software specifically for one silo or another: we build security software, or we
build application deployment software, or we build configuration management software.
If we endeavour to escape this trap by designing solutions that cut across the silos,
we fall prey to another issue: we're forced to integrate into every silo's existing
software toolchain. The result tends to be systems that are deeply complex, and
very difficult to understand and operate&mdash;or worse, that are only as good as
their worst point of integration. It is difficult to escape the complexity of
the matrix between different eras of technology and deep silo-ing.

img[src="/images/why-habitat/enterprise-app-lifecycle.png" style="margin: 2em auto; max-width: 80%;" class="float-center"]

p When we look to the Big Web for inspiration, things look better. While each company
is different, they all share in the ability to deliver software efficently, safely,
at speed. They accomplish this feat by establishing a simpler, more standardized
infrastructure layer than their enterprise compatriots. On top of this, they build
a runtime that supports the applications they build, making it easy for their software
development teams to write new software, and streamlining their operations. It feels
intuitively right that we should look here, at least directionally, for the solution
to our problem.

p Yet two facts quickly arise that make this direction difficult
as a general-purpose solution. First, these companies all share one fundamental
truth: they controlled the destiny of their applications from day one. Unlike the
Enterprise, the Big Web wrote their software from scratch. This reality leads
naturally to the second truth: the platform they built <em>is</em> the business. If we
follow this path, we will have to re-write most of the software in the world to
target a specific runtime platform&mdash;one which, as of today, doesn't exist,
and has no analog in the big web, because each platform is different.

img[src="/images/why-habitat/best-app-lifecycle.png" style="margin-bottom: .5em; padding: 2em;" class="float-right small-12 medium-8"]

h2. Taking the application's perspective

p Habitat started by asking this question: if our goal is to quickly and safely
build, deploy, and manage applications, what would happen if we took the application's
perspective on the problem? Rather than starting from the Enterprise point-of-view,
or from the platform-centric view of the Big Web, what if we simply focused in on
what it means to be easy to build, easy to manage, and easy to deploy?

p We call the answer we found <strong>Application Automation</strong>. Our great discovery was simply
that the automation must travel with the application, rather than be provided by the
platform. Everything the application needs, from build dependencies, run-time
dependencies, configuration, dynamic topologies, deployment strategies,
secrets management, security auditing, and so on belongs with the application, because
we're doing it for the application. Runtime and infrastructure layers exist to
support the application, but the efficient building, deployment, and management
of the application are decoupled from those layers.

h2. Existing and Cloud Native Software: One management layer

p The result is that we can take an application, wrap it in a layer of application
automation, and the resulting package can be deployed on the infrastructure
or runtime that suits it best. If your application has hard requirements on physical
infrastructure (SAN settings, network topologies, GPUs, etc.), you can deploy it
there, and manage it the same way you manage the software that deploys on top of
a PaaS, or in a container.

img[src="/images/why-habitat/gossip-ring.png" style="margin: 2em 2em 2em auto;" class="float-left small-12 medium-6"]

h2. Packaging and Supervision

p Habitat accomplishes this by providing two main components: a robust,
safe, simple, and secure software packaging system; and a supervisor
which manages the lifecycle of the services declared in these packages. The packaging
layer creates immutable, atomic packages, which contain both the software and
all of its configuration options.

p The supervisor component is where the run-time magic happens. Each supervisor
can be joined with many others in a "ring", with the service it manages formed
together into service groups. These supervisors can then handle ensuring the
application has the correct configuration, has the right secrets, is in the
correct topology, coordinates dynamic software upgrades, and more.

h2. Avoiding the Production Cliff

img[src="/images/why-habitat/difficulty-curve-07.png" style="margin-bottom: 2em; padding: 2em;" class="float-right small-12 medium-7"]

p This architecture allows us to avoid the production cliff problem: the closer you get
to production, the more difficult it is. Rather than force the deployment of
more and more infrastructure and management software as you approach
production, operations teams can simply pass more options to the supervisor:
declaring the correct topology, update strategy, and configuration. Deploying
the application <em>is</em> deploying the automation&mdash;all of it.

h2. Try Habitat!

p We're proud of Habitat. We think it makes the software you already have better.
We also think it makes the runtime and infrastructure platforms you're moving to better.
Habitat is technology
that simplifies the complexity of how we build, deploy, and manage our applications;
empowers the teams that need to collaborate in order to deliver the future; and
accelerates the speed with which we can get a better experience out to our users.

p Don't take our word for it. #{link_to 'Try Habitat', '/try/index.html'} yourself,
right in your browser Or head over to the
#{link_to 'tutorials', '/tutorials/index.html'} and
#{link_to 'documentation', '/docs/index.html'}. Habitat is open source, so
if you would rather dive straight in, grab the source from
#{link_to 'GitHub', 'https://github.com/habitat-sh/habitat'}.

<hr>
<ul class="main-content--button-nav">
<li><a href="/about/what-is-modern-app" class="button cta">Next - What is a Modern Application?</a></li>
</ul>
2 changes: 1 addition & 1 deletion www/source/about/why-package-automation-with-app.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ title: Habitat – Packaging Automation with the Application
description: The need for automation motivates a central design principle of Habitat. The artifact used for deployment contains both the application and its automation.
---

h2 Why Package the App and Its Automation Together?
h1 Why Package the App and Its Automation Together?

p In the last article,
#{link_to '"What is a Modern Application,"', '/about/what-is-modern-app.html'}
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading