## Island Life
				### How we built and deployed the Honshū way
				Wes Mason  
				
				[@1stvamp](http://twitter.com/1stvamp)  
				
				[www.serverdensity.com](http://www.serverdensity.com/)  
				
				
				## Who?
				- 	 @1stvamp (twitter/github)
				- 	 Engineer at Server Density
				- 	 I release lots of open source code
				- 	 Curate [phpweekly.info](http://phpweekly.info/)
				
				
				
				## Honshuu
				- 	 Service Orientated Architecture
				- 	 Seperate HTTP services for everything
				- 	 Common build environments
				- 	 New features (bang zoom straight to THE CLOUD!)
				
				
				## Ancient history
				### version one, before Honshuu
				- 	 Large bundled PHP application
				- 	 Deployed like any PHP app
				
				
				## Let's add more!
				- 	 Couldn't be done easily with current infrastructure or code
				- 	 REWRITE ALL THE THINGS
				
				
				## Honshuu is born
				### With some inspiration from..
				
 
				
				
				
				## Everything is an island
				- 	 An island is a service
				- 	 Self contained
				- 	 Written with whatever makes sense
				
				
				## Trading customs
				- 	 Common HTTP API
				- 	 Shared API wrapper libraries
				- 	 Anyone can query with `curl`
				
				
				
				## The commons
				- 	 Shared PHP, Python and JS (Node.js) libraries
				- 	 Dependency management ftw
				
				
				## Common build steps
				- 	 Minimise customisation between stacks
				- 	 Easy to extend in Puppet modules
				
				
				### python
				    $ python bootstrap.py
				    $ bin/buildout
				    $ bin/test
				    $ bin/integration-tests
				
				
				### php
				    $ php bootstrap.php
				    $ bin/composer install
				    $ bin/test
				    $ bin/integration-tests
				
				
				### node.js
				    $ # npm is shipped with node
				    $ npm install
				    $ npm test
				    $ npm run-script integration-tests
				
				
				## Puppet
				- 	 Mostly the same steps
				- 	 Easy to override in `manifest.pp`
				- 	 ..but can be easier..
				
				
				### wrap everything
				    $ ./bootstrap.sh
				    $ bin/build
				    $ bin/test
				    $ bin/integration-tests
				
				
				
				
				## Builds fail
				- 	 Don't fear the fail, fear not failing.
				- 	 Fail faster, and louder.
				
				
				
				
				## Everyone is responsible
				
				
				
				
				- 	 Talk is cheap..
				- 	 ..but cheap is good.
				
				
				- 	 Get your build pipeline right at the beginning..
				- 	 ..or don't invest too heavily if you're not sure.
				
				
				- 	 Get production setup, like, now..
				- 	 ..and don't skimp on staging just because you have vagrant and CI.
				
				
				
				## Free swag
				### [www.serverdensity.com/freebies](https://www.serverdensity.com/freebies)
				
				
				
				## sys.exit(0)
				- 	 Code: [github.com/serverdensity](https://github.com/serverdensity)
				- 	 Slides: [github.com/1stvamp/dod-berlin-2013-talk](https://github.com/1stvamp/dod-berlin-2013-talk)
				
				
				## ^D
				- 	 Jonathan "Joff" Oliver: [about.me/joffie](http://about.me/joffie)
				- 	 Grab me and say hi `:-)`