SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Continuous Delivery
The Continuous Delivery toolstack
for embedded Java
by Leif Sørensen, Partner at Praqma
Continuous Delivery
Praqma
Continuous Delivery Experts
We automate
software
development
processes and
verification
techniques
We do sponsored
Open Source
development.
Our focus is strong on
Open Source tools
especially Jenkins CI
Regional service
Service partner
agreements
Continuous Delivery
Continuous Delivery
Defies Phases
Software development is iterative by nature.
Traditionally each iteration is seen as divided into phases
Development Integration Testing Deployment Release
The workload in each phase is unpredictable
...and so becomes the release date
The business
stakeholders must be able
to decide the release date
Development+Integration+
Testing+Deployment+
Release
Development+Integration+
Testing+Deployment+
Release
Development+Integration+
Testing+Deployment+
Release
Development+Integration+
Testing+Deployment+
Release
Development+Integration+
Testing+Deployment+
Release
Every commit is a potential
release candidate
Continuous Delivery
Agile manifesto
Continuous Delivery
Continuous Delivery
A Staged Approach
Commit
Rejected
Released
Pre-test
Static
Analysis
Passed
Failed
Deploy &
Test
Passed
Failed
Failed
Release &
Deploy
Passed
Failed
Continuous Delivery
Signs of
Continuous Delivery Maturity
“Early Branching”
Branches used
for releases
Merges are rare
Unit Test
Code
Coverage
Verification
before commit
run in developer's
Workspace
Common
nightly build
Build status is
notified to
committer
“Late branching”
Branches used
for work isolation
Merges are
common
Metrics on
technical debt &
compliance
Mock-up's &
proxies
Ci server
builds on commit
Artifacts are
managed
Latest build status
Is available to
all stakeholders
Pre-tested
Commits
Integration branch
is pristine
Peer-reviews
Automated
Functional
Test
No build scripts
-only configurations
Dependencies
are managed
Trend reports
Build status can
be subscribed to
(pull vs push)
All commits are
tied to tasks
Individual
history rewrites
In DVCS
Test Data
Test in target
Distributed builds
Staged build
sequence
Monitors in work
areas show
real-time status
Release notes
& traceability
analysis
are generated
automatically
Automated
Acceptance
Test
Build from VM
CI server
orchestrate VMs
Build reports
and statistics are
shared with
customer and
public
Visibility
SCM
Test + QA
Build
Novice Expert
Continuous Delivery
Cobertura
● A code coverage utility for Java.
Javadoc
Checkstyle
● Junit
● A programmer-oriented testing framework for Java.
Tools
Continuous Delivery
Jenkins CI - What it does
Jenkins CI make
the state of the software
visible
Continuous Delivery
Build pipelines
Continuous Delivery
Cobertura Code Coverage
Continuous Delivery
Cobertura Code Coverage
Continuous Delivery
Checkstyle, Open Tasks
1
Praqmatic Software
Development
Continuous Delivery
The Continuous Delivery toolstack
for embedded Java
by Leif Sørensen, Partner at Praqma
2
Praqmatic Software
Development
Continuous Delivery
Praqma
Continuous Delivery Experts
We automate
software
development
processes and
verification
techniques
We do sponsored
Open Source
development.
Our focus is strong on
Open Source tools
especially Jenkins CI
Regional service
Service partner
agreements
● Continuous delivery experts, experienced in working in regulated
environments such at FDA, Solvency II, MISRA and ISO
● We help software development teams setup their software
development processes, continuous integration and continuous
delivery strategies.
● Open source community karma
● Offer SLA to our customers, that enables safe use of OSS
● Contribute by proxy
● Hvem er vi/jeg?
● Hvem er I?
3
Praqmatic Software
Development
Continuous Delivery
Continuous Delivery
Defies Phases
Software development is iterative by nature.
Traditionally each iteration is seen as divided into phases
Development Integration Testing Deployment Release
The workload in each phase is unpredictable
...and so becomes the release date
The business
stakeholders must be able
to decide the release date
Development+Integration+
Testing+Deployment+
Release
Development+Integration+
Testing+Deployment+
Release
Development+Integration+
Testing+Deployment+
Release
Development+Integration+
Testing+Deployment+
Release
Development+Integration+
Testing+Deployment+
Release
Every commit is a potential
release candidate
● Software development is iterative by nature, each release is followed
by another, and each release tend to be regarded as a separate
cycle
● Traditionally the SW process is perceived as having phases, which
all -except the development itself - deals with consolidating the
development effort.
● The consolidating phases are all notoriously unpredictable.
● The release data can not be planned
● The solution is to to automate all consolidation and verification steps
and execute them upon every single commit
● The most important ingredients are an unquenchable urge to
automate everything and a well greased build environment
● The phases – as we know them from traditional SW development –
has got to be eliminated
● CD defies phases
4
Praqmatic Software
Development
Continuous Delivery
Agile manifesto
2 important points from agile manifesto
5
Praqmatic Software
Development
Continuous Delivery
Continuous Delivery
A Staged Approach
Commit
Rejected
Released
Pre-test
Static
Analysis
Passed
Failed
Deploy &
Test
Passed
Failed
Failed
Release &
Deploy
Passed
Failed
Imagine that you should draw a state-transition diagram of the
process that should validate a release candidate from the point
where it's committed to the VCS and through the verifications that
would finally validate it.
It Could probably look something like this.
Point is:
● It's a staged model
● Each stage consist of an action AND a decision
● If this shall be automated then BOTH the action and the
decision must be automated
Jenkins Can do this!
6
Praqmatic Software
Development
Continuous Delivery
Signs of
Continuous Delivery Maturity
“Early Branching”
Branches used
for releases
Merges are rare
Unit Test
Code
Coverage
Verification
before commit
run in developer's
Workspace
Common
nightly build
Build status is
notified to
committer
“Late branching”
Branches used
for work isolation
Merges are
common
Metrics on
technical debt &
compliance
Mock-up's &
proxies
Ci server
builds on commit
Artifacts are
managed
Latest build status
Is available to
all stakeholders
Pre-tested
Commits
Integration branch
is pristine
Peer-reviews
Automated
Functional
Test
No build scripts
-only configurations
Dependencies
are managed
Trend reports
Build status can
be subscribed to
(pull vs push)
All commits are
tied to tasks
Individual
history rewrites
In DVCS
Test Data
Test in target
Distributed builds
Staged build
sequence
Monitors in work
areas show
real-time status
Release notes
& traceability
analysis
are generated
automatically
Automated
Acceptance
Test
Build from VM
CI server
orchestrate VMs
Build reports
and statistics are
shared with
customer and
public
Visibility
SCM
Test + QA
Build
Novice Expert
7
Praqmatic Software
Development
Continuous Delivery
Cobertura
● A code coverage utility for Java.
Javadoc
Checkstyle
● Junit
● A programmer-oriented testing framework for Java.
Tools
8
Praqmatic Software
Development
Continuous Delivery
Jenkins CI - What it does
Jenkins CI make
the state of the software
visible
9
Praqmatic Software
Development
Continuous Delivery
Build pipelines
10
Praqmatic Software
Development
Continuous Delivery
Cobertura Code Coverage
11
Praqmatic Software
Development
Continuous Delivery
Cobertura Code Coverage
12
Praqmatic Software
Development
Continuous Delivery
Checkstyle, Open Tasks

