SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
@raquelpau @alexsotob#Voxxed
Controlling Technical Debt with
Continuous Delivery
Raquel Pau - Alex Soto
WalkMod - RedHat
WA L K M O D F O U N D E R
B E S T P R A C T I C E S E N T H U S I A S T
@ R A Q U E L PA U
R A Q U E L PA U
R E D H AT E N G I N E E R
O P E N S O U R C E A D V O C AT E
@ A L E X S O T O B
A L E X S O T O
Q U E S T I O N S
S O F T WA R E I S
E AT I N G T H E W O R L D
FASTER
SOONER
BETTER
W H AT I S
C O N T I N U O U S D E L I V E RY ?
D E L I V E R B U S I N E S S VA L U E
M O R E F R E Q U E N T LY
O R C H E S T R AT I N G
T H E B U I L D
M I C R O S E R V I C E S
A N D
C O N T I N U O U S D E L I V E RY
N O M O R E
J O B S P L E A S E
P I P E L I N E
A S C O D E
F E AT U R E S O F P I P E L I N E E C O S Y S T E M
Configuration in Source Repository
Less click-and-type, more code
From simple to complex
Survives Jenkins restarts & connection losses
Reusable definitions
Build history/trend segregated per branches
pipeline {
agent any
stages {
stage('Test') {
steps {
sh './gradlew check'
}
}
}
post {
always {
junit 'build/reports/**/*.xml'
}
}
}
pipeline {
agent {
docker {
image 'maven:3-alpine'
args '-v "$PWD":/usr/src/mymaven -w /usr/src/mymaven’
}
}
stages {
stage('Example Build') {
steps {
sh 'mvn -B clean verify'
}
}
}
}
stage('Deploy - Staging') {
steps {
sh './deploy staging'
sh './run-smoke-tests'
}
}
post { (TODO test)
failure {
mail to: 'team@example.com',
subject: "Failed Pipeline: ${currentBuild.fullDisplayName}",
body: "Somethig is wrong with ${env.BUILD_URL}"
}
}
stage('Sanity check') {
steps {
input "Does the staging environment look ok?"
}
}
T W O - P I Z Z A T E A M S
Fabric 8: Features
Create
Build
Release
Runtime
Manage
Feedback
Platform
wizards to create microservices
packaging into multiple container images
rolling upgrades across teams environments
service discovery, scaling, failover, load balancing
centralise logs, metrics, alerts, tracing, circuit breaker
dashboards and metrics to get feedback
on premise, public or hybrid cloud
D I V E R S I F I E D T E A M S
A N D O N E D AY…
T E C H N I C A L D E B T S TA RT E D
T O R E D U C E D E B T
W E N E E D
M E T R I C S A N D T O O L S
feature#1234
feature#1354
C O N T I N U O U S I N S P E C T I O N
@SupressWarnings(“PMD”)
mvn pmd:check
M A N Y
C O D I N G S T Y L E R U L E S A R E
A U T O M AT I C A L LY F I X E A B L E
mvn walkmod:patch
gradle walkmodPatch
I T I S A L L A B O U T
C O D E T R A N S F O R M AT I O N S
public void visit(ImportDeclaration n, VisitorContext vc) {
if (n.getUsages().isEmpty()){
n.remove();
}
}
* K I L L E R F E AT U R E *
F O R M AT P R E S E R VAT I O N
T R U S T T O O L S
O R
E N S U R E T E S T C O V E R A G E
F I X - U P S R E C I P E
mvn walkmod:patch
git apply walkmod.patch
mvn test
git commit -a —fixup HEAD
git pull —rebase origin $branch
git push origin HEAD:$branch
feature#1354
git commit -a --fixup HEAD
C O N T I N U O U S F I X I N G S
P I P E L I N E L I B R A RY
#!groovy
@Library('github.com/walkmod/jenkins-pipeline-shared@maven')
…
stage('Fixing Release') {
steps {
walkmodApply(
validatePatch: false,
branch:'master',
alwaysApply: true,
alwaysFail: true )
}
}
WA L K M O D P I P E L I N E A P I
walkmodApply: fixes your build
hasWalkmodPatch: checks if there are fixings
applyWalkModPatch: applies the patch
pushWalkModPatch : pushes the patch
D E M O
I N C R E M E N TA L E X E C U T I O N
M I C R O - S E R V I C E S - S TA RT I T N O W
L E G A C Y C O D E - A P P LY T H E M I N C R E M E N TA L LY
WA L K M O D H U B
Q U E S T I O N S

