The video of this talk is online at: https://vimeo.com/album/3693804/video/148158715
Christmas lightning talk about Cambridge Crystallographic Data Centre's adoption of Continuous Integration, and the unexpected benefits it gave us.
2. www.ccdc.cam.ac.uk
2
The Cambridge Crystallographic Data Centre
Established in 1965.
- UK Registered Charity.
- Financially self-supporting, not-for-profit.
- University Partner Institute.
International Data Repository
Archive of crystal structure data
High quality scientific database
Scientific Software Provider
Search/analysis/visualisation tools
Scientific applications
Collaborative Research Organisation
New methodologies
Fundamental research
Employer of around 60
permanent staff
- Scientific editors
- Software developers
- Applications scientists
- Cambridge, UK
- Rutgers University, US
4. www.ccdc.cam.ac.uk
4
Development Context
• C++, Python, Fortran (decades old) and more
• No high-level support for CI, due to 2- to 3-day builds!
Several million lines of
code
• We had build and release automation in the ‘80s
• Many more manual layers added since then
• Couldn’t remember the last time we had a green build
Legacy build &
release tools & scripts
• Around four months elapsed time in preparation
• Too much manual effort, for release and testingOne release per year!
• Due to effort currently required in each release
Belief: we cannot
release more often
6. www.ccdc.cam.ac.uk
6
C++ CI Journey…
C# team
started using
TeamCity
Jan 2014:
started
background-
project for
our TeamCity
C++ builds
Sep 2014:
Big push to
move C++
builds to
TeamCity
Oct 2014:
C++
TeamCity
builds turned
on
7. www.ccdc.cam.ac.uk
7
Getting to Green
• Several people in concerted effort to get any green builds
• Before TeamCity, we hadn’t had any green builds in years!
14. www.ccdc.cam.ac.uk
14
Where are we now?
Much happier
developers!
Team
agreements
needed for
handling
build errors…
More reliable
infrastructure
required
Discussions
have started
on releasing
more often!
15. www.ccdc.cam.ac.uk
15
Initial Concerns –what really happened?
“Our builds are
too slow”
CI system
identified
bottlenecks, and
speeded up builds,
tests
Also got us new
build hardware
Easy to identify the
slow tests – either
speed them up, or
run less often
“Our builds
never
succeed”
CI system
massively
simplified fixing
build errors
Seeing test history
across all builds
exposes flicker
tests
Per-push feedback
within 15-30
minutes during the
day, instead of the
next morning
“Too many
warnings from
our code”
Fast feedback
made it viable to
treat warnings as
errors
Notas del editor
Every drug discovered in the last 30 years has in part owed its discovery to our database and software!
Inevitable mixture of new and legacy code, data, and build systems
Many manual tasks for release (despite multiple automation efforts)
Much testing by internal users
Don’t underestimate the value CI for providing or enabling:
Fast feedback to developers
All kinds of data about your builds
Integrations with other tools (for dashboards, code quality, deployment, etc.)
Visibility to internal stakeholders
I wish I'd known about the last three much earlier
It can be hard to persuade stakeholders in advance of the value
Just do it!
Implementing CI has enabled much faster innovation than I dreamed possible
Many code-quality things we’d talked about for years are now just implemented