Contenu connexe

Tendances

Resume_Archana_Rao
Resume_Archana_RaoResume_Archana_Rao
Resume_Archana_Rao
archana rao
 

Tendances (20)

The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 
Agile, DevOps & Test
Agile, DevOps & TestAgile, DevOps & Test
Agile, DevOps & Test
 
Resume_Archana_Rao
Resume_Archana_RaoResume_Archana_Rao
Resume_Archana_Rao
 
Agile process with a fixed cost
Agile process with a fixed costAgile process with a fixed cost
Agile process with a fixed cost
 
John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013John Fodeh Adventures in Test Automation - EuroSTAR 2013
John Fodeh Adventures in Test Automation - EuroSTAR 2013
 
6 sigma LTE release management process improvement
6 sigma LTE release management process improvement6 sigma LTE release management process improvement
6 sigma LTE release management process improvement
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
Webinar: “Continuous Delivery: il tuo primo passo verso il DevOps”
 
1×10 rola QA w tworzeniu Atlassian JIRA
 1×10 rola QA w tworzeniu Atlassian JIRA 1×10 rola QA w tworzeniu Atlassian JIRA
1×10 rola QA w tworzeniu Atlassian JIRA
 
New trends in testing automation
New trends in testing automationNew trends in testing automation
New trends in testing automation
 