Más contenido relacionado

La actualidad más candente

톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deploymentGyuSeok Lee
 
{{components deepDive=true}}
{{components deepDive=true}}{{components deepDive=true}}
{{components deepDive=true}}raytiley
 
Functional Programming in Groovy
Functional Programming in GroovyFunctional Programming in Groovy
Functional Programming in GroovyEvgeny Goldin
 
An introduction to the MicroProfile
An introduction to the MicroProfileAn introduction to the MicroProfile
An introduction to the MicroProfileAlex Soto
 
톰캣 #05-배치
톰캣 #05-배치톰캣 #05-배치
톰캣 #05-배치GyuSeok Lee
 
10reasons
10reasons10reasons
10reasonsLi Huan
 

La actualidad más candente (6)

톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment톰캣 #05+a-배치-parallel deployment
톰캣 #05+a-배치-parallel deployment
 
{{components deepDive=true}}
{{components deepDive=true}}{{components deepDive=true}}
{{components deepDive=true}}
 
Functional Programming in Groovy
Functional Programming in GroovyFunctional Programming in Groovy
Functional Programming in Groovy
 
An introduction to the MicroProfile
An introduction to the MicroProfileAn introduction to the MicroProfile
An introduction to the MicroProfile
 
톰캣 #05-배치
톰캣 #05-배치톰캣 #05-배치
톰캣 #05-배치
 
10reasons
10reasons10reasons
10reasons
 

Destacado

BarcelonaJUG2016: walkmod: how to run and design code transformations
BarcelonaJUG2016: walkmod: how to run and design code transformationsBarcelonaJUG2016: walkmod: how to run and design code transformations
BarcelonaJUG2016: walkmod: how to run and design code transformationswalkmod
 
Sonar rules in action with walkmod
Sonar rules in action with walkmodSonar rules in action with walkmod
Sonar rules in action with walkmodRaquel Pau
 
Pentaho BigDataParis_session_20170306
Pentaho BigDataParis_session_20170306Pentaho BigDataParis_session_20170306
Pentaho BigDataParis_session_20170306Sebastien COGNET
 
Un 2016 da record per l’interscambio economico tra Italia e Germania
Un 2016 da record per l’interscambio economico tra Italia e GermaniaUn 2016 da record per l’interscambio economico tra Italia e Germania
Un 2016 da record per l’interscambio economico tra Italia e GermaniaJoerg Buck
 
Cashgate Scandal Malawi: Different Types Of Fashion Styles
Cashgate Scandal Malawi: Different Types Of Fashion StylesCashgate Scandal Malawi: Different Types Of Fashion Styles
Cashgate Scandal Malawi: Different Types Of Fashion StylesJoseph Jacob Esther
 
ACCIONA Reports 65
ACCIONA Reports 65ACCIONA Reports 65
ACCIONA Reports 65acciona
 
How i became a data scientist
How i became a data scientistHow i became a data scientist
How i became a data scientistOwen Zhang
 
Configuring a Secure, Multitenant Cluster for the Enterprise
Configuring a Secure, Multitenant Cluster for the EnterpriseConfiguring a Secure, Multitenant Cluster for the Enterprise
Configuring a Secure, Multitenant Cluster for the EnterpriseCloudera, Inc.
 
IPv6セキュリティ はじめの一歩
IPv6セキュリティ はじめの一歩IPv6セキュリティ はじめの一歩
IPv6セキュリティ はじめの一歩Kenji Ohira
 
研究発表を準備する
研究発表を準備する研究発表を準備する
研究発表を準備するTakayuki Itoh
 
what3words brochure
what3words brochurewhat3words brochure
what3words brochurewhat3words
 
Uudistuva omaishoito uusiin rakenteisiin - kahden vuoden taival
Uudistuva omaishoito uusiin rakenteisiin - kahden vuoden taival Uudistuva omaishoito uusiin rakenteisiin - kahden vuoden taival
Uudistuva omaishoito uusiin rakenteisiin - kahden vuoden taival Kelan tutkimus / Research at Kela
 
