Hundreds of projects, thousands of jobs, each generating data about the status, commit, change logs and quality reports of your projects. How can you restore order in this amount of data and use it to gather useful information about your projects?
> In this talk, I will explain how I collect the data over thousands of jobs, commit after commit, build after build, how he stored it and used it in turn to extract useful information and to inject this data as feedback into our pipelines.
4. WHO AM I?
▸ Damien Coraboeuf (@DamienCoraboeuf)
▸ Family, hiking, good food, good beer, role playing, …
▸ Born to Java in 1996, developer, architect
▸ Working in Continuous Delivery since 2008
▸ Automating pipelines at scale
6. CI/CD IN A NUTSHELL
Ideas, features, fixes Happy customer
Fast feedback
Security
Quality at all times
Automation
Traceability / Accountability
Ready to release at all times
I work (mostly) here
7. CI/CD ECOSYSTEM
It starts with some code…
Linked with some issues…
We build it….
We package and publish…
We run some tests…
We perform quality scans….
We need some infra…
8. IT’S POURING INFORMATION ALL DAY LONG
A
rtefacts
Depen
d
en
cies
Triggering other
pipelinesRuns
tests
Collects
results
Scans
co
d
e
M
easures
perform
ances
Tags
/
com
m
its
Tickets
Deploying
12. PUTTING SOME ORDER INTO THIS DATA
▸ Projects
▸ Branches
▸ Builds
▸ Validations
▸ Promotions
Metadata!!
13. SEEING IS BELIEVING
▸ One tool to rule them all
▸ http://nemerosa.github.io/ontrack/
Builds
Promotions
Validations
Validation status
System of records for anything related to CI/CD
14. SEEING IS BELIEVING
▸ Filtering
Promoted … despite anomalies in
deployments
▸ Status of your pipeline in one glance
18. SEEING IS BELIEVING
▸ Change logs between builds, between versions
▸ Permalink for automated release notes
▸ Supports GitHub, JIRA, Subversion, BitBucket…
19. SEEING IS BELIEVING
▸ Using cross referenced information for searches:
▸ Where is my ticket?
▸ Where is my commit?
Example: where is my #600 ticket?
Here you go!
29. FEEDING INFORMATION INTO ONTRACK
‣ Ontrack has a rich API
‣ … but better use the Ontrack Jenkins plug-in
‣ 100% integration with the Jenkins pipeline DSL
‣ … but @ Collibra, we provide integrated wrappers
Typical workflow:
32. AUTOMATED FEEDBACK
▸ The collected information can be used in the ecosystem
▸ Based on Ontrack DSL
or GraphQL
▸ Example: promotions used
as inputs for on-demand deployments jobs
33. META INFORMATION AT ALL LEVELS
▸ Attaching built-in or
custom properties to
all levels - projects,
branches, builds, etc.
▸ Used for reporting or
to drive processes
▸ Can be entered
manually or
automatically
37. CUSTOMISING THE SOLUTION
▸ TV wallboards for development teams
▸ Version auto upgrade with PR on promotion
▸ Dependency graph
▸ …
▸ Imagination is the limit
39. PR CREATION ON PROMOTION FOR AUTO VERSION UPGRADES
A B
depends on
Manual update of version of A in B
Little automation
Loose coupling
Little control of quality
40. PR CREATION ON PROMOTION FOR AUTO VERSION UPGRADES
A B
depends on
Automated PR for update of version of A in B
Control of quality
Strong coupling
Automation
41. PR CREATION ON PROMOTION FOR AUTO VERSION UPGRADES
A B
depends on
Promotion
B A dependency
configuration
A
Subscription
Queue —> Listener Creates a PR
for update of A
in B
PR build for
control
Automated merge
after controls OK
Listens to
Control of quality Loose coupling Automation
42. DEPENDENCY GRAPHS
Ontrack has built-in dependencies…
… which can be used to build a graph (in Neo4j)
… and execute complex queries
… to detect dependencies anomalies