RemoteLaunch Overview Presentation (2022)
RemoteLaunch Overview Presentation (2022)RemoteLaunch Overview Presentation (2022)
RemoteLaunch Overview Presentation (2022)
 
Continues delivery - Introduction
Continues delivery - IntroductionContinues delivery - Introduction
Continues delivery - Introduction
 
Agile testing - Principles and best practices
Agile testing  - Principles and best practicesAgile testing  - Principles and best practices
Agile testing - Principles and best practices
 
KT Resume_2014
KT Resume_2014KT Resume_2014
KT Resume_2014
 
Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?Continuous Delivery: why ? where to start ? how to scale ?
Continuous Delivery: why ? where to start ? how to scale ?
 
Code campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditechCode campiasi scm-project-gabriel-cristescu-ditech
Code campiasi scm-project-gabriel-cristescu-ditech
 
Self-Service Secure Test and Release Pipelines
Self-Service Secure Test and Release PipelinesSelf-Service Secure Test and Release Pipelines
Self-Service Secure Test and Release Pipelines
 
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOpsAgile A to Z Chapter 4 Feedback Loop Part 2 DevOps
Agile A to Z Chapter 4 Feedback Loop Part 2 DevOps
 
Ralph Jocham, Effective Agile | Agile Turkey Summit 2013
Ralph Jocham, Effective Agile | Agile Turkey Summit 2013Ralph Jocham, Effective Agile | Agile Turkey Summit 2013
Ralph Jocham, Effective Agile | Agile Turkey Summit 2013
 
50+ ways to improve tester - programmer relationship
50+ ways to improve tester - programmer relationship50+ ways to improve tester - programmer relationship
50+ ways to improve tester - programmer relationship
 

Similaire à The Continuous Delivery toolstack for embedded Java af Leif Sørensen, Praqma

Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
LB Denker
 
Utilizing SVN Jenkins to Manage Multi-line Development to Deployments
Utilizing SVN  Jenkins to Manage Multi-line Development to DeploymentsUtilizing SVN  Jenkins to Manage Multi-line Development to Deployments
Utilizing SVN Jenkins to Manage Multi-line Development to Deployments
Teresa Garcia-Bovenmyer ☁
 

Similaire à The Continuous Delivery toolstack for embedded Java af Leif Sørensen, Praqma (20)

The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Webinar: “Mai sentito parlare di Continuous Delivery per il database? Ecco co...
Webinar: “Mai sentito parlare di Continuous Delivery per il database? Ecco co...Webinar: “Mai sentito parlare di Continuous Delivery per il database? Ecco co...
Webinar: “Mai sentito parlare di Continuous Delivery per il database? Ecco co...
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
DevOps with Microsoft Stack
DevOps with Microsoft StackDevOps with Microsoft Stack
DevOps with Microsoft Stack
 
Agile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasadAgile lifecycle handbook by bhawani nandan prasad
Agile lifecycle handbook by bhawani nandan prasad
 
DevOps in Salesforce AppCloud
DevOps in Salesforce AppCloudDevOps in Salesforce AppCloud
DevOps in Salesforce AppCloud
 
Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model Continuous Integration & the Release Maturity Model
Continuous Integration & the Release Maturity Model
 
