SlideShare uma empresa Scribd logo
1 de 140
Baixar para ler offline
Modern Release
Engineering in a Nutshell
Why Researchers should Care
Bram Adams Shane McIntosh
,
M
C IS
Back in 2009 …
On average, we
release new code fifty
times a day.
Release engineering aims to …
4
Release engineering aims to …
4
code
change
Release engineering aims to …
4
code
change
Release engineering aims to …
4
code
change
Release engineering aims to …
4
code
change
FAST
Release
Engineering
Release
Engineering
Release
Engineering
integrating code changes
Release
Engineering
integrating code changes building/testing (CI)
Release
Engineering
integrating code changes building/testing (CI)
deploying a new release
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
Nowadays …
Time-boxed
releases
7
Time-boxed
releases
6 months
7
Time-boxed
releases
6 weeks
6 months
7
Time-boxed
releases
2 weeks
(mobile)
6 weeks
6 months
7
Time-boxed
releases
twice/day
(web)
2 weeks
(mobile)
6 weeks
6 months
7
Time-boxed
releases
twice/day
(web)
daily
2 weeks
(mobile)
6 weeks
6 months
7
http://www.informit.com/articles/article.aspx?p=1833567
Jez Humble
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk
of releasing software
if it hurts, do it
more frequently, and
bring the pain
forward
Jez Humble
• How quickly can we ship a chemspill release?
• 4-6 weeks 11 hours
• How long to ship a “new feature” release?
• 12-18 months 6 weeks
• How many active code lines?
• 1 1/2 42
• How many checkins per day?
• ~15 per day 325 per day
Before & After
http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
• How quickly can we ship a chemspill release?
• 4-6 weeks 11 hours
• How long to ship a “new feature” release?
• 12-18 months 6 weeks
• How many active code lines?
• 1 1/2 42
• How many checkins per day?
• ~15 per day 325 per day
Before & After
http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
• How quickly can we ship a chemspill release?
• 4-6 weeks 11 hours
• How long to ship a “new feature” release?
• 12-18 months 6 weeks
• How many active code lines?
• 1 1/2 42
• How many checkins per day?
• ~15 per day 325 per day
Before & After
http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
https://xebialabs.com/periodic-table-of-devops-tools/ & https://xebialabs.com/the-ultimate-devops-tool-chest/
11
industry
Release
engineering
innovation
led by
industry!
11
industry
a
c
a
d
e
m
i
a
Release
engineering
innovation
led by
industry!
12
What can you
do for release
engineering?
RELENG: International Workshop on
Release Engineering
13
RELENG: International Workshop on
Release Engineering
13
230 participants3 editions
dozens of industry
& academic talks
RELENG: International Workshop on
Release Engineering
13
230 participants3 editions
dozens of industry
& academic talks
RELENG: International Workshop on
Release Engineering
13
230 participants3 editions
next RELENG:
in Fall 2016
http://releng.polymtl.ca
dozens of industry
& academic talks
How to predict integration effort?
14
How to predict integration effort?
14
git
repo
How to predict integration effort?
14
git
repo
myapp
v.1
How to predict integration effort?
14
git
repo
myapp
v.1
?
How to predict integration effort?
14
git
repo
myapp
v.1
How to predict integration effort?
14
feature branch 1
git
repo
myapp
v.1
How to predict integration effort?
14
feature branch 1
git
repo
myapp
v.1
How to predict integration effort?
14
feature branch 1
git
repo
myapp
v.1
master branch
How to predict integration effort?
14
feature branch 1
git
repo
myapp
v.1
master branch
How to predict integration effort?
14
feature branch 1
git
repo
MERGE
myapp
v.1
master branch
How to predict integration effort?
14
feature branch 1
git
repo
MERGE
myapp
v.1
master branch
How to predict integration effort?
14
feature branch 1
git
repo
MERGE
myapp
v.1
master branch
How to predict integration effort?
14
feature branch 1
git
repo
release branch
MERGE
myapp
v.1
master branch
How to predict integration effort?
14
feature branch 1
git
repo
release branch
MERGE
myapp
v.1
master branch
How to predict integration effort?
14
feature branch 1
git
repo
release branch
MERGE
myapp
v.1
feature branch 2
master branch
How to predict integration effort?
14
feature branch 1
git
repo
release branch
MERGE CONFLICT?
myapp
v.1
feature branch 2
master branch
How to predict integration effort?
14
3rd party
dependency
feature branch 1
git
repo
release branch
MERGE CONFLICT?
myapp
v.1
feature branch 2
master branch
How to predict integration effort?
14
3rd party
dependency
feature branch 1
git
repo
release branch
MERGE CONFLICT?
myapp
v.1
feature branch 2
master branch
How to predict integration effort?
14
3rd party
dependency
feature branch 1
git
repo
release branch
MERGE CONFLICT?
myapp
v.1
feature branch 2 sync
15
https://xkcd.com/303/
user acceptance/system tests
performance tests
(selection of) unit tests
all unit tests
integration tests
time to run (hours)
full compilation
incremental compilation
`
Why do CI builds take so long?
16
user acceptance/system tests
performance tests
(selection of) unit tests
all unit tests
integration tests
time to run (hours)
full compilation
incremental compilation
`
local developer build
Why do CI builds take so long?
16
user acceptance/system tests
performance tests
(selection of) unit tests
all unit tests
integration tests
time to run (hours)
full compilation
incremental compilation
`
local developer build
Why do CI builds take so long?
16
user acceptance/system tests
performance tests
(selection of) unit tests
all unit tests
integration tests
time to run (hours)
full compilation
incremental compilation
` CI build of merged change
local developer build
Why do CI builds take so long?
16
user acceptance/system tests
performance tests
(selection of) unit tests
all unit tests
integration tests
time to run (hours)
full compilation
incremental compilation
CI build of merged change
local developer build
Why do CI builds take so long?
16
user acceptance/system tests
performance tests
(selection of) unit tests
all unit tests
integration tests
time to run (hours)
full compilation
incremental compilation
closer to release
CI build of merged change
local developer build
Why do CI builds take so long?
16
user acceptance/system tests
performance tests
(selection of) unit tests
all unit tests
integration tests
time to run (hours)
full compilation
incremental compilation
closer to release
CI build of merged change
local developer build
Why do CI builds take so long?
16
Even worse …
17
Even worse …
17
build machinery run
on each commit!
Even worse …
17
build machinery run
on each commit!
Even worse …
17
build machinery run
on each commit!
different feature
configurations
Even worse …
17
build machinery run
on each commit!
not just build and
test, also code
quality builds,
nightly builds, etc.
different feature
configurations
Even worse …
17
build machinery run
on each commit!
not just build and
test, also code
quality builds,
nightly builds, etc.
not all builds
succeed
different feature
configurations
What are deployment best practices?
18
What are deployment best practices?
18
v.1 v.1v.1
What are deployment best practices?
18
v.1v.2 v.1
What are deployment best practices?
18
v.2 v.1v.2
What are deployment best practices?
18
v.2 v.1v.1
What are deployment best practices?
18
v.1v.1v.1
Infrastructure code
19
#	
  Install	
  PostgreSQL	
  server	
  and	
  client	
  
