Using PaaS for Continuous Delivery (Cloud Foundry Summit 2014)

2,064
-1

Published on

Technical Track presented by Elisabeth Hendrickson at Pivotal.

With continuous delivery, you release frequently and with very little, or no, manual intervention. That requires three things: fully automated tests; a continuous integration server that executes those tests and can promote successful deployments; and an automated deployment mechanism with zero downtime. PaaS's are a perfect fit for this. Cloud Foundry makes zero-downtime automated deployments straightforward. Further, cloud-based CI services such as Cloudbees work well with Cloud Foundry. In this talk, Elisabeth explains how to achieve continuous delivery with Cloud Foundry using one of our own applications (docs.cloudfoundry.org) as an example.

Published in: Technology, Business

Using PaaS for Continuous Delivery (Cloud Foundry Summit 2014)

  1. 1. ©2014 Elisabeth Hendrickson Using PaaS for Continuous Delivery
  2. 2. Spoiler Cloud Foundry is perfect for Continuous Delivery. The hard part about Continuous Delivery probably isn’t your deployment infrastructure.
  3. 3. What is CI? Hint: it’s not a server
  4. 4. Culture Change: Stop the Line If just one single test out of thousands fails, the whole build failed. We stop the line and fix the issue.
  5. 5. What is CD? Hint: it’s not just a lot of CI
  6. 6. Continuous Delivery Defined Continuous delivery means that your software is production-ready from day one of your project (even when it's not "feature complete") and that you can release to users on demand at the push of a button. – Jez Humble “
  7. 7. Preconditions • Fully automated tests at unit / integration / system levels • Continuous integration infrastructure • Scripted, automated deployment to each needed environment
  8. 8. From Build to Pipeline Deploy Config A to Test Env A Deploy Config B to Test Env B Unit Tests System Tests System Tests Promote checkin
  9. 9. Culture Changes: Overcoming Resistance What do you mean there’s no manual QA phase? Deliver half- done features? Can’t possibly work. What’s the point? Customers don’t want stuff that fast anyway. Automation is expensive.
  10. 10. (Yes, change is hard.) All checking is automated. Develop in slices. Aim for MVP. Try feature flags.There is a strategic advantage in being continuously deliverable even if you don’t ship. Error-prone manual processes are more expensive. (Try TDD.)
  11. 11. CD with Cloud Foundry
  12. 12. Cloud Foundry Supports CD • Promotion path: environment variables support running identical code in test and prod environments • Automated deploys: cf v6 is scriptable • Zero-downtime deploys: the blue/green deploy pattern
  13. 13. Promotion: Same Code, Different Space Testing Space Your App Promote* “Automated Promotion” isn’t a feature yet. You can automate promotion in your build pipeline with the cf cli. * Production Space Your App Test DB Production DB Connect to the DB with VCAP_SERVICES
  14. 14. Zero Downtime: Blue/Green Deploys http://docs.cloudfoundry.org/devguide/deploy-apps/blue-green.html app-green stopped app-blue started app-green started app-blue stopped v2 v3 push new code to app-green stop blue, start green app-green stopped app-blue started v2 v1 v3 v2
  15. 15. Example: Cloud Foundry Docs
  16. 16. What About the Automated Tests? Sorry, Cloud Foundry can’t help you there. But it can get deployment and configuration yaks out of your way so your team can focus on the hard things that only they can solve. Hint: there are still no magic bullets.
  17. 17. ©2014 Elisabeth Hendrickson, @testobsessed Thank You!

×