Utilizing SVN Jenkins to Manage Multi-line Development to Deployments
Utilizing SVN  Jenkins to Manage Multi-line Development to DeploymentsUtilizing SVN  Jenkins to Manage Multi-line Development to Deployments
Utilizing SVN Jenkins to Manage Multi-line Development to Deployments
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
 
The Release Manager is Dead. Long Live the Release Manager!
The Release Manager is Dead. Long Live the Release Manager!The Release Manager is Dead. Long Live the Release Manager!
The Release Manager is Dead. Long Live the Release Manager!
 
The Release Manager is Dead. Long Live the Release Manager.
The Release Manager is Dead. Long Live the Release Manager.The Release Manager is Dead. Long Live the Release Manager.
The Release Manager is Dead. Long Live the Release Manager.
 
What is Continuous Delivery?
What is Continuous Delivery?What is Continuous Delivery?
What is Continuous Delivery?
 
Continuous Integration for z using Test Data Management and Application D...
Continuous  Integration for z  using  Test Data Management  and Application D...Continuous  Integration for z  using  Test Data Management  and Application D...
Continuous Integration for z using Test Data Management and Application D...
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
release management
release managementrelease management
release management
 
Software Release Orchestration and the Enterprise
Software Release Orchestration and the EnterpriseSoftware Release Orchestration and the Enterprise
Software Release Orchestration and the Enterprise
 
Continuous Delivery for Front-End Engineers
Continuous Delivery for Front-End EngineersContinuous Delivery for Front-End Engineers
Continuous Delivery for Front-End Engineers
 
Software Development Life Cycle-SDLC
Software Development Life Cycle-SDLCSoftware Development Life Cycle-SDLC
Software Development Life Cycle-SDLC
 
Agile & DevOps - It's all about project success
Agile & DevOps - It's all about project successAgile & DevOps - It's all about project success
Agile & DevOps - It's all about project success
 

Plus de InfinIT - Innovationsnetværket for it

Plus de InfinIT - Innovationsnetværket for it (20)

Erfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermarkErfaringer med-c kurt-noermark
Erfaringer med-c kurt-noermark
 
Object orientering, test driven development og c
Object orientering, test driven development og cObject orientering, test driven development og c
Object orientering, test driven development og c
 
Embedded softwaredevelopment hcs
Embedded softwaredevelopment hcsEmbedded softwaredevelopment hcs
Embedded softwaredevelopment hcs
 
C og c++-jens lund jensen
C og c++-jens lund jensenC og c++-jens lund jensen
C og c++-jens lund jensen
 
201811xx foredrag c_cpp
201811xx foredrag c_cpp201811xx foredrag c_cpp
201811xx foredrag c_cpp
 
C som-programmeringssprog-bt
C som-programmeringssprog-btC som-programmeringssprog-bt
C som-programmeringssprog-bt
 
Infinit seminar 060918
Infinit seminar 060918Infinit seminar 060918
Infinit seminar 060918
 
DCR solutions
DCR solutionsDCR solutions
DCR solutions
 
Not your grandfathers BPM
Not your grandfathers BPMNot your grandfathers BPM
Not your grandfathers BPM
 
Kmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolutionKmd workzone - an evolutionary approach to revolution
Kmd workzone - an evolutionary approach to revolution
 
EcoKnow - oplæg
EcoKnow - oplægEcoKnow - oplæg
EcoKnow - oplæg
 
Martin Wickins Chatbots i fronten
Martin Wickins Chatbots i frontenMartin Wickins Chatbots i fronten
Martin Wickins Chatbots i fronten
 
Marie Fenger ai kundeservice
Marie Fenger ai kundeserviceMarie Fenger ai kundeservice
Marie Fenger ai kundeservice
 
Mads Kaysen SupWiz
Mads Kaysen SupWizMads Kaysen SupWiz
Mads Kaysen SupWiz
 
Leif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support CenterLeif Howalt NNIT Service Support Center
Leif Howalt NNIT Service Support Center
 
Jan Neerbek NLP og Chatbots
Jan Neerbek NLP og ChatbotsJan Neerbek NLP og Chatbots
Jan Neerbek NLP og Chatbots
 