include_recipe	
  "postgresql::server"	
  
include_recipe	
  "postgresql::client"	
  
#	
  Make	
  postgresql_database	
  resource	
  available	
  
include_recipe	
  "database::postgresql"	
  
#	
  Create	
  database	
  for	
  Rails	
  app	
  
db	
  =	
  node["practicingruby"]["database"]	
  
postgresql_database	
  db["name"]	
  do	
  
	
  	
  connection(	
  
	
  	
  	
  	
  :host	
  	
  	
  	
  	
  =>	
  db["host"],	
  
	
  	
  	
  	
  :port	
  	
  	
  	
  	
  =>	
  node["postgresql"]["config"]["port"],	
  
	
  	
  	
  	
  :username	
  =>	
  db["username"],	
  
	
  	
  	
  	
  :password	
  =>	
  db["password"],	
  
	
  	
  )	
  
end
Infrastructure code
19
#	
  Install	
  PostgreSQL	
  server	
  and	
  client	
  
include_recipe	
  "postgresql::server"	
  
include_recipe	
  "postgresql::client"	
  
#	
  Make	
  postgresql_database	
  resource	
  available	
  
include_recipe	
  "database::postgresql"	
  
#	
  Create	
  database	
  for	
  Rails	
  app	
  
db	
  =	
  node["practicingruby"]["database"]	
  
postgresql_database	
  db["name"]	
  do	
  
	
  	
  connection(	
  
	
  	
  	
  	
  :host	
  	
  	
  	
  	
  =>	
  db["host"],	
  
	
  	
  	
  	
  :port	
  	
  	
  	
  	
  =>	
  node["postgresql"]["config"]["port"],	
  
	
  	
  	
  	
  :username	
  =>	
  db["username"],	
  
	
  	
  	
  	
  :password	
  =>	
  db["password"],	
  
	
  	
  )	
  
end
Infrastructure code
19
#	
  Install	
  PostgreSQL	
  server	
  and	
  client	
  
include_recipe	
  "postgresql::server"	
  
include_recipe	
  "postgresql::client"	
  
#	
  Make	
  postgresql_database	
  resource	
  available	
  
include_recipe	
  "database::postgresql"	
  
#	
  Create	
  database	
  for	
  Rails	
  app	
  
db	
  =	
  node["practicingruby"]["database"]	
  
postgresql_database	
  db["name"]	
  do	
  
	
  	
  connection(	
  
	
  	
  	
  	
  :host	
  	
  	
  	
  	
  =>	
  db["host"],	
  
	
  	
  	
  	
  :port	
  	
  	
  	
  	
  =>	
  node["postgresql"]["config"]["port"],	
  
	
  	
  	
  	
  :username	
  =>	
  db["username"],	
  
	
  	
  	
  	
  :password	
  =>	
  db["password"],	
  
	
  	
  )	
  
