1. OrcZero downtime deployments made easy Tomas Doran (t0m) @bobtfish <email@example.com> https://github.com/bobtfish/
2. Problem space:• Multiple heterogeneous applications• Multiple servers per app• Multiple environments• Custom deployment solutions / semi- manual deployment
3. Observed problems:• Support nightmare• Failed / inconsistent deployments• New applications extremely costly to deploy
4. Solution:• Application infrastructure contract• Defined interface for infrastructure to interact with your application: • How to launch • How to query health• Any application which complies gets continuous deployment - free
5. Reliable• Contract conformity checked by a common test suite• CI builds to check deployability
6. Predictable• Deployment is model driven• Store desired state in ‘cmdb’• Audit live servers, adjust reality to conform to desired state• State machine - easy to test!
7. Safe• Each possible step in a deployment is a state transition• Sample live state after each transition - if model doesn’t match reality, stop!• Mcollective agent - flexible per-user + fact based permissions for free
9. Participation?• Need to be able to cleanly remove instances from load balancer• Make load balancer health check do 2 things: • Check app = healthy • Check participation = true• Tatin - tiny REST service to drop state into