Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Continuous Delivery in Java - Things we learned...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Paolo D'Incau
November 07, 2015
Programming
61
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Continuous Delivery in Java - Things we learned hurting ourselves
The slides of my talk at the Italian Agile Day 2015 about Continuous Delivery in Java
Paolo D'Incau
November 07, 2015
More Decks by Paolo D'Incau
See All by Paolo D'Incau
Exploring Processes and OTP behaviours in Erlang
pdincau
2
400
Other Decks in Programming
See All in Programming
AIの中の人になってみる
htkym
0
120
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
5
530
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
240
わからない話を追いかけたら、プログラミング言語を作る側にいた
ydah
3
550
AWS Transform Customによる Spring Boot 2.xから4.xへのVerUp
satoshi256kbyte
2
100
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
7.8k
不幸な GC
chencmd
0
750
リアルな遅延を測る仕様
kota_yata
1
130
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.8k
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.8k
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
600
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Product Roadmaps are Hard
iamctodd
55
12k
KATA
mclloyd
PRO
35
15k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.5k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Transcript
Continuous Delivery in Java Cose che abbiamo imparato facendoci del
male Italian Agile Day ‘15
@pdincau Here I am
Continuous Delivery? What is
“Continuous Delivery is a software development discipline where you build
software in such a way that the software can be released to production at any time. ” Martin Fowler* * martinfowler.com/bliki/ContinuousDelivery.html
“Continuous Delivery is nothing more than reducing the stress you
get when you deliver business value to the customer ” My Team* * Come and ask!
n t Continuous Delivery... What is
Continuous Integration
Continuous Deployment
“Safety" Deploy rules
Technically Speaking
Deploy any specific working version to production with confidence
3 ways
Rodeo Style
No tests Manual deploy Snowflake environments Non predictable outcome Few
or very little collaboration
By the book
Fast Feedback Done is released Shared responsibility Everything is automated
Repeatable and reliable process
Start small and iterate
Once upon a time...
We did know...
Previous deployment process was painful Database continuously change Different environments
Iteration n.1 No Automation
Environment replica on AWS Manual build Manual DB migrations Deploy
with scp to remote JBoss
It was our own choice...
...but we felt like this
No automation at all When was our last deploy?
A taste of Automation Iteration n.2
Set up a basic Jenkins installation Test and build triggered
on push DB migration using Liquibase Task to deploy on AWS
This worked for a while
Errors in MyBatis DB mappers Wrong/Missing wirings
Yay! Environments are ready!
Deploy Everywhere Iteration n.3
New Jenkins job to run IT Track slowest tests First
official deploy an all environments
…with different DB drivers !#$?!
Duplication
Incorrect use of mvn profiles N-builds for N-environments Long build
and deploy time
Single Artefact Iteration n.4
Got rid of configurations using JBoss *Unique* artefact for all
environments Deploy version X.Y.Z from Nexus
We started getting fast
But QA were not so happy Branches, branches everywhere!
Make them happy Iteration n.5
AWS is for nightly builds Tags over branches Track deployed
version
Acceptance tests
Explained values and motivations to Product Owner
Remove Candidate Clean Up Clean Up Meet the pipeline Migrate
Database Fetch Unit Tests Build Build Slow Tests Integration Tests Integration Deploy Publish UAT QA and Publish
Where to go next
Parallel builds Environments Provisioning
Things we would change...
Pipeline with “placeholders” Extract configurations Explain at the beginning the
values behind
Things we would do again...
Build the pipeline iteratively Use of Liquibase Share pipeline responsibility
Recommended reading
That’s all!
Thanks @pdincau