end
Infrastructure code smells?
19
Is the
release in good
shape?
Was the release a
success?
Is the
release in good
shape?
Was the release a
success?
Is the
release in good
shape?
The release is
botched, how can we
roll back?
Was the release a
success?
What’s the optimal cycle
time for us?
Is the
release in good
shape?
The release is
botched, how can we
roll back?
Chuck
Rossi
21
Continuous delivery
for mobile apps is a serious
challenge!
Chuck
Rossi
21
What can you
do for release
engineering?
22
What can you
do for release
engineering?
22
What can
release
engineering
do for you?
When noble intentions meet reality
23
Harmful assumptions about release pipelines
that can impact predictive modelling
24
Harmful assumptions about release pipelines
that can impact predictive modelling
1. All releases are equal
24
25
Look at Project X!
It had a crazy number of
bugs in the typical six-month
post-release window!
25
Look at Project X!
It had a crazy number of
bugs in the typical six-month
post-release window!
Well, Project X releases
every 6 weeks, so
you’re counting several
releases…
25
Release cycles vary among
popular studied systems
Daysbetweenreleases
An Empirical Study of Delays in the Integration of
Addressed Issues
D. A. da Costa et al.
[ICSME 2014]
Release cycles can even
vary within systems!
1.0
2.0
2.5
3.0
3.5
4.0
5.0
6.0
7.0
8.0
9.0
10.0
0 200 400 600 800
Firefoxrelease
Days since prior release 27
The rapid release cycle of modern
software systems
28
The rapid release cycle of modern
software systems
Often release several times
in one day!
28
1. All releases are equal
Harmful assumptions about release pipelines
that can impact predictive modelling
29
1. All releases are equal
2. All branches are equal
Harmful assumptions about release pipelines
that can impact predictive modelling
29
30
Weird… The size of this
project fluctuates between
50k and 45k lines!
30
Weird… The size of this
project fluctuates between
50k and 45k lines!
Hmm, did you select the
relevant branch? Several
are developed in parallel!
30
An example of defect prediction
Feature development
Defect repairing
Merge
Commit types
31
An example of defect prediction
Feature development
Defect repairing
Merge
Commit types
31
An example of defect prediction
v1.0
Feature development
Defect repairing
Merge
Commit types
31
An example of defect prediction
v1.0
Feature development
Defect repairing
Merge
Commit types
Pre-
release
31
An example of defect prediction
v1.0
Feature development
Defect repairing
Merge
Commit types
Pre-
release
Post-
release
31
An example of defect prediction
v1.0
Feature development
Defect repairing
Merge
Commit types
Pre-
release
Post-
release
31
Handling the intricacies of a multi-
branch release pipeline
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
v1.0
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
v1.0
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
v1.0
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
v1.0
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
v1.0
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Handling the intricacies of a multi-
branch release pipeline
v1.0
Dev
Stable
Feature development
Defect repairing
Merge
Commit types
32
Branching can get really complex…
33
1. All releases are equal
2. All branches are equal
Harmful assumptions about release pipelines
that can impact predictive modelling
34
1. All releases are equal
2. All branches are equal
3. All files are equal
Harmful assumptions about release pipelines
that can impact predictive modelling
34
35
This popular web browser
has an enormous codebase!
>30M lines!
35
This popular web browser
has an enormous codebase!
>30M lines!
Yes, but the codebase
contains several systems!
The build configuration
decides which one is
produced!
35
36
Many files are conditionally
included in deliverables
Tracing Software Build
Processes to Uncover
License Compliance
Inconsistencies
S. van der Berg et al.
[ASE 2014]
Aterm
Opkg
Bash
CUPS
Xalan
OpenSSL
FFmpeg
% Excluded Files
0% 20% 40% 60% 80%
36
Many files are conditionally
included in deliverables
Fixes in these files may have a
smaller impact (if any) on customers
Tracing Software Build
Processes to Uncover
License Compliance
Inconsistencies
S. van der Berg et al.
[ASE 2014]
Aterm
Opkg
Bash
CUPS
Xalan
OpenSSL
FFmpeg
% Excluded Files
0% 20% 40% 60% 80%
Understanding conditionally
included files using the build system
Design recovery and maintenance
of build systems
B. Adams et al.
[ICSM 2007]
37
1. All releases are equal,
2. All branches are equal,
Harmful assumptions about release pipelines
that can impact predictive modelling
3. All files are equal
38
but some are more equal than others
1. All releases are equal,
2. All branches are equal,
Harmful assumptions about release pipelines
that can impact predictive modelling
3. All files are equal
38
My nightmare
Amassing and indexing a large
sample of version control systems
Audris Mockus
[MSR 2009]
Boa: a language and infrastructure for analyzing
ultra-large-scale software repositories
R. Dyer et al.
[ICSE 2013]
The GHTorrent Dataset and Tool
Suite
G. Gousios
[MSR 2013]
My nightmare
Amassing and indexing a large
sample of version control systems
Audris Mockus
[MSR 2009]
Boa: a language and infrastructure for analyzing
ultra-large-scale software repositories
R. Dyer et al.
[ICSE 2013]
The GHTorrent Dataset and Tool
Suite
G. Gousios
[MSR 2013]
We collect all of the data in the world,
but it’s meaningless without context!
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk
of releasing software
if it hurts, do it
more frequently, and
bring the pain
forward
Jez Humble
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk
of releasing software
if it hurts, do it
more frequently, and
bring the pain
forward
Jez Humble
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk
of releasing software
if it hurts, do it
more frequently, and
bring the pain
forward
Jez Humble
master branch
How to Predict Integration Effort?
14
3rd party
dependency
feature branch 1
git
repo
release branch
MERGE CONFLICT?
myapp
v.1
feature branch 2 sync
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk
of releasing software
if it hurts, do it
more frequently, and
bring the pain
forward
Jez Humble
master branch
How to Predict Integration Effort?
14
3rd party
dependency
feature branch 1
git
repo
release branch
MERGE CONFLICT?
myapp
v.1
feature branch 2
sync
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk
of releasing software
if it hurts, do it
more frequently, and
bring the pain
forward
Jez Humble
master branch
How to Predict Integration Effort?
14
3rd party
dependency
feature branch 1
git
repo
release branch
MERGE CONFLICT?
myapp
v.1
feature branch 2
sync
but some are more equal than others
1. All releases are equal,
2. All branches are equal,
Harmful assumptions about release pipelines
that can impact predictive modelling
3. All files are equal
Release
Engineering
integrating code changes building/testing (CI)
releasing to the user deploying a new release
http://www.informit.com/articles/article.aspx?p=1833567
reduce the risk
of releasing software
if it hurts, do it
more frequently, and
bring the pain
forward
Jez Humble
master branch
How to Predict Integration Effort?
14
3rd party
dependency
feature branch 1
git
repo
release branch
MERGE CONFLICT?
myapp
v.1
feature branch 2
sync
but some are more equal than others
1. All releases are equal,
2. All branches are equal,
Harmful assumptions about release pipelines
that can impact predictive modelling
3. All files are equal

