0
Continuous Deploymentof Clojure AppsSiva Jagadeesan1Tuesday, April 30, 13
“I am big believe inContinuous Deployment aslong as is not touchproduction.”DevOps Borat@DEVOPS_BORAT2Tuesday, April 30, 13
Continuous DeploymentDeploying every change to ProductionOptionally a short QA gatePractice of releasing every good build ...
ContinuousDeploymentRelease is in the hands of IT4Tuesday, April 30, 13
ContinuousDeploymentRelease is in the hands of ITis this a good thing?4Tuesday, April 30, 13
ContinuousDeploymentRelease is in the hands of ITis this a good thing?NO!4Tuesday, April 30, 13
ContinuousDeploymentRelease is in the hands of ITis this a good thing?dependsBusiness ReasonNO!4Tuesday, April 30, 13
Continuous DeliveryRelease is in the hands ofBusiness5Tuesday, April 30, 13
Continuous Delivery isabout keeping yourapplication in a state whereit is always able to deployinto production.6Tuesday, A...
Continuous Deploymentof Clojure AppsSiva JagadeesanDelivery7Tuesday, April 30, 13
ProcessTechnologyPeopleContinuousDelivery8Tuesday, April 30, 13
Who am I?Siva JagadeesanInterests• Clojure• REST• Datomic• Continuous Deployment•TDD• Startups• Founder & CTO, Zolo Labs I...
• first product from Zolo Labs• Your digital assistant• helps with professional networking andrelationships• (and personal ...
WhyContinuous Delivery?11Tuesday, April 30, 13
Our highest priority is to satisfythe customer through early andcontinuous delivery of valuablesoftware12Tuesday, April 30...
13Tuesday, April 30, 13
Our Goal• deliver high-quality, valuable softwarein an efficient, fast, and reliable manner14Tuesday, April 30, 13
15Tuesday, April 30, 13
ContinuousIntegration16Tuesday, April 30, 13
ContinuousIntegrationdevelopment team16Tuesday, April 30, 13
ContinuousIntegrationdevelopment teamcode16Tuesday, April 30, 13
ContinuousIntegrationdevelopment teamcoderequirementsprocess of delivering softwarewhole team16Tuesday, April 30, 13
ContinuousDeliverydevelopment teamcoderequirementsprocess of delivering softwarewhole team17Tuesday, April 30, 13
Benefits• Improved Team Attitude• More Responsive Team• Less Waste• Deployment Flexibility• Less Pressure• Less Bugs18Tuesd...
ProcessTechnologyPeopleContinuousDelivery19Tuesday, April 30, 13
Principles• The process for releasing/deploying software MUST be repeatable and reliable• Automate everything!• If somethi...
Deployment Pipelineis an automated manifestation of yourprocess for getting software from versioncontrol into the hands of...
AimAids collaboration by making theprocess of building, testing and releasingsoftware visible to everyone involvedImproves...
image from wiki23Tuesday, April 30, 13
Deployment PipelineStagesCommit StageAutomated Acceptance Test StagesManual Test StagesRelease Stage24Tuesday, April 30, 13
Deployment Pipelineimage from continuous delivery book25Tuesday, April 30, 13
Deployment PipelineBest PracticesOnly build binaries onceDeploy the same way to every environmentSmoke test your deploymen...
ProcessTechnologyPeopleContinuousDelivery27Tuesday, April 30, 13
This is easy ...28Tuesday, April 30, 13
Deployment PipelineStagesCommit StageAutomated Acceptance Test StagesManual Test StagesRelease Stage29Tuesday, April 30, 13
Commit StageCompile (if needed)Run testsCreate Binaries / ArtifactsPerform analysis of the code30Tuesday, April 30, 13
Commit StageCompilelein compilelein -Uto force retrieve latest snapshotslein profileswith-profile31Tuesday, April 30, 13
Commit StageRun Testslein testlein test-selectorsto force retrieve latest snapshotslein pluginslein-cucumberlein-difftestl...
Commit StageCreate Binaries / Artifactslein uberjarprofiles to create different uberjarsPluginslein-distlein-tarlein-set-ve...
Commit StagePerform analysis of the codelein-cloveragelein-bikeshedKitbit - https://github.com/jonase/kibitEastwood - http...
Acceptance andManual Test Stages35Tuesday, April 30, 13
Types of testsimage from continuous delivery book36Tuesday, April 30, 13
Clojure Web UI Testingclj-webdriverwebdriver-logic [uses core.logic]37Tuesday, April 30, 13
Release Stage• lein run• chef• puppet• pallet38Tuesday, April 30, 13
to sum up ...39Tuesday, April 30, 13
ProcessTechnologyPeopleContinuousDelivery40Tuesday, April 30, 13
Deployment Pipelineimage from continuous delivery book41Tuesday, April 30, 13
ContinuousDeliverydevelopment teamcoderequirementsprocess of delivering softwarewhole team42Tuesday, April 30, 13
Benefits• Improved Team Attitude• More Responsive Team• Less Waste• Deployment Flexibility• Less Pressure• Reducing Errors4...
Start doing continuous delivery to deliver high-quality,valuable software in an efficient, fast, and reliable manner.44Tues...
Questions?• @sivajag• siva@zololabs.com• http://blog.zololabs.com• http://techbehindtech.com• zolodeck.com45Tuesday, April...
Upcoming SlideShare
Loading in...5
×

Continuous Deployment of Clojure Apps

3,004

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,004
On Slideshare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
28
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Transcript of "Continuous Deployment of Clojure Apps"

  1. 1. Continuous Deploymentof Clojure AppsSiva Jagadeesan1Tuesday, April 30, 13
  2. 2. “I am big believe inContinuous Deployment aslong as is not touchproduction.”DevOps Borat@DEVOPS_BORAT2Tuesday, April 30, 13
  3. 3. Continuous DeploymentDeploying every change to ProductionOptionally a short QA gatePractice of releasing every good build to users“continuous release”3Tuesday, April 30, 13
  4. 4. ContinuousDeploymentRelease is in the hands of IT4Tuesday, April 30, 13
  5. 5. ContinuousDeploymentRelease is in the hands of ITis this a good thing?4Tuesday, April 30, 13
  6. 6. ContinuousDeploymentRelease is in the hands of ITis this a good thing?NO!4Tuesday, April 30, 13
  7. 7. ContinuousDeploymentRelease is in the hands of ITis this a good thing?dependsBusiness ReasonNO!4Tuesday, April 30, 13
  8. 8. Continuous DeliveryRelease is in the hands ofBusiness5Tuesday, April 30, 13
  9. 9. Continuous Delivery isabout keeping yourapplication in a state whereit is always able to deployinto production.6Tuesday, April 30, 13
  10. 10. Continuous Deploymentof Clojure AppsSiva JagadeesanDelivery7Tuesday, April 30, 13
  11. 11. ProcessTechnologyPeopleContinuousDelivery8Tuesday, April 30, 13
  12. 12. Who am I?Siva JagadeesanInterests• 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.comAbout Me9Tuesday, April 30, 13
  13. 13. • first product from Zolo Labs• Your digital assistant• helps with professional networking andrelationships• (and personal ones too!)10Tuesday, April 30, 13
  14. 14. WhyContinuous Delivery?11Tuesday, April 30, 13
  15. 15. Our highest priority is to satisfythe customer through early andcontinuous delivery of valuablesoftware12Tuesday, April 30, 13
  16. 16. 13Tuesday, April 30, 13
  17. 17. Our Goal• deliver high-quality, valuable softwarein an efficient, fast, and reliable manner14Tuesday, April 30, 13
  18. 18. 15Tuesday, April 30, 13
  19. 19. ContinuousIntegration16Tuesday, April 30, 13
  20. 20. ContinuousIntegrationdevelopment team16Tuesday, April 30, 13
  21. 21. ContinuousIntegrationdevelopment teamcode16Tuesday, April 30, 13
  22. 22. ContinuousIntegrationdevelopment teamcoderequirementsprocess of delivering softwarewhole team16Tuesday, April 30, 13
  23. 23. ContinuousDeliverydevelopment teamcoderequirementsprocess of delivering softwarewhole team17Tuesday, April 30, 13
  24. 24. Benefits• Improved Team Attitude• More Responsive Team• Less Waste• Deployment Flexibility• Less Pressure• Less Bugs18Tuesday, April 30, 13
  25. 25. ProcessTechnologyPeopleContinuousDelivery19Tuesday, April 30, 13
  26. 26. 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 continuously20Tuesday, April 30, 13
  27. 27. Deployment Pipelineis an automated manifestation of yourprocess for getting software from versioncontrol into the hands of your users.21Tuesday, April 30, 13
  28. 28. AimAids collaboration by making theprocess of building, testing and releasingsoftware visible to everyone involvedImproves FeedbackTeam can deploy any version ofsoftware to any environment at willwithout much effort22Tuesday, April 30, 13
  29. 29. image from wiki23Tuesday, April 30, 13
  30. 30. Deployment PipelineStagesCommit StageAutomated Acceptance Test StagesManual Test StagesRelease Stage24Tuesday, April 30, 13
  31. 31. Deployment Pipelineimage from continuous delivery book25Tuesday, April 30, 13
  32. 32. Deployment PipelineBest PracticesOnly build binaries onceDeploy the same way to every environmentSmoke test your deploymentsEach change should propagate through thepipeline instantlyIf any part of the pipeline fails, stop the line26Tuesday, April 30, 13
  33. 33. ProcessTechnologyPeopleContinuousDelivery27Tuesday, April 30, 13
  34. 34. This is easy ...28Tuesday, April 30, 13
  35. 35. Deployment PipelineStagesCommit StageAutomated Acceptance Test StagesManual Test StagesRelease Stage29Tuesday, April 30, 13
  36. 36. Commit StageCompile (if needed)Run testsCreate Binaries / ArtifactsPerform analysis of the code30Tuesday, April 30, 13
  37. 37. Commit StageCompilelein compilelein -Uto force retrieve latest snapshotslein profileswith-profile31Tuesday, April 30, 13
  38. 38. Commit StageRun Testslein testlein test-selectorsto force retrieve latest snapshotslein pluginslein-cucumberlein-difftestlein-expectationslein-midje32Tuesday, April 30, 13
  39. 39. Commit StageCreate Binaries / Artifactslein uberjarprofiles to create different uberjarsPluginslein-distlein-tarlein-set-versionlein-sha-versionlein-package33Tuesday, April 30, 13
  40. 40. Commit StagePerform analysis of the codelein-cloveragelein-bikeshedKitbit - https://github.com/jonase/kibitEastwood - https://github.com/jonase/eastwood34Tuesday, April 30, 13
  41. 41. Acceptance andManual Test Stages35Tuesday, April 30, 13
  42. 42. Types of testsimage from continuous delivery book36Tuesday, April 30, 13
  43. 43. Clojure Web UI Testingclj-webdriverwebdriver-logic [uses core.logic]37Tuesday, April 30, 13
  44. 44. Release Stage• lein run• chef• puppet• pallet38Tuesday, April 30, 13
  45. 45. to sum up ...39Tuesday, April 30, 13
  46. 46. ProcessTechnologyPeopleContinuousDelivery40Tuesday, April 30, 13
  47. 47. Deployment Pipelineimage from continuous delivery book41Tuesday, April 30, 13
  48. 48. ContinuousDeliverydevelopment teamcoderequirementsprocess of delivering softwarewhole team42Tuesday, April 30, 13
  49. 49. Benefits• Improved Team Attitude• More Responsive Team• Less Waste• Deployment Flexibility• Less Pressure• Reducing Errors43Tuesday, April 30, 13
  50. 50. Start doing continuous delivery to deliver high-quality,valuable software in an efficient, fast, and reliable manner.44Tuesday, April 30, 13
  51. 51. Questions?• @sivajag• siva@zololabs.com• http://blog.zololabs.com• http://techbehindtech.com• zolodeck.com45Tuesday, April 30, 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×