● 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.
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.
Jenkins: master / slaves
● 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.
● “XL release is the most advanced enterprise release coordination
● 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.”