Mais conteúdo relacionado

Mais procurados

MOPCON 2015 - Tips of Mobile Continuous Delivery
MOPCON 2015 - Tips of Mobile Continuous DeliveryMOPCON 2015 - Tips of Mobile Continuous Delivery
MOPCON 2015 - Tips of Mobile Continuous Deliveryanistar sung
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCMike Brittain
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battleAnand Ramdeo
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點William Yeh
 
Continuous Performance Testing for Microservices
Continuous Performance Testing for MicroservicesContinuous Performance Testing for Microservices
Continuous Performance Testing for MicroservicesVincenzo Ferme
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHPArno Schneider
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradlesam chiu
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestMarcin Grzejszczak
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDGlobalLogic Ukraine
 
Continuous Integration for Salesforce1 Platform
Continuous Integration for Salesforce1 PlatformContinuous Integration for Salesforce1 Platform
Continuous Integration for Salesforce1 PlatformTechsophy Inc.
 
Continuous Integration using Cruise Control
Continuous Integration using Cruise ControlContinuous Integration using Cruise Control
Continuous Integration using Cruise Controlelliando dias
 
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QAFest
 
Git workflow step by step
Git workflow step by stepGit workflow step by step
Git workflow step by stepBinh Quan Duc
 
ScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency InjectionScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency Injection7mind
 
Architecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDCArchitecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDCDaniel Barker
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Marcin Grzejszczak
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...Future Processing
 
Hyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkitHyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkit7mind
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?William Yeh
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineRobert McDermott
 

Mais procurados (20)

MOPCON 2015 - Tips of Mobile Continuous Delivery
MOPCON 2015 - Tips of Mobile Continuous DeliveryMOPCON 2015 - Tips of Mobile Continuous Delivery
MOPCON 2015 - Tips of Mobile Continuous Delivery
 
Continuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYCContinuous Deployment at Etsy — TimesOpen NYC
Continuous Deployment at Etsy — TimesOpen NYC
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battle
 
Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點Monitoring 改造計畫:流程觀點
Monitoring 改造計畫:流程觀點
 
Continuous Performance Testing for Microservices
Continuous Performance Testing for MicroservicesContinuous Performance Testing for Microservices
Continuous Performance Testing for Microservices
 
Continuous Integration and PHP
Continuous Integration and PHPContinuous Integration and PHP
Continuous Integration and PHP
 
不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle不只自動化而且更敏捷的Android開發工具 gradle
不只自動化而且更敏捷的Android開發工具 gradle
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Continuous Integration for Salesforce1 Platform
Continuous Integration for Salesforce1 PlatformContinuous Integration for Salesforce1 Platform
Continuous Integration for Salesforce1 Platform
 
Continuous Integration using Cruise Control
Continuous Integration using Cruise ControlContinuous Integration using Cruise Control
Continuous Integration using Cruise Control
 
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
QA Fest 2018. Adam Stasiak. React Native is Coming – the story of hybrid mobi...
 
Git workflow step by step
Git workflow step by stepGit workflow step by step
Git workflow step by step
 
ScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency InjectionScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency Injection
 
Architecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDCArchitecting the Future: Abstractions and Metadata - KCDC
Architecting the Future: Abstractions and Metadata - KCDC
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
[QE 2018] Adam Stasiak – Nadchodzi React Native – czyli o testowaniu mobilnyc...
 
Hyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkitHyper-pragmatic Pure FP testing with distage-testkit
Hyper-pragmatic Pure FP testing with distage-testkit
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?
 
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) PipelineAnatomy of a Continuous Integration and Delivery (CICD) Pipeline
Anatomy of a Continuous Integration and Delivery (CICD) Pipeline
 

Destaque

Development Lifecycle: From Requirement to Release
Development Lifecycle: From Requirement to ReleaseDevelopment Lifecycle: From Requirement to Release
Development Lifecycle: From Requirement to ReleaseJulie Meloni
 
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)Bram Adams
 
A Qualitative Study on Performance Bugs (MSR 2012)
A Qualitative Study on Performance Bugs (MSR 2012)A Qualitative Study on Performance Bugs (MSR 2012)
A Qualitative Study on Performance Bugs (MSR 2012)Bram Adams
 
The Evolution of the R Software Ecosystem (CSMR 2013)
The Evolution of the R Software Ecosystem (CSMR 2013)The Evolution of the R Software Ecosystem (CSMR 2013)
The Evolution of the R Software Ecosystem (CSMR 2013)Bram Adams
 
An Empirical Study of Build System Migrations in Practice (ICSM 2012)
An Empirical Study of Build System Migrations in Practice (ICSM 2012)An Empirical Study of Build System Migrations in Practice (ICSM 2012)
An Empirical Study of Build System Migrations in Practice (ICSM 2012)Bram Adams
 
Why do Automated Builds Break? An Empirical Study (ICSME 2014)
Why do Automated Builds Break? An Empirical Study (ICSME 2014)Why do Automated Builds Break? An Empirical Study (ICSME 2014)
Why do Automated Builds Break? An Empirical Study (ICSME 2014)Bram Adams
 
How much does this commit cost? -A position paper
How much does this commit cost? -A position paperHow much does this commit cost? -A position paper
How much does this commit cost? -A position paperYujuan Jiang
 