Anders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer SupportAnders Soegaard NLP for Customer Support
Anders Soegaard NLP for Customer Support
 
Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018Stephen Alstrup infinit august 2018
Stephen Alstrup infinit august 2018
 
Innovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekterInnovation og værdiskabelse i it-projekter
Innovation og værdiskabelse i it-projekter
 
Rokoko infin it presentation
Rokoko infin it presentation Rokoko infin it presentation
Rokoko infin it presentation
 

Dernier

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Dernier (19)

Luka Modric Elevating Croatia's Stars for Euro Cup 2024.docx
Luka Modric Elevating Croatia's Stars for Euro Cup 2024.docxLuka Modric Elevating Croatia's Stars for Euro Cup 2024.docx
Luka Modric Elevating Croatia's Stars for Euro Cup 2024.docx
 
UEFA Euro 2024 Clash and Eurovision 2024 Poll Insights.docx
UEFA Euro 2024 Clash and Eurovision 2024 Poll Insights.docxUEFA Euro 2024 Clash and Eurovision 2024 Poll Insights.docx
UEFA Euro 2024 Clash and Eurovision 2024 Poll Insights.docx
 
Trusted Cricket Betting ID Provider In India: Get your Cricket ID Now
Trusted Cricket Betting ID Provider In India: Get your Cricket ID NowTrusted Cricket Betting ID Provider In India: Get your Cricket ID Now
Trusted Cricket Betting ID Provider In India: Get your Cricket ID Now
 
Belgium Vs Slovakia Belgium at Euro 2024 Teams in group, fixtures, schedule, ...
Belgium Vs Slovakia Belgium at Euro 2024 Teams in group, fixtures, schedule, ...Belgium Vs Slovakia Belgium at Euro 2024 Teams in group, fixtures, schedule, ...
Belgium Vs Slovakia Belgium at Euro 2024 Teams in group, fixtures, schedule, ...
 
Hire 💕 8617370543 Amethi Call Girls Service Call Girls Agency
Hire 💕 8617370543 Amethi Call Girls Service Call Girls AgencyHire 💕 8617370543 Amethi Call Girls Service Call Girls Agency
Hire 💕 8617370543 Amethi Call Girls Service Call Girls Agency
 
basketball evolution History Slides.pdf
basketball evolution  History Slides.pdfbasketball evolution  History Slides.pdf
basketball evolution History Slides.pdf
 
Croatia vs Italy Inter Milan Looking to Carry On Success at Euro 2024.pdf
Croatia vs Italy Inter Milan Looking to Carry On Success at Euro 2024.pdfCroatia vs Italy Inter Milan Looking to Carry On Success at Euro 2024.pdf
Croatia vs Italy Inter Milan Looking to Carry On Success at Euro 2024.pdf
 
Cricket Api Solution.pdfCricket Api Solution.pdf
Cricket Api Solution.pdfCricket Api Solution.pdfCricket Api Solution.pdfCricket Api Solution.pdf
Cricket Api Solution.pdfCricket Api Solution.pdf
 
Italy Vs Albania Italy vs Albania Euro 2024 Prediction Can Albania pull off a...
Italy Vs Albania Italy vs Albania Euro 2024 Prediction Can Albania pull off a...Italy Vs Albania Italy vs Albania Euro 2024 Prediction Can Albania pull off a...
Italy Vs Albania Italy vs Albania Euro 2024 Prediction Can Albania pull off a...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Albania Vs Spain South American coaches lead Albania to Euro 2024 spot.docx
Albania Vs Spain South American coaches lead Albania to Euro 2024 spot.docxAlbania Vs Spain South American coaches lead Albania to Euro 2024 spot.docx
Albania Vs Spain South American coaches lead Albania to Euro 2024 spot.docx
 
Slovenia Vs Serbia Eurovision odds Slovenia have top.docx
Slovenia Vs Serbia Eurovision odds Slovenia have top.docxSlovenia Vs Serbia Eurovision odds Slovenia have top.docx
Slovenia Vs Serbia Eurovision odds Slovenia have top.docx
 
