Skip to content

Commit 8743735

Browse files
author
Gabriel Monroy
committed
add getting started instructions, remove CRs fixes #45
1 parent 117b6d2 commit 8743735

1 file changed

Lines changed: 127 additions & 10 deletions

File tree

README.md

Lines changed: 127 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,131 @@ Deis is a Django/Celery API server, Python CLI and set of [Chef cookbooks](https
88
![Deis Graphic](https://s3-us-west-2.amazonaws.com/deis-images/deis-graphic.png)
99

1010
## What is Deis?
11-
Deis is an open source PaaS that makes it easy to deploy and scale LXC containers and Chef nodes used to host applications, databases, middleware and other services. Deis leverages Chef, Docker and Heroku Buildpacks to provide a private PaaS that is lightweight and flexible.Deis comes with out-of-the-box support for Ruby, Python, Node.js, Java, Clojure, Scala, Play, PHP, Perl, Dart and Go. However, Deis can deploy *anything* using Heroku Buildpacks, Docker images or Chef recipes. Deis is designed to work with any cloud provider, although only EC2 is currently supported.## Why Deis?##### Deploy anything
1211

13-
Deploy a wide range of languages and frameworks with a simple "git push" using [Heroku Buildpacks](https://devcenter.heroku.com/articles/buildpacks) or [Dockerfiles](http://docs.docker.io/en/latest/use/builder/). Use custom Chef layers to deploy databases, middleware and other add-on services.
14-
##### Control everything
15-
Choose your hosting providers. Define a "formation" with custom proxy and runtime layers. Scale nodes and containers independently. Manage the entire platform with a private Deis controller.
16-
##### Scale effortlessly
17-
Scale nodes and containers with a single command. Provisioning is transparent, container formations are rebalanced automatically and proxies are updated to re-route traffic without downtime.
18-
##### 100% Open Source
19-
Free, transparent and easily customized. Join the open-source PaaS and DevOps community by using Deis and complimentary projects like Docker, Chef and Heroku Buildpacks.## Getting Started
20-
Coming Soon!
12+
Deis is an open source PaaS that makes it easy to deploy and scale LXC containers and Chef nodes used to host applications, databases, middleware and other services. Deis leverages Chef, Docker and Heroku Buildpacks to provide a private PaaS that is lightweight and flexible.
13+
14+
Deis comes with out-of-the-box support for Ruby, Python, Node.js, Java, Clojure, Scala, Play, PHP, Perl, Dart and Go. However, Deis can deploy *anything* using Heroku Buildpacks, Docker images or Chef recipes. Deis is designed to work with any cloud provider, although only EC2 is currently supported.
15+
16+
## Why Deis?
17+
18+
##### Deploy anything
19+
20+
Deploy a wide range of languages and frameworks with a simple `git push` using [Heroku Buildpacks](https://devcenter.heroku.com/articles/buildpacks) or [Dockerfiles](http://docs.docker.io/en/latest/use/builder/). Use custom Chef layers to deploy databases, middleware and other add-on services.
21+
22+
##### Control everything
23+
24+
Choose your hosting provider configuration. Define a [formation](http://docs.deis.io/en/latest/gettingstarted/concepts) with your own proxy and runtime layers. Retain full root access to every node. Manage your platform with a private Deis controller.
25+
26+
##### Scale effortlessly
27+
28+
Scale nodes and containers with a single command. Node provisioning, container balancing and proxy reconfiguration are completely automated.
29+
30+
##### 100% Open Source
31+
32+
Free, transparent and easily customized. Join the open-source PaaS and DevOps community by using Deis and complimentary projects like Docker, Chef and Heroku Buildpacks.
33+
34+
## Getting Started
35+
36+
Before you get started, read about Deis core [concepts](http://docs.deis.io/en/latest/gettingstarted/concepts/) so you can answer:
37+
38+
* What is a [Formation](http://docs.deis.io/en/latest/gettingstarted/concepts/#formations) and how does it relate to an application?
39+
* What are [Layers and Nodes](http://docs.deis.io/en/latest/gettingstarted/concepts/#layers), and how do they work with Chef?
40+
* How does the [Build, Release, Run](http://docs.deis.io/en/latest/gettingstarted/concepts/#build-release-run) process work?
41+
* How do I connect a Formation to [backing services](http://docs.deis.io/en/latest/gettingstarted/concepts/#backing-services)?
42+
43+
*Please note: Deis is still under active development. It should not yet be used in production.*
44+
45+
Follow the steps below to install your own Deis platform on EC2. To complete the installation process, you will need [Git](http://git-scm.com), [RubyGems](http://rubygems.org/pages/download), [Pip](http://www.pip-installer.org/en/latest/installing.html), the [Amazon EC2 API Tools](http://aws.amazon.com/developertools/351), [EC2 Credentials](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html#set_aws_credentials_linux) and a Chef Server with a working [Knife](http://docs.opscode.com/knife.html) client.
46+
47+
Don’t have a Chef Server? [Sign up for a free Hosted Chef account](https://getchef.opscode.com/signup).
48+
49+
### 1. Clone the Deis Repository
50+
51+
$ git clone https://github.com/opdemand/deis.git
52+
$ cd deis
53+
54+
### 2. Configure the Chef Server
55+
56+
Deis requires a Chef Server. [Sign up for a free Hosted Chef account](https://getchef.opscode.com/signup) if you don’t have one. You’ll also need a Ruby runtime with RubyGems in order to install the required Ruby dependencies.
57+
58+
$ bundle install # install ruby dependencies
59+
$ berks install # install cookbooks into your local berkshelf
60+
$ berks upload # upload cookbooks to the chef server
61+
62+
### 3. Provision a Deis Controller
63+
64+
The [Amazon EC2 API Tools](http://aws.amazon.com/developertools/351) will be used to setup basic EC2 infrastructure. The [Knife EC2 plugin](https://github.com/opscode/knife-ec2) will be used to bootstrap the controller.
65+
66+
$ contrib/provision-ec2-controller.sh
67+
68+
### 4. Install the Deis Client
69+
70+
Install the Deis client using [Pip](http://www.pip-installer.org/en/latest/installing.html). Registration will discover SSH keys automatically and use the [standard environment variables](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SettingUp_CommandLine.html#set_aws_credentials_linux) to configure the EC2 provider.
71+
72+
$ sudo pip install deis
73+
$ deis register http://my-deis-controller.fqdn
74+
username: myuser
75+
password:
76+
email: myuser@example.com
77+
Registered myuser
78+
Logged in as myuser
79+
80+
Found the following SSH public keys:
81+
1) id_rsa.pub
82+
Which would you like to use with Deis? 1
83+
Uploading /Users/myuser/.ssh/id_rsa.pub to Deis... done
84+
85+
Found EC2 credentials: AKIAJTVXXXXXXXXXXXXX
86+
Import these credentials? (y/n) : y
87+
Uploading EC2 credentials... done
88+
89+
### 5. Create & Scale a Formation
90+
91+
Find an application you’d like to deploy, or clone [an example app](https://github.com/opdemand/example-nodejs-express). Change into the application directory and use `deis create` to initialize a new formation in a specific EC2 region. Use the `deis layers:scale` command to provision nodes that will be dedicated to this formation.
92+
93+
$ cd <my-application-repo>
94+
$ deis create --flavor=ec2-us-west-2
95+
Creating formation... done, created peachy-waxworks
96+
Git remote deis added
97+
98+
Creating runtime layer... done
99+
Creating proxy layer... done
100+
101+
Use deis layers:scale proxy=1 runtime=1 to scale a basic formation
102+
103+
$ deis layers:scale proxy=1 runtime=1
104+
Scaling layers... but first, coffee!
105+
...done in 232s
106+
107+
Use `git push deis master` to deploy to your formation
108+
109+
### 6. Deploy your Application
110+
111+
Use `git push deis master` to deploy your application. Deis will automatically deploy Docker containers and configure Nginx proxies to route requests to your application. To learn more, use `deis help` or browse [the documentation](http://docs.deis.io).
112+
113+
$ git push deis master
114+
Counting objects: 146, done.
115+
Delta compression using up to 8 threads.
116+
Compressing objects: 100% (122/122), done.
117+
Writing objects: 100% (146/146), 21.54 KiB, done.
118+
Total 146 (delta 84), reused 47 (delta 22)
119+
Node.js app detected
120+
-----> Resolving engine versions
121+
Using Node.js version: 0.10.15
122+
Using npm version: 1.2.30
123+
...
124+
-----> Building runtime environment
125+
-----> Discovering process types
126+
Procfile declares types -> web
127+
128+
-----> Compiled slug size: 4.7 MB
129+
Launching... done, v2
130+
131+
-----> peachy-waxworks deployed to Deis
132+
http://ec2-54-214-143-104.us-west-2.compute.amazonaws.com ...
133+
134+
$ curl -s http://ec2-54-214-143-104.us-west-2.compute.amazonaws.com
135+
Powered by Deis!
21136

22137
## Credits
23138

@@ -30,14 +145,16 @@ Deis rests on the shoulders of leading open source technologies:
30145
* [Heroku](https://devcenter.heroku.com/articles/buildpacks)
31146
* [Buildstep](https://github.com/progrium/buildstep)
32147
* [Gitosis](https://github.com/opdemand/gitosis)
33-
148+
34149
## License and Authors
35150

36151
- Author:: Gabriel Monroy <gabriel@opdemand.com>
37152
- Author:: Matt Boersma <matt@opdemand.com>
153+
- Author:: Ben Grunfeld <ben@opdemand.com>
38154

39155
Copyright 2013, OpDemand LLC
40156

41157
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at <http://www.apache.org/licenses/LICENSE-2.0>
42158

43159
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
160+

0 commit comments

Comments
 (0)