Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Opinionated continuous delivery

528 views

Published on

A very opinionated continuous delivery implementation. It's not perfect, it may or may not work for your organisation, but it tries to follow the sense of correctness and conventions agreed by all stakeholder.

Published in: Technology, Business
  • Be the first to comment

Opinionated continuous delivery

  1. 1. Opinionated Continuous Delivery Dwi Sasongko S <ruckuus@gmail.com>
  2. 2. Challenges ● How can I deploy this to production? ● How can I be sure that this will work in production? ● How long does it take to go to production?
  3. 3. Answers Question #1 How can I deploy this to production? ● Delivery Pipeline ● Stages ● Automation from day one ● Discipline
  4. 4. Q#1 How can I deploy this to production? ● Delivery Pipeline o Build once, promote to different environment/stages o Deploy early, break early, fix early o Master/trunk as production ready branch  No revert, but incremental changes
  5. 5. Q#1 How can I deploy this to production? ● Stages o Development  Developer o Test  Developer + QA o Integration  QA o Staging  QA o Production  Everyone
  6. 6. Q#1 How can I deploy this to production? ● Automation from day one o Infrastructure as code  puppetize! o Avoid dirty hack  Never SSH to machine  Use API whenever possible o One click deployment  Launch machine and provision  Automated code deployment
  7. 7. Q#1 How can I deploy this to production? ● Discipline o … best practices o … conventions or configuration? o Company as one big team o It’s not about you and me, it’s about us! o If I screw up, I will screw the whole company!
  8. 8. Answers Question #2 How can I be sure that this will work in production? ● Environment similarity ● Build/Deploy similarity ● Efficient testing
  9. 9. Q#2 How can I be sure that this will work in production? ● Environment setup matters o development on top of virtual machine, same setup as production o other environments are small sets of production machine o same configuration on every environment
  10. 10. Q#2 How can I be sure that this will work in production? ● Build/Deploy similarity o Same package for all environment o Same deployment step for all environment o A switch to differentiate each environment o Differences on configuration for each environment  Test different configuration  More eyes to verify changes
  11. 11. Q#2 How can I be sure that this will work in production? ● Efficient testing o Unit test during build time  unit test & coverage o Automated Smoke & Functional test in test/integration  Feature = Feature + Test o Automated Regression test in staging o Post deployment test
  12. 12. Answers Question #3 How long does it take to go to production? ● 10 minutes o Parallel provisioning o Parallel deployment o Parallel testing
  13. 13. Responsibility vs Headache ● Whose responsibility? o Everyone’s responsibility ● Whose headache o Everyone’s headache
  14. 14. Tools ● vagrant (http://www.vagrantup.com/) ● puppet (http://puppetlabs.com/) ● jenkins (http://jenkins-ci.org/) ● docker (http://www.docker.com/) ● phantomjs (http://phantomjs.org/) ● casperjs (http://casperjs.org/)

×