JORNADA 6 LIGA MURO 2024TUXTEPECOAXACA.pdf
JORNADA 6 LIGA MURO 2024TUXTEPECOAXACA.pdfJORNADA 6 LIGA MURO 2024TUXTEPECOAXACA.pdf
JORNADA 6 LIGA MURO 2024TUXTEPECOAXACA.pdf
 
Churu Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Churu Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsChuru Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Churu Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
Unveiling the Mystery of Main Bazar Chart
Unveiling the Mystery of Main Bazar ChartUnveiling the Mystery of Main Bazar Chart
Unveiling the Mystery of Main Bazar Chart
 
Netherlands Players expected to miss UEFA Euro 2024 due to injury.docx
Netherlands Players expected to miss UEFA Euro 2024 due to injury.docxNetherlands Players expected to miss UEFA Euro 2024 due to injury.docx
Netherlands Players expected to miss UEFA Euro 2024 due to injury.docx
 
Genuine 8617370543 Hot and Beautiful 💕 Etah Escorts call Girls
Genuine 8617370543 Hot and Beautiful 💕 Etah Escorts call GirlsGenuine 8617370543 Hot and Beautiful 💕 Etah Escorts call Girls
Genuine 8617370543 Hot and Beautiful 💕 Etah Escorts call Girls
 
Spain to be banned from participating in Euro 2024.docx
Spain to be banned from participating in Euro 2024.docxSpain to be banned from participating in Euro 2024.docx
Spain to be banned from participating in Euro 2024.docx
 
Personal Brand Exploration - By Bradley Dennis
Personal Brand Exploration - By Bradley DennisPersonal Brand Exploration - By Bradley Dennis
Personal Brand Exploration - By Bradley Dennis
 