Win politics 2 (ankit tiwari's quotes on politics)
Win politics   2 (ankit tiwari's quotes on politics)Win politics   2 (ankit tiwari's quotes on politics)
Win politics 2 (ankit tiwari's quotes on politics)ankit tiwari
 
Mimstris: Building an arcade puzzle game in React / Redux
Mimstris: Building an arcade puzzle game in React / ReduxMimstris: Building an arcade puzzle game in React / Redux
Mimstris: Building an arcade puzzle game in React / ReduxMims H Wright
 
Faire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPressFaire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPresscorsonr
 
What's new in SQL Server 2016
What's new in SQL Server 2016What's new in SQL Server 2016
What's new in SQL Server 2016James Serra
 
えだまめ作戦【CanSat】
えだまめ作戦【CanSat】えだまめ作戦【CanSat】
えだまめ作戦【CanSat】j_rocket_boy
 
フロントエンドフレームワークの選び方 - 20170320
フロントエンドフレームワークの選び方 - 20170320フロントエンドフレームワークの選び方 - 20170320
フロントエンドフレームワークの選び方 - 20170320Shinichi Takahashi
 
Análisis de GoogleBot con Google Analytics por Lino Uruñuela
Análisis de GoogleBot con Google Analytics por Lino UruñuelaAnálisis de GoogleBot con Google Analytics por Lino Uruñuela
Análisis de GoogleBot con Google Analytics por Lino UruñuelaNatzir Turrado
 
DE LA PRUEBA CIENTÍFICA A LA PRUEBA PERICIAL. Autora: Carmen Vázquez.ISBN:978...
DE LA PRUEBA CIENTÍFICA A LA PRUEBA PERICIAL. Autora: Carmen Vázquez.ISBN:978...DE LA PRUEBA CIENTÍFICA A LA PRUEBA PERICIAL. Autora: Carmen Vázquez.ISBN:978...
DE LA PRUEBA CIENTÍFICA A LA PRUEBA PERICIAL. Autora: Carmen Vázquez.ISBN:978...Marcial Pons Argentina
 

Destacado (20)

BarcelonaJUG2016: walkmod: how to run and design code transformations
BarcelonaJUG2016: walkmod: how to run and design code transformationsBarcelonaJUG2016: walkmod: how to run and design code transformations
BarcelonaJUG2016: walkmod: how to run and design code transformations
 
Sonar rules in action with walkmod
Sonar rules in action with walkmodSonar rules in action with walkmod
Sonar rules in action with walkmod
 
Pentaho BigDataParis_session_20170306
Pentaho BigDataParis_session_20170306Pentaho BigDataParis_session_20170306
Pentaho BigDataParis_session_20170306
 
Un 2016 da record per l’interscambio economico tra Italia e Germania
Un 2016 da record per l’interscambio economico tra Italia e GermaniaUn 2016 da record per l’interscambio economico tra Italia e Germania
Un 2016 da record per l’interscambio economico tra Italia e Germania
 
Cashgate Scandal Malawi: Different Types Of Fashion Styles
Cashgate Scandal Malawi: Different Types Of Fashion StylesCashgate Scandal Malawi: Different Types Of Fashion Styles
Cashgate Scandal Malawi: Different Types Of Fashion Styles
 
ACCIONA Reports 65
ACCIONA Reports 65ACCIONA Reports 65
ACCIONA Reports 65
 
How i became a data scientist
How i became a data scientistHow i became a data scientist
How i became a data scientist
 
Configuring a Secure, Multitenant Cluster for the Enterprise
Configuring a Secure, Multitenant Cluster for the EnterpriseConfiguring a Secure, Multitenant Cluster for the Enterprise
Configuring a Secure, Multitenant Cluster for the Enterprise
 
IPv6セキュリティ はじめの一歩
IPv6セキュリティ はじめの一歩IPv6セキュリティ はじめの一歩
IPv6セキュリティ はじめの一歩
 
研究発表を準備する
研究発表を準備する研究発表を準備する
研究発表を準備する
 
what3words brochure
what3words brochurewhat3words brochure
what3words brochure
 
Uudistuva omaishoito uusiin rakenteisiin - kahden vuoden taival
Uudistuva omaishoito uusiin rakenteisiin - kahden vuoden taival Uudistuva omaishoito uusiin rakenteisiin - kahden vuoden taival
Uudistuva omaishoito uusiin rakenteisiin - kahden vuoden taival
 
Win politics 2 (ankit tiwari's quotes on politics)
Win politics   2 (ankit tiwari's quotes on politics)Win politics   2 (ankit tiwari's quotes on politics)
Win politics 2 (ankit tiwari's quotes on politics)
 
Mimstris: Building an arcade puzzle game in React / Redux
Mimstris: Building an arcade puzzle game in React / ReduxMimstris: Building an arcade puzzle game in React / Redux
Mimstris: Building an arcade puzzle game in React / Redux
 
Faire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPressFaire du e-commerce en France avec WordPress
Faire du e-commerce en France avec WordPress
 
What's new in SQL Server 2016
What's new in SQL Server 2016What's new in SQL Server 2016
What's new in SQL Server 2016
 
えだまめ作戦【CanSat】
えだまめ作戦【CanSat】えだまめ作戦【CanSat】
えだまめ作戦【CanSat】
 
フロントエンドフレームワークの選び方 - 20170320
フロントエンドフレームワークの選び方 - 20170320フロントエンドフレームワークの選び方 - 20170320
フロントエンドフレームワークの選び方 - 20170320
 
Análisis de GoogleBot con Google Analytics por Lino Uruñuela
Análisis de GoogleBot con Google Analytics por Lino UruñuelaAnálisis de GoogleBot con Google Analytics por Lino Uruñuela
Análisis de GoogleBot con Google Analytics por Lino Uruñuela
 
DE LA PRUEBA CIENTÍFICA A LA PRUEBA PERICIAL. Autora: Carmen Vázquez.ISBN:978...
DE LA PRUEBA CIENTÍFICA A LA PRUEBA PERICIAL. Autora: Carmen Vázquez.ISBN:978...DE LA PRUEBA CIENTÍFICA A LA PRUEBA PERICIAL. Autora: Carmen Vázquez.ISBN:978...
DE LA PRUEBA CIENTÍFICA A LA PRUEBA PERICIAL. Autora: Carmen Vázquez.ISBN:978...
 

Similar a Controlling Technical Debt with Continuous Delivery

Testing TYPO3 Applications
Testing TYPO3 ApplicationsTesting TYPO3 Applications
Testing TYPO3 ApplicationsAndré Wuttig
 
PAC 2020 Santorin - Andreas Grabner
PAC 2020 Santorin - Andreas Grabner PAC 2020 Santorin - Andreas Grabner
PAC 2020 Santorin - Andreas Grabner Neotys
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기Wanbok Choi
 
Svelte (adjective): Attractively thin, graceful, and stylish
Svelte (adjective): Attractively thin, graceful, and stylishSvelte (adjective): Attractively thin, graceful, and stylish
Svelte (adjective): Attractively thin, graceful, and stylishThe Software House
 
Meteor - not just for rockstars
Meteor - not just for rockstarsMeteor - not just for rockstars
Meteor - not just for rockstarsStephan Hochhaus
 
php[world] 2016 - You Don’t Need Node.js - Async Programming in PHP
php[world] 2016 - You Don’t Need Node.js - Async Programming in PHPphp[world] 2016 - You Don’t Need Node.js - Async Programming in PHP
php[world] 2016 - You Don’t Need Node.js - Async Programming in PHPAdam Englander
 
Monitoring and Logging in Wonderland
Monitoring and Logging in WonderlandMonitoring and Logging in Wonderland
Monitoring and Logging in WonderlandPaul Seiffert
 
OSDC 2017 | Developing a SaaS platform based on Open Source Software by Sebas...
OSDC 2017 | Developing a SaaS platform based on Open Source Software by Sebas...OSDC 2017 | Developing a SaaS platform based on Open Source Software by Sebas...
OSDC 2017 | Developing a SaaS platform based on Open Source Software by Sebas...NETWAYS
 
OSDC 2017 - Sebastian Saemann - Developing a saa s platform based on open sou...
OSDC 2017 - Sebastian Saemann - Developing a saa s platform based on open sou...OSDC 2017 - Sebastian Saemann - Developing a saa s platform based on open sou...
OSDC 2017 - Sebastian Saemann - Developing a saa s platform based on open sou...NETWAYS
 
The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.Workhorse Computing
 
PyLadies Talk: Learn to love the command line!
PyLadies Talk: Learn to love the command line!PyLadies Talk: Learn to love the command line!
PyLadies Talk: Learn to love the command line!Blanca Mancilla
 
Model Serving via Pulsar Functions
Model Serving via Pulsar FunctionsModel Serving via Pulsar Functions
Model Serving via Pulsar FunctionsArun Kejariwal
 
19. stretnutie komunity kubernetes
19. stretnutie komunity kubernetes19. stretnutie komunity kubernetes
19. stretnutie komunity kubernetesJuraj Hantak
 
Keep it simple web development stack
Keep it simple web development stackKeep it simple web development stack
Keep it simple web development stackEric Ahn
 
Reliability Patterns for Fun and Profit
Reliability Patterns for Fun and ProfitReliability Patterns for Fun and Profit
Reliability Patterns for Fun and ProfitLuis Mineiro
 
Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Michał Kurzeja
 
Zend con 2016 - Asynchronous Prorgamming in PHP
Zend con 2016 - Asynchronous Prorgamming in PHPZend con 2016 - Asynchronous Prorgamming in PHP
Zend con 2016 - Asynchronous Prorgamming in PHPAdam Englander
 
PyData Barcelona - weather and climate data
PyData Barcelona - weather and climate dataPyData Barcelona - weather and climate data
PyData Barcelona - weather and climate dataMargriet Groenendijk
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedIlia Idakiev
 
Asynchronous data processing
Asynchronous data processingAsynchronous data processing
Asynchronous data processingAndrea Giuliano
 

Similar a Controlling Technical Debt with Continuous Delivery (20)

Testing TYPO3 Applications
Testing TYPO3 ApplicationsTesting TYPO3 Applications
Testing TYPO3 Applications
 
PAC 2020 Santorin - Andreas Grabner
PAC 2020 Santorin - Andreas Grabner PAC 2020 Santorin - Andreas Grabner
PAC 2020 Santorin - Andreas Grabner
 
iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기iOS 개발자의 Flutter 체험기
iOS 개발자의 Flutter 체험기
 
Svelte (adjective): Attractively thin, graceful, and stylish
Svelte (adjective): Attractively thin, graceful, and stylishSvelte (adjective): Attractively thin, graceful, and stylish
Svelte (adjective): Attractively thin, graceful, and stylish
 
Meteor - not just for rockstars
Meteor - not just for rockstarsMeteor - not just for rockstars
Meteor - not just for rockstars
 
php[world] 2016 - You Don’t Need Node.js - Async Programming in PHP
php[world] 2016 - You Don’t Need Node.js - Async Programming in PHPphp[world] 2016 - You Don’t Need Node.js - Async Programming in PHP
php[world] 2016 - You Don’t Need Node.js - Async Programming in PHP
 
Monitoring and Logging in Wonderland
Monitoring and Logging in WonderlandMonitoring and Logging in Wonderland
Monitoring and Logging in Wonderland
 
OSDC 2017 | Developing a SaaS platform based on Open Source Software by Sebas...
OSDC 2017 | Developing a SaaS platform based on Open Source Software by Sebas...OSDC 2017 | Developing a SaaS platform based on Open Source Software by Sebas...
OSDC 2017 | Developing a SaaS platform based on Open Source Software by Sebas...
 
OSDC 2017 - Sebastian Saemann - Developing a saa s platform based on open sou...
OSDC 2017 - Sebastian Saemann - Developing a saa s platform based on open sou...OSDC 2017 - Sebastian Saemann - Developing a saa s platform based on open sou...
OSDC 2017 - Sebastian Saemann - Developing a saa s platform based on open sou...
 
The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.The $path to knowledge: What little it take to unit-test Perl.
The $path to knowledge: What little it take to unit-test Perl.
 
PyLadies Talk: Learn to love the command line!
PyLadies Talk: Learn to love the command line!PyLadies Talk: Learn to love the command line!
PyLadies Talk: Learn to love the command line!
 
Model Serving via Pulsar Functions
Model Serving via Pulsar FunctionsModel Serving via Pulsar Functions
Model Serving via Pulsar Functions
 
19. stretnutie komunity kubernetes
19. stretnutie komunity kubernetes19. stretnutie komunity kubernetes
19. stretnutie komunity kubernetes
 
Keep it simple web development stack
Keep it simple web development stackKeep it simple web development stack
Keep it simple web development stack
 
Reliability Patterns for Fun and Profit
Reliability Patterns for Fun and ProfitReliability Patterns for Fun and Profit
Reliability Patterns for Fun and Profit
 
Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019Strangler Pattern in practice @PHPers Day 2019
Strangler Pattern in practice @PHPers Day 2019
 
Zend con 2016 - Asynchronous Prorgamming in PHP
Zend con 2016 - Asynchronous Prorgamming in PHPZend con 2016 - Asynchronous Prorgamming in PHP
Zend con 2016 - Asynchronous Prorgamming in PHP
 
PyData Barcelona - weather and climate data
PyData Barcelona - weather and climate dataPyData Barcelona - weather and climate data
PyData Barcelona - weather and climate data
 
Angular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of SpeedAngular server side rendering with NodeJS - In Pursuit Of Speed
Angular server side rendering with NodeJS - In Pursuit Of Speed
 
Asynchronous data processing
Asynchronous data processingAsynchronous data processing
Asynchronous data processing
 

Más de walkmod

Devoxx UK quickie talk about walkmod
Devoxx UK quickie talk about walkmodDevoxx UK quickie talk about walkmod
Devoxx UK quickie talk about walkmodwalkmod
 
33rd degree talk: open and automatic coding conventions with walkmod
33rd degree talk: open and automatic coding conventions with walkmod33rd degree talk: open and automatic coding conventions with walkmod
33rd degree talk: open and automatic coding conventions with walkmodwalkmod
 
walkmod - JUG talk
walkmod - JUG talkwalkmod - JUG talk
walkmod - JUG talkwalkmod
 
walkmod: how it works
walkmod: how it workswalkmod: how it works
walkmod: how it workswalkmod
 
walkmod: quick start
walkmod: quick startwalkmod: quick start
walkmod: quick startwalkmod
 
walkmod: An open source tool for coding conventions
walkmod: An open source tool for coding conventionswalkmod: An open source tool for coding conventions
walkmod: An open source tool for coding conventionswalkmod
 

Más de walkmod (6)

Devoxx UK quickie talk about walkmod
Devoxx UK quickie talk about walkmodDevoxx UK quickie talk about walkmod
Devoxx UK quickie talk about walkmod
 
33rd degree talk: open and automatic coding conventions with walkmod
33rd degree talk: open and automatic coding conventions with walkmod33rd degree talk: open and automatic coding conventions with walkmod
33rd degree talk: open and automatic coding conventions with walkmod
 
walkmod - JUG talk
walkmod - JUG talkwalkmod - JUG talk
walkmod - JUG talk
 
walkmod: how it works
walkmod: how it workswalkmod: how it works
walkmod: how it works
 
walkmod: quick start
walkmod: quick startwalkmod: quick start
walkmod: quick start
 
walkmod: An open source tool for coding conventions
walkmod: An open source tool for coding conventionswalkmod: An open source tool for coding conventions
walkmod: An open source tool for coding conventions
 

Último

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 

Último (20)

Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 

Controlling Technical Debt with Continuous Delivery

  • 1. @raquelpau @alexsotob#Voxxed Controlling Technical Debt with Continuous Delivery Raquel Pau - Alex Soto WalkMod - RedHat
  • 2. WA L K M O D F O U N D E R B E S T P R A C T I C E S E N T H U S I A S T @ R A Q U E L PA U R A Q U E L PA U
  • 3. R E D H AT E N G I N E E R O P E N S O U R C E A D V O C AT E @ A L E X S O T O B A L E X S O T O
  • 4. Q U E S T I O N S
  • 5. S O F T WA R E I S E AT I N G T H E W O R L D
  • 6.
  • 7.
  • 9. W H AT I S C O N T I N U O U S D E L I V E RY ?
  • 10. D E L I V E R B U S I N E S S VA L U E M O R E F R E Q U E N T LY
  • 11.
  • 12. O R C H E S T R AT I N G T H E B U I L D
  • 13.
  • 14.
  • 15.
  • 16. M I C R O S E R V I C E S A N D C O N T I N U O U S D E L I V E RY
  • 17.
  • 18. N O M O R E J O B S P L E A S E
  • 19. P I P E L I N E A S C O D E
  • 20. F E AT U R E S O F P I P E L I N E E C O S Y S T E M Configuration in Source Repository Less click-and-type, more code From simple to complex Survives Jenkins restarts & connection losses Reusable definitions Build history/trend segregated per branches
  • 21. pipeline { agent any stages { stage('Test') { steps { sh './gradlew check' } } } post { always { junit 'build/reports/**/*.xml' } } }
  • 22. pipeline { agent { docker { image 'maven:3-alpine' args '-v "$PWD":/usr/src/mymaven -w /usr/src/mymaven’ } } stages { stage('Example Build') { steps { sh 'mvn -B clean verify' } } } }
  • 23. stage('Deploy - Staging') { steps { sh './deploy staging' sh './run-smoke-tests' } } post { (TODO test) failure { mail to: 'team@example.com', subject: "Failed Pipeline: ${currentBuild.fullDisplayName}", body: "Somethig is wrong with ${env.BUILD_URL}" } } stage('Sanity check') { steps { input "Does the staging environment look ok?" } }
  • 24.
  • 25. T W O - P I Z Z A T E A M S
  • 26.
  • 27. Fabric 8: Features Create Build Release Runtime Manage Feedback Platform wizards to create microservices packaging into multiple container images rolling upgrades across teams environments service discovery, scaling, failover, load balancing centralise logs, metrics, alerts, tracing, circuit breaker dashboards and metrics to get feedback on premise, public or hybrid cloud
  • 28. D I V E R S I F I E D T E A M S
  • 29. A N D O N E D AY… T E C H N I C A L D E B T S TA RT E D
  • 30. T O R E D U C E D E B T W E N E E D M E T R I C S A N D T O O L S
  • 31.
  • 32. feature#1234 feature#1354 C O N T I N U O U S I N S P E C T I O N
  • 34.
  • 35. M A N Y C O D I N G S T Y L E R U L E S A R E A U T O M AT I C A L LY F I X E A B L E
  • 37.
  • 38. I T I S A L L A B O U T C O D E T R A N S F O R M AT I O N S public void visit(ImportDeclaration n, VisitorContext vc) { if (n.getUsages().isEmpty()){ n.remove(); } }
  • 39. * K I L L E R F E AT U R E * F O R M AT P R E S E R VAT I O N
  • 40. T R U S T T O O L S O R E N S U R E T E S T C O V E R A G E
  • 41. F I X - U P S R E C I P E mvn walkmod:patch git apply walkmod.patch mvn test git commit -a —fixup HEAD git pull —rebase origin $branch git push origin HEAD:$branch
  • 42. feature#1354 git commit -a --fixup HEAD C O N T I N U O U S F I X I N G S
  • 43. P I P E L I N E L I B R A RY #!groovy @Library('github.com/walkmod/jenkins-pipeline-shared@maven') … stage('Fixing Release') { steps { walkmodApply( validatePatch: false, branch:'master', alwaysApply: true, alwaysFail: true ) } }
  • 44. WA L K M O D P I P E L I N E A P I walkmodApply: fixes your build hasWalkmodPatch: checks if there are fixings applyWalkModPatch: applies the patch pushWalkModPatch : pushes the patch
  • 45. D E M O
  • 46. I N C R E M E N TA L E X E C U T I O N M I C R O - S E R V I C E S - S TA RT I T N O W L E G A C Y C O D E - A P P LY T H E M I N C R E M E N TA L LY
  • 47.
  • 48. WA L K M O D H U B
  • 49. Q U E S T I O N S