Destaque (7)

Development Lifecycle: From Requirement to Release
Development Lifecycle: From Requirement to ReleaseDevelopment Lifecycle: From Requirement to Release
Development Lifecycle: From Requirement to Release
 
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)The Bash Dashboard (Or: How to Use Bash for Data Analysis)
The Bash Dashboard (Or: How to Use Bash for Data Analysis)
 
A Qualitative Study on Performance Bugs (MSR 2012)
A Qualitative Study on Performance Bugs (MSR 2012)A Qualitative Study on Performance Bugs (MSR 2012)
A Qualitative Study on Performance Bugs (MSR 2012)
 
The Evolution of the R Software Ecosystem (CSMR 2013)
The Evolution of the R Software Ecosystem (CSMR 2013)The Evolution of the R Software Ecosystem (CSMR 2013)
The Evolution of the R Software Ecosystem (CSMR 2013)
 
An Empirical Study of Build System Migrations in Practice (ICSM 2012)
An Empirical Study of Build System Migrations in Practice (ICSM 2012)An Empirical Study of Build System Migrations in Practice (ICSM 2012)
An Empirical Study of Build System Migrations in Practice (ICSM 2012)
 
Why do Automated Builds Break? An Empirical Study (ICSME 2014)
Why do Automated Builds Break? An Empirical Study (ICSME 2014)Why do Automated Builds Break? An Empirical Study (ICSME 2014)
Why do Automated Builds Break? An Empirical Study (ICSME 2014)
 
How much does this commit cost? -A position paper
How much does this commit cost? -A position paperHow much does this commit cost? -A position paper
How much does this commit cost? -A position paper
 

Semelhante a Modern Release Engineering in a Nutshell - Why Researchers should Care!

State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopmentgillygize
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCAdrian Cockcroft
 
Prepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/GreenPrepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/GreenSonatype
 
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue GreenAll Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue GreenFab L
 
Turnkey Continuous Delivery
Turnkey Continuous DeliveryTurnkey Continuous Delivery
Turnkey Continuous DeliveryGianni Bombelli
 
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in ActionBill Scott
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerBill Scott
 
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...indeedeng
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Fwdays
 
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)Alexandre Gouaillard
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024Cloud Native NoVA
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 
How to build Sdk? Best practices
How to build Sdk? Best practicesHow to build Sdk? Best practices
How to build Sdk? Best practicesVitali Pekelis
 
REST Development made Easy with ColdFusion Aether
REST Development made Easy with ColdFusion AetherREST Development made Easy with ColdFusion Aether
REST Development made Easy with ColdFusion AetherPavan Kumar
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Balanced Team
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Aysylu Greenberg
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development WorkflowVũ Nguyễn
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014Oliver N
 

Semelhante a Modern Release Engineering in a Nutshell - Why Researchers should Care! (20)

State ofappdevelopment
State ofappdevelopmentState ofappdevelopment
State ofappdevelopment
 
Cloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCCCloud Native Cost Optimization UCC
Cloud Native Cost Optimization UCC
 
Prepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/GreenPrepare to defend thyself with Blue/Green
Prepare to defend thyself with Blue/Green
 
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue GreenAll Day DevOps 2016 Fabian - Defending Thyself with Blue Green
All Day DevOps 2016 Fabian - Defending Thyself with Blue Green
 
Turnkey Continuous Delivery
Turnkey Continuous DeliveryTurnkey Continuous Delivery
Turnkey Continuous Delivery
 
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
6 Principles for Enabling Build/Measure/Learn: Lean Engineering in Action
 
Don't screw it up! How to build durable API
Don't screw it up! How to build durable API Don't screw it up! How to build durable API
Don't screw it up! How to build durable API
 
Lean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partnerLean Engineering: How to make Engineering a full Lean UX partner
Lean Engineering: How to make Engineering a full Lean UX partner
 
Enabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in ActionEnabling Lean at Enterprise Scale: Lean Engineering in Action
Enabling Lean at Enterprise Scale: Lean Engineering in Action
 
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...Automation and Developer Infrastructure — Empowering Engineers to Move from I...
Automation and Developer Infrastructure — Empowering Engineers to Move from I...
 
Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"Alexey Kupriyanenko "Release Early, Often, Stable"
Alexey Kupriyanenko "Release Early, Often, Stable"
 
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 
How to build Sdk? Best practices
How to build Sdk? Best practicesHow to build Sdk? Best practices
How to build Sdk? Best practices
 
