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
46
0
Share
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
380
Other Decks in Programming
See All in Programming
iOS機能開発のAI環境と起きた変化
ryunakayama
0
170
感情を設計する
ichimichi
5
1.3k
의존성 주입과 모듈화
fornewid
0
120
「効かない!」依存性注入(DI)を活用したAPI Platformのエラーハンドリング奮闘記
mkmk884
0
320
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
230
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
250
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
2
150
ファインチューニングせずメインコンペを解く方法
pokutuna
0
280
How Swift's Type System Guides AI Agents
koher
0
190
アーキテクチャモダナイゼーションとは何か
nwiizo
17
4.7k
[PHPerKaigi 2026]PHPerKaigi2025の企画CodeGolfが最高すぎて社内で内製して半年運営して得た内製と運営の知見
ikezoemakoto
0
340
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
The Language of Interfaces
destraynor
162
26k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
240
Git: the NoSQL Database
bkeepers
PRO
432
67k
We Are The Robots
honzajavorek
0
210
Side Projects
sachag
455
43k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9k
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