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.

Seminar continuous delivery 19092013


Published on

Continuous Delivery explained using Jenkins, Deployit and XL release

Published in: Technology
  • Login to see the comments

Seminar continuous delivery 19092013

  1. 1. Continuous Integration Continuous Deployment practical case
  2. 2. Agenda 1. Definitions 2. Continuous Integration: Jenkins 3. Monitoring 4. Automated Testing 5. Automated Deployments: Deployit 6. Release Management: XL release 7. Frameworks and tools 8. Demo
  3. 3. Definitions Source Control Automated build Continuous integration Automated Testing Automated Deployments Continuous Delivery Automated Provisioning
  4. 4. Definitions
  5. 5. Definitions ● Continuous Integration: Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. Reference: Martin Fowler ● Continuous Deployment: The art of continuous putting new features to live systems, so they can be used by other people (internal or external). Ideally this is done in an automated way, and build on the continuous integration part. ● Continuous Delivery: Techniques such as automated testing, continuous integration and continuous deployment allow software to be developed to a high standard and easily packaged and deployed to (test) environments, resulting in the ability to rapidly, reliably and repeatedly push out enhancements and bug fixes to customers at low risk and with minimal manual overhead. Reference: wikipedia
  6. 6. Continuous Integration: Jenkins? What is it? In a nutshell Jenkins CI is the leading open-source continuous integration server. Built with Java, it provides over 400 plugins to support building and testing virtually any project. Checkout:
  7. 7. Jenkins example architecture
  8. 8. Jenkins: master / slaves Jenkins Slave Jenkins Slave Jenkins Master Build CI Jenkins Slave Jenkins Slave Jenkins Slave Jenkins Slave ● 1 server is not enough. ● Example: has around 800 jobs. ● OS specific jobs. ● Virtualize your CI environment → Allows for auto scaling your CI.
  9. 9. Jenkins: plugins ● Build flow plugin ● Deployit jenkins plugin ● Analysis Collector Plugin ● Groovy postbuild plugin ● Wall Display plugin ● Email ext plugin ● Twitter plugin
  10. 10. Monitoring
  11. 11. Automated testing: Fitnesse
  12. 12. Automated Deployments: Deployit
  13. 13. Automated Deployments: Deployit
  14. 14. Automated Deployments: Deployit
  15. 15. Jenkins Deployit plugin
  16. 16. Jenkins Deployit plugin
  17. 17. Release Management: XL release ● “XL release is the most advanced enterprise release coordination software solution. ● XL release allows you to plan, execute and track your application delivery process from code drop to customer. ● It provides the end-to-end automation and visibility you need to accelerate and improve your software delivery process.”
  18. 18. Release Management: XL release
  19. 19. Release Management: XL release
  20. 20. Frameworks
  21. 21. Tools ● Agile Management: Jira, Trello, Excel ● Continuous Integration: Jenkins, Bamboo, Hudson, Microsoft TFS ● Testing: JUnit, FitNesse, Xebium, Cucumber, DBUnit, TestNG, Greenpepper, JBehave, Twist, Jacoco, Arquillian, ... ● Automated Deployment: Deployit, XL release, Nolio, uDeploy ● Collaboration: Confluence, xWiki, Google Drive ● Automated Provisioning: Puppet, Chef, Vagrant, MCollective ● Quality: Sonar ● Build tools: ant, ivy, maven, gradle, Microsoft TFS ● Source safety: subversion, git, Microsoft TFS ● Monitoring: Nagios, Graphite, Splunk (Storm), Logstash, Graylog2 (Torch) ● Cloud solutions ○ Continuous Integration: Cloudbees ○ Public PAAS: Heroku, OpenShift, Azure ○ Issue Management: Atlassian (Jira), Trello ○ Don't forget Amazon
  22. 22. Demo
  23. 23. Questions