SlideShare a Scribd company logo
1 of 50
Download to read offline
CONTINUOUS DELIVERY
WITH GRADLE
BOB PAULIN / @BOBPAULIN / BOB@BOBPAULIN.COM
ABOUT ME
Independent Consultant
Business Enablement
Web Centric Platforms
Automation
I LOVE DELIVERING SOFTWARE
I WANT TO DELIVER SOFTWARE ALL THE TIME!
MULTIPLE TIMES A DAY!
WAIT PEOPLE ACTUALLY DO THAT?
SEVERAL MAJOR ECOMMERCE SHOPS
ETSY.COM DEPLOYS ABOUT 30 TIMES EACH DAY
MY PERSONAL RECORD 5
BENEFITS OF CONTINUOUS DELIVERY
Shorten the time it takes from conception to customer impact
Experiment more frequently
Do more concurrently
Delivery becomes a non-event
DELIVERING SOFTWARE CAN BE PAINFUL!
Needs to be Assembled
Needs to be Deployed
Needs to be Tested
How can I make sure I don't break existing stuff?
What happens if I do break something?
What about dependent systems?
How do I know what changed?
How do I control what goes in and what does not?
ALL THAT'S GOING TO TAKE ME AT LEAST 2
WEEKS!
RELEASE MANAGEMENT 101
Consistent Build Process
Functional/Regression Testing
Versioning
Source Code Management
Deployment Process
Rollback
RELEASE MANAGEMENT 501
Config Switches
Feature Branching
Modular Deployment
Throttling
Auto Provisioning
Auto-Scaling
TOOLS TO THE RESCUE!
BUILD TOOLS
Dependency Management
Packaging
Plugin Architecture
Lifecycle Management
Versioning
A RECIPE FOR CONTINUOUS DELIVERY
Gradle
Artifactory
Git
GRADLE
Build Tool
Groovy
Combines some of the best features of Ant and Maven
Conventions
Plugins
ARTIFACTORY
Binary Repository
JEE Web App
Supports Maven and Ivy
Open Source and Pro Licensed
GIT
Source Control Management
Distributed
Tagging/Branch/Merge
HOW DOES ALL THIS STUFF WORK
TOGETHER?
STEPS
SYSTEM INTERACTION
A BRIEF ASIDE ON SEMANTIC VERSIONING
LETS LOOK AT SOME CODE!
GRADLE PLUGINS
War Plugin
Cargo Plugin
Maven Plugin
GRADLE CONFIGURATIONS
CONFIG + CODE!
c ro {
ag
cn an rd =' o ct x
ot i eI
tm a7 '
pr = It gr pr en ( eP oe t( rj c .n + "d po Pr ")
ot
ne e. a sI tg tr p ry po et ev
.e l yo t)
dp oa l {
el y be
cn et =a tf c I
ot x
ri at d
fl = po et fl (r i at on od ah
ie
rj c. i ea tf cD w la Pt )
}
rm t {
eo e
hs nm = gt rp ry p oe te v+ "d p oH sn m"
ot a e
eP o et (r jc . n
. el yo t ae )
ue nm = gt rp ry p oe te v+ "d p oU eN m"
sr a e
eP o et (r jc . n
. el ys r ae )
ps wr = gt rp ry p oe te v+ "d p oP sw r"
as o d
eP o et (r jc . n
. el ya s od )
}
}
DON'T EMBED ENVIRONMENT DATA INTO THE
BUILD SCRIPT!
CREATE A USER PROPERTIES FILE INSTEAD.
DEPENDENCY MANAGEMENT