The Continuous Delivery toolstack for embedded Java af Leif Sørensen, Praqma

  • 1. Continuous Delivery The Continuous Delivery toolstack for embedded Java by Leif Sørensen, Partner at Praqma
  • 2. Continuous Delivery Praqma Continuous Delivery Experts We automate software development processes and verification techniques We do sponsored Open Source development. Our focus is strong on Open Source tools especially Jenkins CI Regional service Service partner agreements
  • 3. Continuous Delivery Continuous Delivery Defies Phases Software development is iterative by nature. Traditionally each iteration is seen as divided into phases Development Integration Testing Deployment Release The workload in each phase is unpredictable ...and so becomes the release date The business stakeholders must be able to decide the release date Development+Integration+ Testing+Deployment+ Release Development+Integration+ Testing+Deployment+ Release Development+Integration+ Testing+Deployment+ Release Development+Integration+ Testing+Deployment+ Release Development+Integration+ Testing+Deployment+ Release Every commit is a potential release candidate
  • 5. Continuous Delivery Continuous Delivery A Staged Approach Commit Rejected Released Pre-test Static Analysis Passed Failed Deploy & Test Passed Failed Failed Release & Deploy Passed Failed
  • 6. Continuous Delivery Signs of Continuous Delivery Maturity “Early Branching” Branches used for releases Merges are rare Unit Test Code Coverage Verification before commit run in developer's Workspace Common nightly build Build status is notified to committer “Late branching” Branches used for work isolation Merges are common Metrics on technical debt & compliance Mock-up's & proxies Ci server builds on commit Artifacts are managed Latest build status Is available to all stakeholders Pre-tested Commits Integration branch is pristine Peer-reviews Automated Functional Test No build scripts -only configurations Dependencies are managed Trend reports Build status can be subscribed to (pull vs push) All commits are tied to tasks Individual history rewrites In DVCS Test Data Test in target Distributed builds Staged build sequence Monitors in work areas show real-time status Release notes & traceability analysis are generated automatically Automated Acceptance Test Build from VM CI server orchestrate VMs Build reports and statistics are shared with customer and public Visibility SCM Test + QA Build Novice Expert
  • 7. Continuous Delivery Cobertura ● A code coverage utility for Java. Javadoc Checkstyle ● Junit ● A programmer-oriented testing framework for Java. Tools
  • 8. Continuous Delivery Jenkins CI - What it does Jenkins CI make the state of the software visible
  • 13. 1 Praqmatic Software Development Continuous Delivery The Continuous Delivery toolstack for embedded Java by Leif Sørensen, Partner at Praqma
  • 14. 2 Praqmatic Software Development Continuous Delivery Praqma Continuous Delivery Experts We automate software development processes and verification techniques We do sponsored Open Source development. Our focus is strong on Open Source tools especially Jenkins CI Regional service Service partner agreements ● Continuous delivery experts, experienced in working in regulated environments such at FDA, Solvency II, MISRA and ISO ● We help software development teams setup their software development processes, continuous integration and continuous delivery strategies. ● Open source community karma ● Offer SLA to our customers, that enables safe use of OSS ● Contribute by proxy ● Hvem er vi/jeg? ● Hvem er I?
  • 15. 3 Praqmatic Software Development Continuous Delivery Continuous Delivery Defies Phases Software development is iterative by nature. Traditionally each iteration is seen as divided into phases Development Integration Testing Deployment Release The workload in each phase is unpredictable ...and so becomes the release date The business stakeholders must be able to decide the release date Development+Integration+ Testing+Deployment+ Release Development+Integration+ Testing+Deployment+ Release Development+Integration+ Testing+Deployment+ Release Development+Integration+ Testing+Deployment+ Release Development+Integration+ Testing+Deployment+ Release Every commit is a potential release candidate ● Software development is iterative by nature, each release is followed by another, and each release tend to be regarded as a separate cycle ● Traditionally the SW process is perceived as having phases, which all -except the development itself - deals with consolidating the development effort. ● The consolidating phases are all notoriously unpredictable. ● The release data can not be planned ● The solution is to to automate all consolidation and verification steps and execute them upon every single commit ● The most important ingredients are an unquenchable urge to automate everything and a well greased build environment ● The phases – as we know them from traditional SW development – has got to be eliminated ● CD defies phases
  • 16. 4 Praqmatic Software Development Continuous Delivery Agile manifesto 2 important points from agile manifesto
  • 17. 5 Praqmatic Software Development Continuous Delivery Continuous Delivery A Staged Approach Commit Rejected Released Pre-test Static Analysis Passed Failed Deploy & Test Passed Failed Failed Release & Deploy Passed Failed Imagine that you should draw a state-transition diagram of the process that should validate a release candidate from the point where it's committed to the VCS and through the verifications that would finally validate it. It Could probably look something like this. Point is: ● It's a staged model ● Each stage consist of an action AND a decision ● If this shall be automated then BOTH the action and the decision must be automated Jenkins Can do this!
  • 18. 6 Praqmatic Software Development Continuous Delivery Signs of Continuous Delivery Maturity “Early Branching” Branches used for releases Merges are rare Unit Test Code Coverage Verification before commit run in developer's Workspace Common nightly build Build status is notified to committer “Late branching” Branches used for work isolation Merges are common Metrics on technical debt & compliance Mock-up's & proxies Ci server builds on commit Artifacts are managed Latest build status Is available to all stakeholders Pre-tested Commits Integration branch is pristine Peer-reviews Automated Functional Test No build scripts -only configurations Dependencies are managed Trend reports Build status can be subscribed to (pull vs push) All commits are tied to tasks Individual history rewrites In DVCS Test Data Test in target Distributed builds Staged build sequence Monitors in work areas show real-time status Release notes & traceability analysis are generated automatically Automated Acceptance Test Build from VM CI server orchestrate VMs Build reports and statistics are shared with customer and public Visibility SCM Test + QA Build Novice Expert
  • 19. 7 Praqmatic Software Development Continuous Delivery Cobertura ● A code coverage utility for Java. Javadoc Checkstyle ● Junit ● A programmer-oriented testing framework for Java. Tools
  • 20. 8 Praqmatic Software Development Continuous Delivery Jenkins CI - What it does Jenkins CI make the state of the software visible