Speakers
Paul Julius – Willowbark Consulting
Anders Wallgren – Chief Technical Officer Electric Cloud
www.electric-cloud.com
Introduction
In the past…
Teams spent weeks or longer verifying that applications
worked
Time spent „integrating‟ was tortuous, lead to integration
„storms‟ of broken builds
Developers would have to track down bugs introduced
months earlier
The answer to this painful process is Continuous Integration
Auditing
Virtualization
Reporting
Solution
Unified Dashboard for all builds
Consistent build infrastructure
Templated, resuable build infrastructure
On-demand Builds
Ad hoc, as needed builds
On-Stimuli Builds
Driven by changes in SCM
Automated build
and test for one
build tool, one
machine
Scheduled jobs
Features
Trigger builds
after check-ins
Automated build
and test for one
build tool, one
machine
Scheduled jobs
Web-based CruiseControl
access to results
gives you this
for Java/Ant
Features
Trigger builds Notifications via e-mail/RSS
after check-ins
Database of
October 9, 2008 build results Slide 18
Build Your Own?
Multiple servers, concurrency
Investment
Resource
pooling, load
Notifications via e-mail/RSS
balancing
Scheduled jobs
Web-based Features
Multiple jobs run
on one resource
Resource
selection criteria
access to
Trigger builds simultaneously
results
after check-ins Run job steps
in parallel
Multiple servers,
Database of
remote invocation
build results
Single job can use
October 9, 2008 multiple resources Slide 19
Build Your Own?
Better monitoring and control
Investment
Scheduled jobs
Web-based Features
Multiple jobs run
on one resource
Resource
selection criteria
access to
Trigger builds simultaneously
results
after check-ins Run job steps
in parallel
Multiple servers,
Database of
remote invocation
build results
Single job can use
October 9, 2008 multiple resources Slide 20
Build Your Own?
Better reporting
Investment
Scheduled jobs
Web-based Features
Multiple jobs run
on one resource
Resource
selection criteria
Cross-product
reports
access to
Trigger builds simultaneously
results
after check-ins Run job steps Tools for Resource
in parallel extracting utilization
Multiple servers,
Database of data from logs reports
remote invocation
build results
Single job can use
Annotate builds
October 9, 2008 multiple resources Slide 21
after completion
Build Your Own?
Better error handling
Investment
Scheduled jobs
Web-based Features
Multiple jobs run
on one resource
Resource
selection criteria
Cross-product
reports
access to
Trigger builds simultaneously
results
after check-ins Run job steps Tools for Resource
in parallel extracting utilization
Multiple servers,
Database of data from logs reports
remote invocation
build results
Single job can use
Annotate builds
October 9, 2008 multiple resources Slide 22
after completion
Build Your Own?
Handle multiple
Developer access
to production
builds
User independent groups
impersonation,
password
Shared access by management
multiple teams
Investment
LDAP Priorities
authentication
Monitor system View partial
Role-based status results of
Retry steps after
access control builds in
errors/ failures
Resource progress
pooling, load
Notifications via e-mail/RSS
balancing
Detect resource Logging and
Automated build Run multiple failures error reporting
and test for one builds Cancel jobs
build tool, one simultaneously
Customizable Timeouts for
machine On-demand job
reports runaway job
invocation via
steps
Web
Trend reports
Scheduled jobs
Web-based Features
Multiple jobs run
on one resource
Resource
selection criteria
Cross-product
reports
access to
Trigger builds simultaneously
results
after check-ins Run job steps Tools for Resource
in parallel extracting utilization
Multiple servers,
Database of data from logs reports
remote invocation
build results
Single job can use
Annotate builds
October 9, 2008 multiple resources Slide 23
after completion
Build Your Own?
More programming
Developer access
to production
builds
User features
impersonation,
password Modular,
Shared access by management Extensibility composable
multiple teams process steps
Investment
Parameters Control
LDAP Priorities
environment
authentication
Conditional steps for jobs
Monitor system View partial
Role-based status results of
Retry steps after
access control builds in
errors/ failures
Resource progress
pooling, load
Notifications via e-mail/RSS
balancing
Detect resource Logging and
Automated build Run multiple failures error reporting
and test for one builds Cancel jobs
build tool, one simultaneously
Customizable Timeouts for
machine On-demand job
reports runaway job
invocation via
steps
Web
Trend reports
Scheduled jobs
Web-based Features
Multiple jobs run
on one resource
Resource
selection criteria
Cross-product
reports
access to
Trigger builds simultaneously
results
after check-ins Run job steps Tools for Resource
in parallel extracting utilization
Multiple servers,
Database of data from logs reports
remote invocation
build results
Single job can use
Annotate builds
October 9, 2008 multiple resources Slide 24
after completion
Build Your Own? It Never Ends
Support multiple SCM integration,
Web interface for
languages and bill of materials
editing processes
build tools
Developer access
to production Command-line
User
builds interface
impersonation,
Portable across
password Modular,
hardware/OS
Shared access by management Extensibility composable
platforms
multiple teams process steps
Investment
Parameters Control
LDAP Priorities
environment
authentication
Conditional steps for jobs
Monitor system View partial
Role-based status results of
Retry steps after
access control builds in
errors/ failures
Resource progress
pooling, load
Notifications via e-mail/RSS
balancing
Detect resource Logging and
Automated build Run multiple failures error reporting
and test for one builds Cancel jobs
build tool, one simultaneously
Customizable Timeouts for
machine On-demand job
reports runaway job
invocation via
steps
Web
Trend reports
Scheduled jobs
Web-based Features
Multiple jobs run
on one resource
Resource
selection criteria
Cross-product
reports
access to
Trigger builds simultaneously
results
after check-ins Run job steps Tools for Resource
in parallel extracting utilization
Multiple servers,
Database of data from logs reports
remote invocation
build results
Single job can use
Annotate builds
October 9, 2008 multiple resources Slide 25
after completion
Build Your Own
You could try that
Before you do think about…
How much time do you have to write all that code?
How you are going to manage 200+ builds per day?
How are you going to get the build down from 4 hours to 15
minutes?
How are you going to manage hardware failure in your build
system?
Scheduled builds
Use cron for that
On demand builds
Build an intranet page, integrate it yourself with the current
build and source code management system
Stimuli builds
Build ad-hoc script attached to source code management
system
Scheduled Builds
cron, CruiseControl
On-demand Builds
Apache Continuum
Stimuli Builds
CruiseControl has some support
SourceControl plug-in
Willowbark Consulting
312.560.5351
PJ@WillowbarkConsulting.com
www.WillowbarkConsulting.com