“I am big believe in
Continuous Deployment as
long as is not touch
production.”
DevOps Borat
@DEVOPS_BORAT
2Tuesday, April 30, 13
Continuous Deployment
Deploying every change to Production
Optionally a short QA gate
Practice of releasing every good build to users
“continuous release”
3Tuesday, April 30, 13
Who am I?
Siva Jagadeesan
Interests
• Clojure
• REST
• Datomic
• Continuous Deployment
•TDD
• Startups
• Founder & CTO, Zolo Labs Inc
• Director of Engineering, Runa Inc
•@sivajag
• siva@zololabs.com
• http://blog.zololabs.com
• http://techbehindtech.com
About Me
9Tuesday, April 30, 13
• first product from Zolo Labs
• Your digital assistant
• helps with professional networking and
relationships
• (and personal ones too!)
10Tuesday, April 30, 13
Principles
• The process for releasing/deploying software MUST be repeatable and reliable
• Automate everything!
• If something is difficult or painful, do it more often
• Keep everything in source control
• Done means “released”
• Build quality in!
• Everybody has responsibility for the release process
• Improve continuously
20Tuesday, April 30, 13
Deployment Pipeline
is an automated manifestation of your
process for getting software from version
control into the hands of your users.
21Tuesday, April 30, 13
Aim
Aids collaboration by making the
process of building, testing and releasing
software visible to everyone involved
Improves Feedback
Team can deploy any version of
software to any environment at will
without much effort
22Tuesday, April 30, 13
Deployment Pipeline
Best Practices
Only build binaries once
Deploy the same way to every environment
Smoke test your deployments
Each change should propagate through the
pipeline instantly
If any part of the pipeline fails, stop the line
26Tuesday, April 30, 13
Commit Stage
Run Tests
lein test
lein test-selectors
to force retrieve latest snapshots
lein plugins
lein-cucumber
lein-difftest
lein-expectations
lein-midje
32Tuesday, April 30, 13
Commit Stage
Create Binaries / Artifacts
lein uberjar
profiles to create different uberjars
Plugins
lein-dist
lein-tar
lein-set-version
lein-sha-version
lein-package
33Tuesday, April 30, 13
Commit Stage
Perform analysis of the code
lein-cloverage
lein-bikeshed
Kitbit - https://github.com/jonase/kibit
Eastwood - https://github.com/jonase/eastwood
34Tuesday, April 30, 13
Benefits
• Improved Team Attitude
• More Responsive Team
• Less Waste
• Deployment Flexibility
• Less Pressure
• Reducing Errors
43Tuesday, April 30, 13
Start doing continuous delivery to deliver high-quality,
valuable software in an efficient, fast, and reliable manner.
44Tuesday, April 30, 13