seminar continuous delivery 19092013

23
Continuous Integration Continuous Deployment practical case

Upload: joris-de-winne

Post on 06-May-2015

1.185 views

Category:

Technology


0 download

DESCRIPTION

Continuous Delivery explained using Jenkins, Deployit and XL release

TRANSCRIPT

Page 1: Seminar continuous delivery 19092013

Continuous IntegrationContinuous Deployment

practical case

Page 2: Seminar continuous delivery 19092013

Agenda

1. Definitions2. Continuous Integration: Jenkins3. Monitoring4. Automated Testing5. Automated Deployments: Deployit6. Release Management: XL release7. Frameworks and tools8. Demo

Page 3: Seminar continuous delivery 19092013

Definitions

Source Control

Automated build

Continuous integration

Automated Testing

Automated Deployments

Continuous Delivery

Automated Provisioning

Page 4: Seminar continuous delivery 19092013

Definitions

Page 5: Seminar continuous delivery 19092013

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 http://www.martinfowler.com/articles/continuousIntegration.html

● 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

Page 6: Seminar continuous delivery 19092013

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:http://jenkins-ci.org/

Page 7: Seminar continuous delivery 19092013

Jenkins example architecture

Page 8: Seminar continuous delivery 19092013

Jenkins: master / slaves

Jenkins SlaveJenkins Slave

Jenkins Master Build

CI

Jenkins Slave

Jenkins SlaveJenkins SlaveJenkins Slave

● 1 server is not enough.● Example: bol.com has around 800 jobs.● OS specific jobs.● Virtualize your CI environment → Allows for auto scaling your CI.

Page 9: Seminar continuous delivery 19092013

Jenkins: plugins

● Build flow plugin● Deployit jenkins plugin● Analysis Collector Plugin● Groovy postbuild plugin● Wall Display plugin● Email ext plugin● Twitter plugin

Page 10: Seminar continuous delivery 19092013

Monitoring

Page 11: Seminar continuous delivery 19092013

Automated testing: Fitnesse

Page 12: Seminar continuous delivery 19092013

Automated Deployments: Deployit

Page 13: Seminar continuous delivery 19092013

Automated Deployments: Deployit

Page 14: Seminar continuous delivery 19092013

Automated Deployments: Deployit

Page 15: Seminar continuous delivery 19092013

Jenkins Deployit plugin

Page 16: Seminar continuous delivery 19092013

Jenkins Deployit plugin

Page 17: Seminar continuous delivery 19092013

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.”

Page 18: Seminar continuous delivery 19092013

Release Management: XL release

Page 19: Seminar continuous delivery 19092013

Release Management: XL release

Page 20: Seminar continuous delivery 19092013

Frameworks

Page 21: Seminar continuous delivery 19092013

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

Page 22: Seminar continuous delivery 19092013

Demo

Page 23: Seminar continuous delivery 19092013

Questions