tech.paulcz.net/presentation-cloud-austin-deis Created by Paul Czarkowski / @pczarkowski
but it is newly hot.
Docker is part of the reason why.
* not docker based, but moving in that direction?
deploys [12 factor] applications
Best practices for building SAAS / SOA apps
Summary: Don't be wordpress.
Tooling to build and deploy polyglot web applications.
Example: minimal NodeJS app
example-nodejs-express ├── package.json ├── Procfile └── server.js
* functionality moving to etcd + confd
http://twentypercentcooler.net/post/show/23858/2012-cannon-duo-earth_pony-eeveetachi-equine-eyewe
database, message queue, etc.
$ cd ~/paas/apps/nodejs
$ deis create --formation=demo --id=cloudaustin
Creating application... done, created cloudaustin
Warning: Permanently added the ECDSA host key for IP address '23.253.89.126' to the list of known hosts.
Git remote deis added
$ git push deis master
Counting objects: 181, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (86/86), done.
Writing objects: 100% (181/181), 28.53 KiB | 0 bytes/s, done.
Total 181 (delta 101), reused 165 (delta 92)
-----> Node.js app detected
-----> Requested node range: 0.10.x
-----> Resolved node version: 0.10.24
-----> Downloading and installing node
-----> Installing dependencies
Launching... done, v2
<< SNIP >>
-----> cloudaustin deployed to Deis
http://cloudaustin.deis.paulcz.net
$
$ cd ~/paas/apps/nodejs
$ vim server.js
...
...
$ git commit -am 'cloud austin'
$ git push origin deis
<< SNIP >>
-----> Node.js app detected
<< SNIP >>
-----> cloudaustin deployed to Deis
http://cloudaustin.deis.paulcz.net
$
$ deis info
=== cloudaustin Application
{
"updated": "2014-01-19T20:48:09.187Z",
"uuid": "a871873f-36cd-439f-a4cd-c84db752d598",
"created": "2014-01-19T20:48:09.187Z",
"formation": "demo",
"owner": "admin",
"id": "cloudaustin",
"containers": "{}"
}
=== cloudaustin Containers
--- web: `node server.js`
web.1 up 2014-01-19T20:50:02.125Z (demo-nodes-1)
$
$ deis logs Jan 19 20:33:37 deis-controller cloudaustin: Config cloudaustin-v1 updated Jan 19 20:33:37 deis-controller cloudaustin: Build cloudaustin- created Jan 19 20:33:37 deis-controller cloudaustin: Release cloudaustin-v1 created Jan 19 20:45:20 deis-controller cloudaustin: Config cloudaustin-v1 updated Jan 19 20:45:20 deis-controller cloudaustin: Build cloudaustin- created Jan 19 20:45:20 deis-controller cloudaustin: Release cloudaustin-v1 created Jan 19 20:48:09 deis-controller cloudaustin: Config cloudaustin-v1 updated Jan 19 20:48:09 deis-controller cloudaustin: Build cloudaustin- created Jan 19 20:48:09 deis-controller cloudaustin: Release cloudaustin-v1 created Jan 19 20:50:02 deis-controller cloudaustin: Build cloudaustin-7fb1163 created Jan 19 20:50:02 deis-controller cloudaustin: Release cloudaustin-v2 created Jan 19 20:50:02 deis-controller cloudaustin: Containers scaled web=1 Jan 19 20:50:14 demo-nodes cloudaustin[web.1]: Server listening on port 10001 in development mode Jan 19 20:56:19 deis-controller cloudaustin: Build cloudaustin-f7e94ab created Jan 19 20:56:19 deis-controller cloudaustin: Release cloudaustin-v3 created Jan 19 20:56:39 demo-nodes cloudaustin[web.1]: Server listening on port 10001 in development mode $
$ deis scale web=6 Scaling containers... but first, coffee! done in 21s === cloudaustin Containers --- web: `node server.js` web.1 up 2014-01-19T20:50:02.125Z (demo-nodes-1) web.2 up 2014-01-19T21:04:25.013Z (demo-nodes-2) web.3 up 2014-01-19T21:04:25.023Z (demo-nodes-2) web.4 up 2014-01-19T21:04:25.031Z (demo-nodes-1) web.5 up 2014-01-19T21:04:25.040Z (demo-nodes-2) web.6 up 2014-01-19T21:04:25.050Z (demo-nodes-1) $
$ deis destroy --app=cloudaustin --confirm=cloudaustin Destroying cloudaustin... done in 40s Git remote deis removed $
Install guide for Rackspace Public Cloudhttp://www.thinkgeek.com/product/e5a7/