## 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.
## Barbarians!
## Everyone is responsible
## Lessons learned
- 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 `:-)`