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
Paolo D'Incau
November 07, 2015
Programming
0
42
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
Tweet
Share
More Decks by Paolo D'Incau
See All by Paolo D'Incau
Exploring Processes and OTP behaviours in Erlang
pdincau
2
350
Other Decks in Programming
See All in Programming
MDN Web Docs に日本語翻訳でコントリビュートしたくなる
ohmori_yusuke
1
120
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
260
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
1
18k
20250704_教育事業におけるアジャイルなデータ基盤構築
hanon52_
5
790
レベル1の開発生産性向上に取り組む − 日々の作業の効率化・自動化を通じた改善活動
kesoji
0
220
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
87
29k
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
640
Deep Dive into ~/.claude/projects
hiragram
14
2.5k
GitHub Copilot and GitHub Codespaces Hands-on
ymd65536
2
150
Result型で“失敗”を型にするPHPコードの書き方
kajitack
5
650
脱Riverpod?fqueryで考える、TanStack Queryライクなアーキテクチャの可能性
ostk0069
0
140
AIと”コードの評価関数”を共有する / Share the "code evaluation function" with AI
euglena1215
1
170
Featured
See All Featured
Six Lessons from altMBA
skipperchong
28
3.9k
Rebuilding a faster, lazier Slack
samanthasiow
82
9.1k
It's Worth the Effort
3n
185
28k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Statistics for Hackers
jakevdp
799
220k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Documentation Writing (for coders)
carmenintech
72
4.9k
Why Our Code Smells
bkeepers
PRO
336
57k
What's in a price? How to price your products and services
michaelherold
246
12k
Agile that works and the tools we love
rasmusluckow
329
21k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
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