Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
45
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
360
Other Decks in Programming
See All in Programming
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
210
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
AIエージェントの設計で注意するべきポイント6選
har1101
5
2.2k
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
110
Tinkerbellから学ぶ、Podで DHCPをリッスンする手法
tomokon
0
140
愛される翻訳の秘訣
kishikawakatsumi
3
340
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
160
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
0
260
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
360
Patterns of Patterns
denyspoltorak
0
300
Basic Architectures
denyspoltorak
0
110
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
160
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
0
1.9k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
250
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
49
The untapped power of vector embeddings
frankvandijk
1
1.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Abbi's Birthday
coloredviolet
0
3.7k
Scaling GitHub
holman
464
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
YesSQL, Process and Tooling at Scale
rocio
174
15k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
0
100
Thoughts on Productivity
jonyablonski
73
5k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
280
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