REST Development made Easy with ColdFusion Aether
REST Development made Easy with ColdFusion AetherREST Development made Easy with ColdFusion Aether
REST Development made Easy with ColdFusion Aether
 
Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...Lean engineering for lean/balanced teams: lessons learned (and still learning...
Lean engineering for lean/balanced teams: lessons learned (and still learning...
 
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)Building A Distributed Build System at Google Scale (StrangeLoop 2016)
Building A Distributed Build System at Google Scale (StrangeLoop 2016)
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014
 

Último

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performancesivaprakash250
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756dollysharma2066
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfRagavanV2
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Arindam Chakraborty, Ph.D., P.E. (CA, TX)
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Bookingroncy bisnoi
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfJiananWang21
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . pptDineshKumar4165
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfrs7054576148
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...tanu pandey
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdfKamal Acharya
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdfankushspencer015
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Bookingdharasingh5698
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdfSuman Jyoti
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...roncy bisnoi
 

Último (20)

VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
UNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its PerformanceUNIT - IV - Air Compressors and its Performance
UNIT - IV - Air Compressors and its Performance
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak HamilCara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
Cara Menggugurkan Sperma Yang Masuk Rahim Biyar Tidak Hamil
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
Navigating Complexity: The Role of Trusted Partners and VIAS3D in Dassault Sy...
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Intro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdfIntro To Electric Vehicles PDF Notes.pdf
Intro To Electric Vehicles PDF Notes.pdf
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
(INDIRA) Call Girl Aurangabad Call Now 8617697112 Aurangabad Escorts 24x7
 

Modern Release Engineering in a Nutshell - Why Researchers should Care!

  • 1. Modern Release Engineering in a Nutshell Why Researchers should Care Bram Adams Shane McIntosh , M C IS
  • 3.
  • 4. On average, we release new code fifty times a day.
  • 6. Release engineering aims to … 4 code change
  • 7. Release engineering aims to … 4 code change
  • 8. Release engineering aims to … 4 code change
  • 9. Release engineering aims to … 4 code change FAST
  • 14. Release Engineering integrating code changes building/testing (CI) deploying a new release
  • 15. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release
  • 24. http://www.informit.com/articles/article.aspx?p=1833567 reduce the risk of releasing software if it hurts, do it more frequently, and bring the pain forward Jez Humble
  • 25. • How quickly can we ship a chemspill release? • 4-6 weeks 11 hours • How long to ship a “new feature” release? • 12-18 months 6 weeks • How many active code lines? • 1 1/2 42 • How many checkins per day? • ~15 per day 325 per day Before & After http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
  • 26. • How quickly can we ship a chemspill release? • 4-6 weeks 11 hours • How long to ship a “new feature” release? • 12-18 months 6 weeks • How many active code lines? • 1 1/2 42 • How many checkins per day? • ~15 per day 325 per day Before & After http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
  • 27. • How quickly can we ship a chemspill release? • 4-6 weeks 11 hours • How long to ship a “new feature” release? • 12-18 months 6 weeks • How many active code lines? • 1 1/2 42 • How many checkins per day? • ~15 per day 325 per day Before & After http://oduinn.com/images/2013/blog_2013_RelEngAsForceMultiplier.pdf 9
  • 31. 12 What can you do for release engineering?
  • 32. RELENG: International Workshop on Release Engineering 13
  • 33. RELENG: International Workshop on Release Engineering 13 230 participants3 editions dozens of industry & academic talks
  • 34. RELENG: International Workshop on Release Engineering 13 230 participants3 editions dozens of industry & academic talks
  • 35. RELENG: International Workshop on Release Engineering 13 230 participants3 editions next RELENG: in Fall 2016 http://releng.polymtl.ca dozens of industry & academic talks
  • 36. How to predict integration effort? 14
  • 37. How to predict integration effort? 14 git repo
  • 38. How to predict integration effort? 14 git repo myapp v.1
  • 39. How to predict integration effort? 14 git repo myapp v.1 ?
  • 40. How to predict integration effort? 14 git repo myapp v.1
  • 41. How to predict integration effort? 14 feature branch 1 git repo myapp v.1
  • 42. How to predict integration effort? 14 feature branch 1 git repo myapp v.1
  • 43. How to predict integration effort? 14 feature branch 1 git repo myapp v.1
  • 44. master branch How to predict integration effort? 14 feature branch 1 git repo myapp v.1
  • 45. master branch How to predict integration effort? 14 feature branch 1 git repo MERGE myapp v.1
  • 46. master branch How to predict integration effort? 14 feature branch 1 git repo MERGE myapp v.1
  • 47. master branch How to predict integration effort? 14 feature branch 1 git repo MERGE myapp v.1
  • 48. master branch How to predict integration effort? 14 feature branch 1 git repo release branch MERGE myapp v.1
  • 49. master branch How to predict integration effort? 14 feature branch 1 git repo release branch MERGE myapp v.1
  • 50. master branch How to predict integration effort? 14 feature branch 1 git repo release branch MERGE myapp v.1 feature branch 2
  • 51. master branch How to predict integration effort? 14 feature branch 1 git repo release branch MERGE CONFLICT? myapp v.1 feature branch 2
  • 52. master branch How to predict integration effort? 14 3rd party dependency feature branch 1 git repo release branch MERGE CONFLICT? myapp v.1 feature branch 2
  • 53. master branch How to predict integration effort? 14 3rd party dependency feature branch 1 git repo release branch MERGE CONFLICT? myapp v.1 feature branch 2
  • 54. master branch How to predict integration effort? 14 3rd party dependency feature branch 1 git repo release branch MERGE CONFLICT? myapp v.1 feature branch 2 sync
  • 56. user acceptance/system tests performance tests (selection of) unit tests all unit tests integration tests time to run (hours) full compilation incremental compilation ` Why do CI builds take so long? 16
  • 57. user acceptance/system tests performance tests (selection of) unit tests all unit tests integration tests time to run (hours) full compilation incremental compilation ` local developer build Why do CI builds take so long? 16
  • 58. user acceptance/system tests performance tests (selection of) unit tests all unit tests integration tests time to run (hours) full compilation incremental compilation ` local developer build Why do CI builds take so long? 16
  • 59. user acceptance/system tests performance tests (selection of) unit tests all unit tests integration tests time to run (hours) full compilation incremental compilation ` CI build of merged change local developer build Why do CI builds take so long? 16
  • 60. user acceptance/system tests performance tests (selection of) unit tests all unit tests integration tests time to run (hours) full compilation incremental compilation CI build of merged change local developer build Why do CI builds take so long? 16
  • 61. user acceptance/system tests performance tests (selection of) unit tests all unit tests integration tests time to run (hours) full compilation incremental compilation closer to release CI build of merged change local developer build Why do CI builds take so long? 16
  • 62. user acceptance/system tests performance tests (selection of) unit tests all unit tests integration tests time to run (hours) full compilation incremental compilation closer to release CI build of merged change local developer build Why do CI builds take so long? 16
  • 64. Even worse … 17 build machinery run on each commit!
  • 65. Even worse … 17 build machinery run on each commit!
  • 66. Even worse … 17 build machinery run on each commit! different feature configurations
  • 67. Even worse … 17 build machinery run on each commit! not just build and test, also code quality builds, nightly builds, etc. different feature configurations
  • 68. Even worse … 17 build machinery run on each commit! not just build and test, also code quality builds, nightly builds, etc. not all builds succeed different feature configurations
  • 69. What are deployment best practices? 18
  • 70. What are deployment best practices? 18 v.1 v.1v.1
  • 71. What are deployment best practices? 18 v.1v.2 v.1
  • 72. What are deployment best practices? 18 v.2 v.1v.2
  • 73. What are deployment best practices? 18 v.2 v.1v.1
  • 74. What are deployment best practices? 18 v.1v.1v.1
  • 76. #  Install  PostgreSQL  server  and  client   include_recipe  "postgresql::server"   include_recipe  "postgresql::client"   #  Make  postgresql_database  resource  available   include_recipe  "database::postgresql"   #  Create  database  for  Rails  app   db  =  node["practicingruby"]["database"]   postgresql_database  db["name"]  do      connection(          :host          =>  db["host"],          :port          =>  node["postgresql"]["config"]["port"],          :username  =>  db["username"],          :password  =>  db["password"],      )   end Infrastructure code 19
  • 77. #  Install  PostgreSQL  server  and  client   include_recipe  "postgresql::server"   include_recipe  "postgresql::client"   #  Make  postgresql_database  resource  available   include_recipe  "database::postgresql"   #  Create  database  for  Rails  app   db  =  node["practicingruby"]["database"]   postgresql_database  db["name"]  do      connection(          :host          =>  db["host"],          :port          =>  node["postgresql"]["config"]["port"],          :username  =>  db["username"],          :password  =>  db["password"],      )   end Infrastructure code 19
  • 78. #  Install  PostgreSQL  server  and  client   include_recipe  "postgresql::server"   include_recipe  "postgresql::client"   #  Make  postgresql_database  resource  available   include_recipe  "database::postgresql"   #  Create  database  for  Rails  app   db  =  node["practicingruby"]["database"]   postgresql_database  db["name"]  do      connection(          :host          =>  db["host"],          :port          =>  node["postgresql"]["config"]["port"],          :username  =>  db["username"],          :password  =>  db["password"],      )   end Infrastructure code smells? 19
  • 79.
  • 80. Is the release in good shape?
  • 81. Was the release a success? Is the release in good shape?
  • 82. Was the release a success? Is the release in good shape? The release is botched, how can we roll back?
  • 83. Was the release a success? What’s the optimal cycle time for us? Is the release in good shape? The release is botched, how can we roll back?
  • 85. Continuous delivery for mobile apps is a serious challenge! Chuck Rossi 21
  • 86. What can you do for release engineering? 22
  • 87. What can you do for release engineering? 22 What can release engineering do for you?
  • 88. When noble intentions meet reality 23
  • 89. Harmful assumptions about release pipelines that can impact predictive modelling 24
  • 90. Harmful assumptions about release pipelines that can impact predictive modelling 1. All releases are equal 24
  • 91. 25
  • 92. Look at Project X! It had a crazy number of bugs in the typical six-month post-release window! 25
  • 93. Look at Project X! It had a crazy number of bugs in the typical six-month post-release window! Well, Project X releases every 6 weeks, so you’re counting several releases… 25
  • 94. Release cycles vary among popular studied systems Daysbetweenreleases An Empirical Study of Delays in the Integration of Addressed Issues D. A. da Costa et al. [ICSME 2014]
  • 95. Release cycles can even vary within systems! 1.0 2.0 2.5 3.0 3.5 4.0 5.0 6.0 7.0 8.0 9.0 10.0 0 200 400 600 800 Firefoxrelease Days since prior release 27
  • 96. The rapid release cycle of modern software systems 28
  • 97. The rapid release cycle of modern software systems Often release several times in one day! 28
  • 98. 1. All releases are equal Harmful assumptions about release pipelines that can impact predictive modelling 29
  • 99. 1. All releases are equal 2. All branches are equal Harmful assumptions about release pipelines that can impact predictive modelling 29
  • 100. 30
  • 101. Weird… The size of this project fluctuates between 50k and 45k lines! 30
  • 102. Weird… The size of this project fluctuates between 50k and 45k lines! Hmm, did you select the relevant branch? Several are developed in parallel! 30
  • 103. An example of defect prediction Feature development Defect repairing Merge Commit types 31
  • 104. An example of defect prediction Feature development Defect repairing Merge Commit types 31
  • 105. An example of defect prediction v1.0 Feature development Defect repairing Merge Commit types 31
  • 106. An example of defect prediction v1.0 Feature development Defect repairing Merge Commit types Pre- release 31
  • 107. An example of defect prediction v1.0 Feature development Defect repairing Merge Commit types Pre- release Post- release 31
  • 108. An example of defect prediction v1.0 Feature development Defect repairing Merge Commit types Pre- release Post- release 31
  • 109. Handling the intricacies of a multi- branch release pipeline Dev Stable Feature development Defect repairing Merge Commit types 32
  • 110. Handling the intricacies of a multi- branch release pipeline Dev Stable Feature development Defect repairing Merge Commit types 32
  • 111. Handling the intricacies of a multi- branch release pipeline Dev Stable Feature development Defect repairing Merge Commit types 32
  • 112. Handling the intricacies of a multi- branch release pipeline Dev Stable Feature development Defect repairing Merge Commit types 32
  • 113. Handling the intricacies of a multi- branch release pipeline v1.0 Dev Stable Feature development Defect repairing Merge Commit types 32
  • 114. Handling the intricacies of a multi- branch release pipeline v1.0 Dev Stable Feature development Defect repairing Merge Commit types 32
  • 115. Handling the intricacies of a multi- branch release pipeline v1.0 Dev Stable Feature development Defect repairing Merge Commit types 32
  • 116. Handling the intricacies of a multi- branch release pipeline v1.0 Dev Stable Feature development Defect repairing Merge Commit types 32
  • 117. Handling the intricacies of a multi- branch release pipeline v1.0 Dev Stable Feature development Defect repairing Merge Commit types 32
  • 118. Handling the intricacies of a multi- branch release pipeline v1.0 Dev Stable Feature development Defect repairing Merge Commit types 32
  • 119. Branching can get really complex… 33
  • 120. 1. All releases are equal 2. All branches are equal Harmful assumptions about release pipelines that can impact predictive modelling 34
  • 121. 1. All releases are equal 2. All branches are equal 3. All files are equal Harmful assumptions about release pipelines that can impact predictive modelling 34
  • 122. 35
  • 123. This popular web browser has an enormous codebase! >30M lines! 35
  • 124. This popular web browser has an enormous codebase! >30M lines! Yes, but the codebase contains several systems! The build configuration decides which one is produced! 35
  • 125. 36 Many files are conditionally included in deliverables Tracing Software Build Processes to Uncover License Compliance Inconsistencies S. van der Berg et al. [ASE 2014] Aterm Opkg Bash CUPS Xalan OpenSSL FFmpeg % Excluded Files 0% 20% 40% 60% 80%
  • 126. 36 Many files are conditionally included in deliverables Fixes in these files may have a smaller impact (if any) on customers Tracing Software Build Processes to Uncover License Compliance Inconsistencies S. van der Berg et al. [ASE 2014] Aterm Opkg Bash CUPS Xalan OpenSSL FFmpeg % Excluded Files 0% 20% 40% 60% 80%
  • 127. Understanding conditionally included files using the build system Design recovery and maintenance of build systems B. Adams et al. [ICSM 2007] 37
  • 128. 1. All releases are equal, 2. All branches are equal, Harmful assumptions about release pipelines that can impact predictive modelling 3. All files are equal 38
  • 129. but some are more equal than others 1. All releases are equal, 2. All branches are equal, Harmful assumptions about release pipelines that can impact predictive modelling 3. All files are equal 38
  • 130. My nightmare Amassing and indexing a large sample of version control systems Audris Mockus [MSR 2009] Boa: a language and infrastructure for analyzing ultra-large-scale software repositories R. Dyer et al. [ICSE 2013] The GHTorrent Dataset and Tool Suite G. Gousios [MSR 2013]
  • 131. My nightmare Amassing and indexing a large sample of version control systems Audris Mockus [MSR 2009] Boa: a language and infrastructure for analyzing ultra-large-scale software repositories R. Dyer et al. [ICSE 2013] The GHTorrent Dataset and Tool Suite G. Gousios [MSR 2013] We collect all of the data in the world, but it’s meaningless without context!
  • 132.
  • 133. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release
  • 134. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release
  • 135. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release http://www.informit.com/articles/article.aspx?p=1833567 reduce the risk of releasing software if it hurts, do it more frequently, and bring the pain forward Jez Humble
  • 136. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release http://www.informit.com/articles/article.aspx?p=1833567 reduce the risk of releasing software if it hurts, do it more frequently, and bring the pain forward Jez Humble
  • 137. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release http://www.informit.com/articles/article.aspx?p=1833567 reduce the risk of releasing software if it hurts, do it more frequently, and bring the pain forward Jez Humble master branch How to Predict Integration Effort? 14 3rd party dependency feature branch 1 git repo release branch MERGE CONFLICT? myapp v.1 feature branch 2 sync
  • 138. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release http://www.informit.com/articles/article.aspx?p=1833567 reduce the risk of releasing software if it hurts, do it more frequently, and bring the pain forward Jez Humble master branch How to Predict Integration Effort? 14 3rd party dependency feature branch 1 git repo release branch MERGE CONFLICT? myapp v.1 feature branch 2 sync
  • 139. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release http://www.informit.com/articles/article.aspx?p=1833567 reduce the risk of releasing software if it hurts, do it more frequently, and bring the pain forward Jez Humble master branch How to Predict Integration Effort? 14 3rd party dependency feature branch 1 git repo release branch MERGE CONFLICT? myapp v.1 feature branch 2 sync but some are more equal than others 1. All releases are equal, 2. All branches are equal, Harmful assumptions about release pipelines that can impact predictive modelling 3. All files are equal
  • 140. Release Engineering integrating code changes building/testing (CI) releasing to the user deploying a new release http://www.informit.com/articles/article.aspx?p=1833567 reduce the risk of releasing software if it hurts, do it more frequently, and bring the pain forward Jez Humble master branch How to Predict Integration Effort? 14 3rd party dependency feature branch 1 git repo release branch MERGE CONFLICT? myapp v.1 feature branch 2 sync but some are more equal than others 1. All releases are equal, 2. All branches are equal, Harmful assumptions about release pipelines that can impact predictive modelling 3. All files are equal