FOR YOUR APPLICATION AND FOR YOUR BUILD
b id ci t{
u ls r p
rp st re {
eo i oi s
mv n{ ul "t p :/ s. oa y eo gc ne tg o p/ ul c}
ae
r h ts /o s sn tp .r /o t n/ ru sp b i"
mv ne ta (
ae C nr l)
}
dp ne ce {
ee d ni s
ca sa h "a a .e ve :e v e- p: ."
ls p t
j vx sr l ts rl ta i2 5 ,
"r .r de ai p ui sg al - ag -l gn 06 1 ,
og g al .p .l gn : rd ec ro pu i :. ."
"r .j br tr g al -i :. . "
og a oe sa :r de g t0 63
}
}
d pn ec e {
e ed n is
df cr oe so = '. .'
e a gV ri n
13 3
df sr nV ri n = '. . .E ES '
e p ig es o
3 23 RL A E
df wo Je so = '. .'
e r 4V ri n
16 3
df ap la ne e so = ' .'
e o Al ic Vr in
10
cr o " r. oe as cr o cr oc r- br a :c ro es o " " r. o ea sc ro
ag o gc dh u .a g: ag - oe ue jr $a g Vr in , og cd hu . ag
cm ie "r .p ig rm w r: pi ga p $ p ig es o" " r. pi g rm wr :p
op l og sr n fa eo ks r n- o: sr nV r in, og sr nf ae o ks
" r. p ig rm wr :p i gc ne t$ pi g es o" "r . pi gr mw r: p ig
og sr nf ae o ks rn -o t x: sr nV ri n,o gs rn fa e ok sr n" r. p ig rm wr :p i ge pe so :s r nV ri n, " r. pi gr mw r :p
og sr nf ae o ks rn -x r si n$ pi ge s o" o gs rn f ae ok sr
" r. p ig rm wr :p i gw b$ pi ge s o" " r. pi gr mw r :p ig wb
og sr nf ae o ks rn -e : sr nV ri n, o gs r nf ae ok sr n -e
" aa . ev e: sl 12 , og sf js fj a i1 56," r .l 4: c- vr s fj
jv xs rl tj t :. "" r. l 4: l4 -p :. . " og sf jj l oe -l 4:
" r. o ea sj cs nj c sn mp e- s: . .""o al a c: oa la c: a pl
og cd hu .a k o: ak o- a pr al 19 3,a pl in ea pl i ne $o Al
cm ie "r .p ig rm w r. aa sr n- a am no b1 0 4R LA E )
op l (og sr n fa eo kd t :p ig dt -o g d: .. .E ES " {
ec ue md l:
xl d o ue
" l4 -p "
s fj a i
}
cm ie "r .p ig rm w r: pi gc r: s rn Vr in )
op l (og sr n fa eo ks r n- oe $p ig e so "{
ec ue md l:
xl d o ue
' om n- og n '
c mo s lg ig
}
cm ie ( r .s cw oj w oj cr :w oJ e so "
op l "o id . r4 :r 4- o e$ r4 Vr in )
{
ec ue md l:
xl d o ue
" l4 -p "
s fj a i
}

cm ie "o id .r 4: r 4- xe so s $ r 4V ri n)
op l ( r. sc w oj wo je t ni n: wo Je s o"
{
ec ue md l:
xl d o ue
" l4 -p "
s fj a i
ec ue md l:
xl d o ue
" l4 -o 41 "
s fj l gj 2
}
po ie Cm ie "a a. l e- p: ." " aa .e v e. s: s- p: . " " a a.
rv d do pl j vx e: la i 10 , j v xs rl tj p jp ai 20 , jv xs
ts Cm ie "u i: ui : .. " "r .p ig rm w r: pi gt s: s rn Vr in
et o pl jn t jn t3 81 , og sr n fa eo ks r n- et $p ig e so
}
GRADLE TASKS
t s u d tU la eP md p ns n 'e Ba cN m' < {
a k pa ep od d o( ee dO : gt rn h ae ) <
d fp m es o = p oe tv ri n
e oV ri n
r jc . es o
i ( p o et gt rd e) g ta kr p ( .a T s( :e es " )
f! rj c. eG a l( .e Ts G ah )h sa k " r la e )
pm es o + " $ rn ha e
oV r in = . b ac N m"
u la A ci e. eo io i sm vn el yr p mv ri n= p me so
po dr hv sr p st re .a e Dp oe .o .e s o
o Vr in
}
t s t g tp :G ta ){
a k a( ye i T g
tg ae =v ri n
aN m
es o
ms ae = " ee s o $ v ri n"
es g
R la e f {e so }
}
t s p s TR mt (y e Gt uh {
a k uh oe oe t p: i Ps )
ps Al =t u
uh l
re
}
t s q R la e{
a k ae es
dp ns nt s, w r g t rn ha e ud tU la e Pm u la Ac ie ,u d tV r
ee d O et a , eB ac N m, pa e po dd o, p od rh v s pa ee
}
GRADLE TASK DEPENDENCIES
/ Ts D pn ec e
/ ak e ed ni s
w rm sR nf e ts
a .u t uA tr e t
t gm sR nf e wr
a .u t uA tr a
u dt Ul ae Pm m sR nf e tg
p ae p od do .u tu A tr a
u la Ac ie .u t uA tr ud t Ul ae Pm
p od r hv sm sR nf e p ae po dd o
u dt Vr in ub r ms Rn fe u la Ac i e
p ae e so Nm e. ut u At r po dr hv s
a de so Ud t . u tu At ru d tV ri nu br
d Vr i np ae ms Rn f e pa ee so N me
c mi Vr in pa e ms Rn fe a de so U dt
o mt e so Ud t. ut u At r dV ri np ae
p sT Rm t . ut u At rc mi V ri np ae
u ho e oe ms Rn fe om te so Ud t
DEMO TIME!

A SIMPLE BOOK REVIEW WEBSITE
ADDING BOOK RATINGS SCORE TO THE SITE
CREATING A FEATURE BRANCH
WRITE THE CODE... WE ALREADY KNOW HOW
TO DO THIS!
BUILD PROCESS
When you say you're code is done the fun is just beginning...
TESTING PROCESS
Are you sure you're done?
RELEASE PROCESS
Yup we're done!
DEPLOYMENT PROCESS
Oh yeah now we're done
AN ASIDE
Why is deploy separate from release?
DEPLOYMENT PROCESS: TAKE 2
Oh ****! What have we done?!?!
KNOW YOUR ROLLBACK STRATEGY BEFORE
EVERY DEPLOYMENT
ENTERPRISE ARCHITECTURE
SOME PARTING THOUGHTS ON GRADLE AND
CONTINOUS DELIVERY
REFERENCES
CODE AND PRESENTATION

GRADLE
GRADLE RELEASE PLUGIN
GIT
ARTIFACTORY
CARGO
SEMANTIC VERSIONING
ETSY'S MIKE BRITTAIN "CONTINUOUS DELIVERY: THE DIRTY DETAILS"
BOB PAULIN
BOB PAULIN / @BOBPAULIN / BOB@BOBPAULIN.COM

More Related Content

What's hot

WordPress in 30 minutes
WordPress in 30 minutesWordPress in 30 minutes
WordPress in 30 minutesOwen Winkler
 
Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Pivorak MeetUp
 
Breathe life into your designer!
Breathe life into your designer!Breathe life into your designer!
Breathe life into your designer!Cédric Brun
 
No Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentNo Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentDuretti H.
 
Profile Serialization IIPC GA 2015
Profile Serialization IIPC GA 2015Profile Serialization IIPC GA 2015
Profile Serialization IIPC GA 2015Sawood Alam
 
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Guy Boulianne
 
Certificates and Credentials new
Certificates and Credentials newCertificates and Credentials new
Certificates and Credentials newsidharthbiswas9185
 
Certificates
CertificatesCertificates
CertificatesJeff CHen
 
Hsc bangla 2nd only for dinajpur
Hsc bangla 2nd only for dinajpurHsc bangla 2nd only for dinajpur
Hsc bangla 2nd only for dinajpurrakimsiddique
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestAndrea Adami
 

What's hot (19)

Winload.efi.mui
Winload.efi.muiWinload.efi.mui
Winload.efi.mui
 
WordPress in 30 minutes
WordPress in 30 minutesWordPress in 30 minutes
WordPress in 30 minutes
 
Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"
 
Breathe life into your designer!
Breathe life into your designer!Breathe life into your designer!
Breathe life into your designer!
 
No Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentNo Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven Development
 
Profile Serialization IIPC GA 2015
Profile Serialization IIPC GA 2015Profile Serialization IIPC GA 2015
Profile Serialization IIPC GA 2015
 
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
 
TicsDzm
TicsDzmTicsDzm
TicsDzm
 
Occupations 1
Occupations 1Occupations 1
Occupations 1
 
Coverletter&Resume41416
Coverletter&Resume41416Coverletter&Resume41416
Coverletter&Resume41416
 
Certificates and Credentials new
Certificates and Credentials newCertificates and Credentials new
Certificates and Credentials new
 
Procesador de textos
Procesador de textosProcesador de textos
Procesador de textos
 
Certificates
CertificatesCertificates
Certificates
 
Aaaaaa
AaaaaaAaaaaa
Aaaaaa
 
Hsc bangla 2nd only for dinajpur
Hsc bangla 2nd only for dinajpurHsc bangla 2nd only for dinajpur
Hsc bangla 2nd only for dinajpur
 
Sopas de letras varias
Sopas de letras variasSopas de letras varias
Sopas de letras varias
 
Caça palavras 8ª serie
Caça palavras 8ª serieCaça palavras 8ª serie
Caça palavras 8ª serie
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit Test
 
4 IATA Training
4   IATA Training4   IATA Training
4 IATA Training
 

Viewers also liked

Reactive Programming Models for IoT
Reactive Programming Models for IoTReactive Programming Models for IoT
Reactive Programming Models for IoTTodd Montgomery
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native JourneyMatt Stine
 
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVMQCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVMAzul Systems, Inc.
 
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...Jérôme Petazzoni
 
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...dev2ops
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Jérôme Petazzoni
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reza Rahman
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
 
An introduction to Wardley Maps
An introduction to Wardley MapsAn introduction to Wardley Maps
An introduction to Wardley MapsSimon Wardley
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 
Generation Z and the Future of Technology
Generation Z and the Future of TechnologyGeneration Z and the Future of Technology
Generation Z and the Future of TechnologyPamela Pavliscak
 

Viewers also liked (12)

Reactive Programming Models for IoT
Reactive Programming Models for IoTReactive Programming Models for IoT
Reactive Programming Models for IoT
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native Journey
 
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVMQCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
 
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
 
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
 
IBM BPM & ODM
IBM BPM & ODMIBM BPM & ODM
IBM BPM & ODM
 
An introduction to Wardley Maps
An introduction to Wardley MapsAn introduction to Wardley Maps
An introduction to Wardley Maps
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 
Generation Z and the Future of Technology
Generation Z and the Future of TechnologyGeneration Z and the Future of Technology
Generation Z and the Future of Technology
 

Similar to Continuous delivery with Gradle

Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and ProfitNicholas Jansma
 
IPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableIPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableRobert Lemke
 
Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 DISID
 
Building the Organization of the Future: Leveraging Machine Learning
Building the Organization of the Future: Leveraging Machine LearningBuilding the Organization of the Future: Leveraging Machine Learning
Building the Organization of the Future: Leveraging Machine LearningAmazon Web Services
 
Building a team of misfits innovation team - gustavo razzetti april 3, 2018
Building a team of misfits   innovation team - gustavo razzetti april 3, 2018Building a team of misfits   innovation team - gustavo razzetti april 3, 2018
Building a team of misfits innovation team - gustavo razzetti april 3, 2018Liberationist, Change Leadership
 
Portafolio Francisco Díaz Tazza
Portafolio Francisco Díaz TazzaPortafolio Francisco Díaz Tazza
Portafolio Francisco Díaz TazzaFranciscoDiazTazza
 
Interior Design Portfolio
Interior Design PortfolioInterior Design Portfolio
Interior Design PortfolioCassandra Ryan
 
Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Pivorak MeetUp
 
Passivhaus on a shoestring
Passivhaus on a shoestringPassivhaus on a shoestring
Passivhaus on a shoestringPaul Testa
 
The Library As Indicator Species: Evolution, or Extinction?
The Library As Indicator Species: Evolution, or Extinction?The Library As Indicator Species: Evolution, or Extinction?
The Library As Indicator Species: Evolution, or Extinction?char booth
 
Type Systems on the example of TypeScript
Type Systems on the example of TypeScriptType Systems on the example of TypeScript
Type Systems on the example of TypeScriptArtur Skowroński
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docxherminaprocter
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docxodiliagilby
 
Le futur des communications par l'internet des objets - Présentation de SAGA ...
Le futur des communications par l'internet des objets - Présentation de SAGA ...Le futur des communications par l'internet des objets - Présentation de SAGA ...
Le futur des communications par l'internet des objets - Présentation de SAGA ...ioTHEATRE
 
Spacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerSpacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerJulio Terra
 

Similar to Continuous delivery with Gradle (20)

Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and Profit
 
IPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableIPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the Unplannable
 
Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016
 
Building the Organization of the Future: Leveraging Machine Learning
Building the Organization of the Future: Leveraging Machine LearningBuilding the Organization of the Future: Leveraging Machine Learning
Building the Organization of the Future: Leveraging Machine Learning
 
Building a team of misfits innovation team - gustavo razzetti april 3, 2018
Building a team of misfits   innovation team - gustavo razzetti april 3, 2018Building a team of misfits   innovation team - gustavo razzetti april 3, 2018
Building a team of misfits innovation team - gustavo razzetti april 3, 2018
 
Portafolio Francisco Díaz Tazza
Portafolio Francisco Díaz TazzaPortafolio Francisco Díaz Tazza
Portafolio Francisco Díaz Tazza
 
Interior Design Portfolio
Interior Design PortfolioInterior Design Portfolio
Interior Design Portfolio
 
Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"
 
Passivhaus on a shoestring
Passivhaus on a shoestringPassivhaus on a shoestring
Passivhaus on a shoestring
 
The Library As Indicator Species: Evolution, or Extinction?
The Library As Indicator Species: Evolution, or Extinction?The Library As Indicator Species: Evolution, or Extinction?
The Library As Indicator Species: Evolution, or Extinction?
 
Type Systems on the example of TypeScript
Type Systems on the example of TypeScriptType Systems on the example of TypeScript
Type Systems on the example of TypeScript
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
 
Resume
ResumeResume
Resume
 
Resume
ResumeResume
Resume
 
Le futur des communications par l'internet des objets - Présentation de SAGA ...
Le futur des communications par l'internet des objets - Présentation de SAGA ...Le futur des communications par l'internet des objets - Présentation de SAGA ...
Le futur des communications par l'internet des objets - Présentation de SAGA ...
 
Spacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerSpacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own Server
 
Resurgence of Technology Driven Change
Resurgence of Technology Driven ChangeResurgence of Technology Driven Change
Resurgence of Technology Driven Change
 
Cyber Security - Becoming Evil
Cyber Security - Becoming EvilCyber Security - Becoming Evil
Cyber Security - Becoming Evil
 
Hacking with Love
Hacking with LoveHacking with Love
Hacking with Love
 

More from Bob Paulin

Fundraising At Apache
Fundraising At ApacheFundraising At Apache
Fundraising At ApacheBob Paulin
 
Open Development When You're Not in Charge
Open Development When You're Not in ChargeOpen Development When You're Not in Charge
Open Development When You're Not in ChargeBob Paulin
 
Apache When You're Not in Charge
Apache When You're Not in ChargeApache When You're Not in Charge
Apache When You're Not in ChargeBob Paulin
 
Modular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterModular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterBob Paulin
 
Microservice Networking in Anger
Microservice Networking in AngerMicroservice Networking in Anger
Microservice Networking in AngerBob Paulin
 
User Groups: The Gateway to Apache
User Groups: The Gateway to ApacheUser Groups: The Gateway to Apache
User Groups: The Gateway to ApacheBob Paulin
 
What's My Modularity
What's My ModularityWhat's My Modularity
What's My ModularityBob Paulin
 
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMDo more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMBob Paulin
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiBob Paulin
 
Frontend 'vs' Backend Getting the Right Mix
Frontend 'vs' Backend   Getting the Right MixFrontend 'vs' Backend   Getting the Right Mix
Frontend 'vs' Backend Getting the Right MixBob Paulin
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBob Paulin
 
Code Quality Practice and Tools
Code Quality Practice and ToolsCode Quality Practice and Tools
Code Quality Practice and ToolsBob Paulin
 

More from Bob Paulin (12)

Fundraising At Apache
Fundraising At ApacheFundraising At Apache
Fundraising At Apache
 
Open Development When You're Not in Charge
Open Development When You're Not in ChargeOpen Development When You're Not in Charge
Open Development When You're Not in Charge
 
Apache When You're Not in Charge
Apache When You're Not in ChargeApache When You're Not in Charge
Apache When You're Not in Charge
 
Modular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterModular Open Source in Java for Now and Later
Modular Open Source in Java for Now and Later
 
Microservice Networking in Anger
Microservice Networking in AngerMicroservice Networking in Anger
Microservice Networking in Anger
 
User Groups: The Gateway to Apache
User Groups: The Gateway to ApacheUser Groups: The Gateway to Apache
User Groups: The Gateway to Apache
 
What's My Modularity
What's My ModularityWhat's My Modularity
What's My Modularity
 
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMDo more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGi
 
Frontend 'vs' Backend Getting the Right Mix
Frontend 'vs' Backend   Getting the Right MixFrontend 'vs' Backend   Getting the Right Mix
Frontend 'vs' Backend Getting the Right Mix
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
 
Code Quality Practice and Tools
Code Quality Practice and ToolsCode Quality Practice and Tools
Code Quality Practice and Tools
 

Recently uploaded

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 

Recently uploaded (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 

Continuous delivery with Gradle

  • 1. CONTINUOUS DELIVERY WITH GRADLE BOB PAULIN / @BOBPAULIN / BOB@BOBPAULIN.COM
  • 2. ABOUT ME Independent Consultant Business Enablement Web Centric Platforms Automation
  • 3. I LOVE DELIVERING SOFTWARE I WANT TO DELIVER SOFTWARE ALL THE TIME! MULTIPLE TIMES A DAY!
  • 5. SEVERAL MAJOR ECOMMERCE SHOPS ETSY.COM DEPLOYS ABOUT 30 TIMES EACH DAY MY PERSONAL RECORD 5
  • 6. BENEFITS OF CONTINUOUS DELIVERY Shorten the time it takes from conception to customer impact Experiment more frequently Do more concurrently Delivery becomes a non-event
  • 7. DELIVERING SOFTWARE CAN BE PAINFUL! Needs to be Assembled Needs to be Deployed Needs to be Tested How can I make sure I don't break existing stuff? What happens if I do break something? What about dependent systems? How do I know what changed? How do I control what goes in and what does not?
  • 8. ALL THAT'S GOING TO TAKE ME AT LEAST 2 WEEKS!
  • 9. RELEASE MANAGEMENT 101 Consistent Build Process Functional/Regression Testing Versioning Source Code Management Deployment Process Rollback
  • 10. RELEASE MANAGEMENT 501 Config Switches Feature Branching Modular Deployment Throttling Auto Provisioning Auto-Scaling
  • 11. TOOLS TO THE RESCUE!
  • 14. A RECIPE FOR CONTINUOUS DELIVERY Gradle Artifactory Git
  • 15. GRADLE Build Tool Groovy Combines some of the best features of Ant and Maven Conventions Plugins
  • 16. ARTIFACTORY Binary Repository JEE Web App Supports Maven and Ivy Open Source and Pro Licensed
  • 18. HOW DOES ALL THIS STUFF WORK TOGETHER?
  • 19. STEPS
  • 21. A BRIEF ASIDE ON SEMANTIC VERSIONING
  • 22. LETS LOOK AT SOME CODE!
  • 23. GRADLE PLUGINS War Plugin Cargo Plugin Maven Plugin
  • 25. c ro { ag cn an rd =' o ct x ot i eI tm a7 ' pr = It gr pr en ( eP oe t( rj c .n + "d po Pr ") ot ne e. a sI tg tr p ry po et ev .e l yo t) dp oa l { el y be cn et =a tf c I ot x ri at d fl = po et fl (r i at on od ah ie rj c. i ea tf cD w la Pt ) } rm t { eo e hs nm = gt rp ry p oe te v+ "d p oH sn m" ot a e eP o et (r jc . n . el yo t ae ) ue nm = gt rp ry p oe te v+ "d p oU eN m" sr a e eP o et (r jc . n . el ys r ae ) ps wr = gt rp ry p oe te v+ "d p oP sw r" as o d eP o et (r jc . n . el ya s od ) } }
  • 26. DON'T EMBED ENVIRONMENT DATA INTO THE BUILD SCRIPT! CREATE A USER PROPERTIES FILE INSTEAD.
  • 27. DEPENDENCY MANAGEMENT FOR YOUR APPLICATION AND FOR YOUR BUILD
  • 28. b id ci t{ u ls r p rp st re { eo i oi s mv n{ ul "t p :/ s. oa y eo gc ne tg o p/ ul c} ae r h ts /o s sn tp .r /o t n/ ru sp b i" mv ne ta ( ae C nr l) } dp ne ce { ee d ni s ca sa h "a a .e ve :e v e- p: ." ls p t j vx sr l ts rl ta i2 5 , "r .r de ai p ui sg al - ag -l gn 06 1 , og g al .p .l gn : rd ec ro pu i :. ." "r .j br tr g al -i :. . " og a oe sa :r de g t0 63 } }
  • 29. d pn ec e { e ed n is df cr oe so = '. .' e a gV ri n 13 3 df sr nV ri n = '. . .E ES ' e p ig es o 3 23 RL A E df wo Je so = '. .' e r 4V ri n 16 3 df ap la ne e so = ' .' e o Al ic Vr in 10 cr o " r. oe as cr o cr oc r- br a :c ro es o " " r. o ea sc ro ag o gc dh u .a g: ag - oe ue jr $a g Vr in , og cd hu . ag cm ie "r .p ig rm w r: pi ga p $ p ig es o" " r. pi g rm wr :p op l og sr n fa eo ks r n- o: sr nV r in, og sr nf ae o ks " r. p ig rm wr :p i gc ne t$ pi g es o" "r . pi gr mw r: p ig og sr nf ae o ks rn -o t x: sr nV ri n,o gs rn fa e ok sr n" r. p ig rm wr :p i ge pe so :s r nV ri n, " r. pi gr mw r :p og sr nf ae o ks rn -x r si n$ pi ge s o" o gs rn f ae ok sr " r. p ig rm wr :p i gw b$ pi ge s o" " r. pi gr mw r :p ig wb og sr nf ae o ks rn -e : sr nV ri n, o gs r nf ae ok sr n -e " aa . ev e: sl 12 , og sf js fj a i1 56," r .l 4: c- vr s fj jv xs rl tj t :. "" r. l 4: l4 -p :. . " og sf jj l oe -l 4: " r. o ea sj cs nj c sn mp e- s: . .""o al a c: oa la c: a pl og cd hu .a k o: ak o- a pr al 19 3,a pl in ea pl i ne $o Al cm ie "r .p ig rm w r. aa sr n- a am no b1 0 4R LA E ) op l (og sr n fa eo kd t :p ig dt -o g d: .. .E ES " { ec ue md l: xl d o ue " l4 -p " s fj a i } cm ie "r .p ig rm w r: pi gc r: s rn Vr in ) op l (og sr n fa eo ks r n- oe $p ig e so "{ ec ue md l: xl d o ue ' om n- og n ' c mo s lg ig } cm ie ( r .s cw oj w oj cr :w oJ e so " op l "o id . r4 :r 4- o e$ r4 Vr in ) { ec ue md l: xl d o ue " l4 -p " s fj a i } cm ie "o id .r 4: r 4- xe so s $ r 4V ri n) op l ( r. sc w oj wo je t ni n: wo Je s o" { ec ue md l: xl d o ue " l4 -p " s fj a i ec ue md l: xl d o ue " l4 -o 41 " s fj l gj 2 } po ie Cm ie "a a. l e- p: ." " aa .e v e. s: s- p: . " " a a. rv d do pl j vx e: la i 10 , j v xs rl tj p jp ai 20 , jv xs ts Cm ie "u i: ui : .. " "r .p ig rm w r: pi gt s: s rn Vr in et o pl jn t jn t3 81 , og sr n fa eo ks r n- et $p ig e so }
  • 31. t s u d tU la eP md p ns n 'e Ba cN m' < { a k pa ep od d o( ee dO : gt rn h ae ) < d fp m es o = p oe tv ri n e oV ri n r jc . es o i ( p o et gt rd e) g ta kr p ( .a T s( :e es " ) f! rj c. eG a l( .e Ts G ah )h sa k " r la e ) pm es o + " $ rn ha e oV r in = . b ac N m" u la A ci e. eo io i sm vn el yr p mv ri n= p me so po dr hv sr p st re .a e Dp oe .o .e s o o Vr in }
  • 32. t s t g tp :G ta ){ a k a( ye i T g tg ae =v ri n aN m es o ms ae = " ee s o $ v ri n" es g R la e f {e so } } t s p s TR mt (y e Gt uh { a k uh oe oe t p: i Ps ) ps Al =t u uh l re }
  • 33. t s q R la e{ a k ae es dp ns nt s, w r g t rn ha e ud tU la e Pm u la Ac ie ,u d tV r ee d O et a , eB ac N m, pa e po dd o, p od rh v s pa ee }
  • 35. / Ts D pn ec e / ak e ed ni s w rm sR nf e ts a .u t uA tr e t t gm sR nf e wr a .u t uA tr a u dt Ul ae Pm m sR nf e tg p ae p od do .u tu A tr a u la Ac ie .u t uA tr ud t Ul ae Pm p od r hv sm sR nf e p ae po dd o u dt Vr in ub r ms Rn fe u la Ac i e p ae e so Nm e. ut u At r po dr hv s a de so Ud t . u tu At ru d tV ri nu br d Vr i np ae ms Rn f e pa ee so N me c mi Vr in pa e ms Rn fe a de so U dt o mt e so Ud t. ut u At r dV ri np ae p sT Rm t . ut u At rc mi V ri np ae u ho e oe ms Rn fe om te so Ud t
  • 36. DEMO TIME! A SIMPLE BOOK REVIEW WEBSITE
  • 37. ADDING BOOK RATINGS SCORE TO THE SITE
  • 39. WRITE THE CODE... WE ALREADY KNOW HOW TO DO THIS!
  • 40. BUILD PROCESS When you say you're code is done the fun is just beginning...
  • 41. TESTING PROCESS Are you sure you're done?
  • 43. DEPLOYMENT PROCESS Oh yeah now we're done
  • 44. AN ASIDE Why is deploy separate from release?
  • 45. DEPLOYMENT PROCESS: TAKE 2 Oh ****! What have we done?!?!
  • 46. KNOW YOUR ROLLBACK STRATEGY BEFORE EVERY DEPLOYMENT
  • 48. SOME PARTING THOUGHTS ON GRADLE AND CONTINOUS DELIVERY
  • 49. REFERENCES CODE AND PRESENTATION GRADLE GRADLE RELEASE PLUGIN GIT ARTIFACTORY CARGO SEMANTIC VERSIONING ETSY'S MIKE BRITTAIN "CONTINUOUS DELIVERY: THE DIRTY DETAILS"
  • 50. BOB PAULIN BOB PAULIN / @BOBPAULIN / BOB@BOBPAULIN.COM