SlideShare ist ein Scribd-Unternehmen logo
1 von 20
AMSTERDAM / CHICAGO / FRANKFURT / HONG KONG / LONDON / MUMBAI / NEW YORK / SINGAPORE / SYDNEY


The heart of a perfectionist.
The soul of an innovator.
The blueprint of a solutions provider.




RTS Realtime Systems
Continuous Delivery Pipeline


                                            PERFORMANCE  STABILITY  CONNECTIVITY  TIME TO MARKET
Continuous Delivery




       How would you describe or explain
                      continuous delivery
Continuous Delivery




                What we should focus on
    while developing, testing and deploying
              our software and managing
     our production, test and development
                      environment.
Continuous Delivery



Do we want to deliver constantly?
 •   No, we do not want to deliver constantly, but we want to be able to do so if
     would like to
 •   Continuous delivery allows you to keep the system production-ready at all
     times
 •   The system can be released on demand at the push of a button
 •   To release something is a business decision and will be performed
     manually




                                                                                    4
Continuous Delivery



Delivery pipeline
 •   The pipeline consists of commit stage, acceptance test stage and manual
     stage
 •   At the end of the pipeline, a binary (it might be an EXE file, RPM, JAR files,
     etc. but we will call it just “binary”) can be released at the push of a big red
     button



     Commit                Acceptance                 Manual                   Release
      stage                 test stage                 stage                    button




                                                                                         5
Continuous Delivery



Commit stage
 •   Push current version from SCM (source code management tool)
 •   Build on local developing machine
 •   Run commit tests such as unit tests locally first
 •   If everything is “green”: check in to SCM
 •   Continuous integration: checkout current version, build it and run unit tests
 •   If the build output (we will call it binary from now on) has been assembled
     and tested successfully continue, otherwise inform (e.g. as email) that this
     step failed and stop everything and fix the build issue!
 •   If everything is “green”: add binary, test reports and meta data to artifact
     repository
 •   One check in per day minimum
 •   Build should take under 5 minutes including unit tests




                                                                                     6
Continuous Delivery



Commit stage




                      7
Continuous Delivery



Acceptance test stage – part one
 •   Get binary from artifact repository => no new re-build!
 •   Deploy and configure it on test environments (Puppet should be used to do
     this)
 •   Run automated acceptance tests (No human touch on GUI test)
       •   Acceptance tests (to ensure that acceptance criteria/functional requirements are
           met; will become a regression test in the next revision)

       •   Regression tests (to uncover regressions in existing functionality)

       •   Integration tests (combine modules and test their co-existence e.g. Eurex
           interface and RTD API)

       •   Capacity tests (meet non functional requirements and do load tests, scalability
           tests and throughput tests)

       •   Automated smoke tests (it might be a check that a server is reachable via ping)

       •   Any other tests that fit to this stage and can be automated




                                                                                              8
Continuous Delivery



Acceptance test stage – part two
 •   At this stage, also the Puppet installation has been tested! (Same scripts as
     in prod)
 •   If everything is “green”: add test report and meta data to artifact repository
 •   Otherwise stop the pipeline!
 •   Ideally this stage should take 15 – 20 minutes
 •   The goal is, that this stage is run after the commit stage has successfully
     been finished




                                                                                      9
Continuous Delivery



Acceptance test stage




                        10
Continuous Delivery




                      11
Continuous Delivery




                      12
Continuous Delivery



Manual stage
 •   Get binary output from artifact repository => no new re-build!
 •   Deploy and configure it on test/staging environments (puppet should be
     used to do this) for manual testing and reviewing (e.g. on stage server)
 •   Perform manual testing:
       •   Smoke tests (basic tests to ensure that the system is up and running)

       •   Exploratory testing (e.g. to test areas that should not have been touched)

       •   Usability testing (check that the functionality is human-friendly)

       •   User acceptance testing (verifies the business requirements)

       •   Showcases (e.g. Sprint Review or feedback sessions during a sprint)

 •   Involved are: QAs, Product Owners, internal customers, external customer
 •   If everything is “green”: add test report and meta data to artifact repository
 •   Otherwise stop the pipeline!
 •   At the end a release button gets provided and business people can decide
     whether it should be released into production
                                                                                        13
Continuous Delivery



Manual stage




                      14
Continuous Delivery



Requirements
 •   Commit to mainline at least once a day (or: every 30 minutes )
 •   Every (release) branch needs its own pipeline
 •   Pipeline should be monitored (traffic light)
 •   Test scripts for the monitoring process are needed… 
 •   Metrics: “Senior management should be able to directly see the current
     status of projects/products.”
     But not all metrics are really helpful, therefore, check and decide what
     metrics should be available.
 •   Have a proper release plan
 •   DevOps and its consequences




                                                                                15
Continuous Delivery



Release plan
 •   Describe the deployment procedure
 •   Identify what applications have to be smoke tested and identify dependent
     services/products/components
 •   Remediation plan => might be a roll back plan for instance (how can we roll
     back?), or a plan to disable a feature (if this is the reason for “rolling back”)
     with the next release
 •   Schedule and plan testing of roll back and deployment mechanism
 •   Inform Marketing and Solutions at least one week before stuff gets released
 •   Collaboration with test strategy and test plan




                                                                                         16
Continuous Delivery



DevOps
 •   It’s not about roles but rather a culture
 •   Within a team all roles should be shared (“This is not my problem, should
     the IT-Ops guy try to get it running in production” – this is not what we want
     to hear in such a case)
 •   Include IT-Ops in planning, reviews (showcases) and project retrospectives
 •   Puppet should also be used within “Development” (since IT-Ops will work
     closely with Development, we should use the same tools)
 •   IT-Ops scripts should be tested as well (in acceptance test stage)
 •   Installation and configuration done by puppet will automatically be tested
     when automated tests in acceptance test stage are performed (if the
     application has not been installed properly, the tests will fail)




                                                                                      17
Continuous Delivery



Organizational change
 •   Iterative, incremental: continuous improvements
 •   Plan what to do and set goals => plan, do, check, act
 •   Collaboration among departments
 •   Cross-functional teams
 •   Developers are in charge of writing production code and automated tests
 •   QA should pairing with developers to implement automated tests
 •   “We” as team are responsible to fix a red light




                                                                               18
Continuous Delivery



Actions
 •   Introduction of release plans template to be used for all development
     projects
 •   Engage collaboration between Development and IT-Operations and define
     the delivery pipeline to be implemented at RTS
 •   Define the automated test responsibility for developers guided by QAs
 •   As we are currently planning and implementing a new release tool, add
     pipeline functionality to it and provision artifact repository
 •   To be completed by September 28th




                                                                             19
AMSTERDAM / CHICAGO / FRANKFURT / HONG KONG / LONDON / MUMBAI / NEW YORK / SINGAPORE / SYDNEY


The heart of a perfectionist.
The soul of an innovator.
The blueprint of a solutions provider.




Thank you!                                                                      Contact us:
www.rtsgroup.net                                                                p.eid@rtsgroup.net



                                            PERFORMANCE  STABILITY  CONNECTIVITY  TIME TO MARKET

Weitere ähnliche Inhalte

Was ist angesagt?

Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering Pranesh Vittal
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
Shirly Ronen - User story testing activities
Shirly Ronen - User story testing activitiesShirly Ronen - User story testing activities
Shirly Ronen - User story testing activitiesAgileSparks
 
Constant Contact SF's Road to CD
Constant Contact SF's Road to CDConstant Contact SF's Road to CD
Constant Contact SF's Road to CDSolano Labs
 
Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectShirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectAgileSparks
 
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsDr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsAgileSparks
 
Shirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-asShirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-asAgileSparks
 
Promoting Agility with Running Tested Features - Paper
Promoting Agility with Running Tested Features - PaperPromoting Agility with Running Tested Features - Paper
Promoting Agility with Running Tested Features - PaperCamille Bell
 
The Definitive Guide to Implementing Shift Left Testing in QA
The Definitive Guide to Implementing Shift Left Testing in QAThe Definitive Guide to Implementing Shift Left Testing in QA
The Definitive Guide to Implementing Shift Left Testing in QARapidValue
 
How to organize qa process in agile speed
How to organize qa process in agile speedHow to organize qa process in agile speed
How to organize qa process in agile speedSvitlana Dubyk
 
Continuous Deployment pipeline demonstration spiced with Robot Framework and ...
Continuous Deployment pipeline demonstration spiced with Robot Framework and ...Continuous Deployment pipeline demonstration spiced with Robot Framework and ...
Continuous Deployment pipeline demonstration spiced with Robot Framework and ...Antti Pohjonen
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goalsgaoliang641
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineeringgaoliang641
 
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 2013TEST Huddle
 
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the EnterpriseChoosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the EnterpriseXebiaLabs
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegasjaredrrichardson
 
The Case for Agile testing
The Case for Agile testingThe Case for Agile testing
The Case for Agile testingCognizant
 
Continuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hallContinuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hallPeter Marshall
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Imaginet
 

Was ist angesagt? (20)

Build & Release Engineering
Build & Release Engineering Build & Release Engineering
Build & Release Engineering
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
Shirly Ronen - User story testing activities
Shirly Ronen - User story testing activitiesShirly Ronen - User story testing activities
Shirly Ronen - User story testing activities
 
Constant Contact SF's Road to CD
Constant Contact SF's Road to CDConstant Contact SF's Road to CD
Constant Contact SF's Road to CD
 
Shirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defectShirly Ronen - Documenting an agile defect
Shirly Ronen - Documenting an agile defect
 
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsDr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
 
Shirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-asShirly Ronen - rapid release flow and agile testing-as
Shirly Ronen - rapid release flow and agile testing-as
 
Promoting Agility with Running Tested Features - Paper
Promoting Agility with Running Tested Features - PaperPromoting Agility with Running Tested Features - Paper
Promoting Agility with Running Tested Features - Paper
 
The Definitive Guide to Implementing Shift Left Testing in QA
The Definitive Guide to Implementing Shift Left Testing in QAThe Definitive Guide to Implementing Shift Left Testing in QA
The Definitive Guide to Implementing Shift Left Testing in QA
 
Agile QA process
Agile QA processAgile QA process
Agile QA process
 
How to organize qa process in agile speed
How to organize qa process in agile speedHow to organize qa process in agile speed
How to organize qa process in agile speed
 
Continuous Deployment pipeline demonstration spiced with Robot Framework and ...
Continuous Deployment pipeline demonstration spiced with Robot Framework and ...Continuous Deployment pipeline demonstration spiced with Robot Framework and ...
Continuous Deployment pipeline demonstration spiced with Robot Framework and ...
 
Backward thinking design qa system for quality goals
Backward thinking   design qa system for quality goalsBackward thinking   design qa system for quality goals
Backward thinking design qa system for quality goals
 
Understand release engineering
Understand release engineeringUnderstand release engineering
Understand release engineering
 
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
 
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the EnterpriseChoosing Automation for DevOps & Continuous Delivery in the Enterprise
Choosing Automation for DevOps & Continuous Delivery in the Enterprise
 
Continuous Testing in Vegas
Continuous Testing in VegasContinuous Testing in Vegas
Continuous Testing in Vegas
 
The Case for Agile testing
The Case for Agile testingThe Case for Agile testing
The Case for Agile testing
 
Continuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hallContinuous testing & devops with @petemar5hall
Continuous testing & devops with @petemar5hall
 
Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012Quality Coding: What's New with Visual Studio 2012
Quality Coding: What's New with Visual Studio 2012
 

Andere mochten auch

Max company shareholders meeting may 2013
Max company shareholders meeting may 2013Max company shareholders meeting may 2013
Max company shareholders meeting may 2013sandraduhrkopp
 
Real estate marketing prop tiger
Real estate marketing  prop tigerReal estate marketing  prop tiger
Real estate marketing prop tigerNits Kedia
 

Andere mochten auch (8)

Prop 6 and hb
Prop 6 and hbProp 6 and hb
Prop 6 and hb
 
meeting may 2013
meeting may 2013meeting may 2013
meeting may 2013
 
WEBER resume
WEBER resumeWEBER resume
WEBER resume
 
Max company shareholders meeting may 2013
Max company shareholders meeting may 2013Max company shareholders meeting may 2013
Max company shareholders meeting may 2013
 
Neev Corporate Profile2
Neev Corporate Profile2Neev Corporate Profile2
Neev Corporate Profile2
 
Virtual Health
Virtual HealthVirtual Health
Virtual Health
 
Derivatives
DerivativesDerivatives
Derivatives
 
Real estate marketing prop tiger
Real estate marketing  prop tigerReal estate marketing  prop tiger
Real estate marketing prop tiger
 

Ähnlich wie CD

Ncerc rlmca202 adm m3 ssm
Ncerc rlmca202  adm m3 ssmNcerc rlmca202  adm m3 ssm
Ncerc rlmca202 adm m3 ssmssmarar
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications FasterAdam Culp
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOpsEklove Mohan
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery PresentationMauricio Ferreyra
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous TestingParasoft
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deploymentMartijn van der Kamp
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Fabricio Epaminondas
 
Engineering DevOps Right the First Time
Engineering DevOps Right the First TimeEngineering DevOps Right the First Time
Engineering DevOps Right the First TimeMarc Hornbeek
 
New trends in testing automation
New trends in testing automationNew trends in testing automation
New trends in testing automationEran Kinsbrunner
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test AutomationSauce Labs
 
Deploying and releasing applications
Deploying and releasing applicationsDeploying and releasing applications
Deploying and releasing applicationsMa Xuebin
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comAviran Mordo
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own wordsSUBHENDU KARMAKAR
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareDevOps for Enterprise Systems
 
Pay pal paypal continuous performance as a self-service with fully-automated...
Pay pal  paypal continuous performance as a self-service with fully-automated...Pay pal  paypal continuous performance as a self-service with fully-automated...
Pay pal paypal continuous performance as a self-service with fully-automated...Dynatrace
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOpsMoataz Mahmoud
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)ShudipPal
 

Ähnlich wie CD (20)

Ncerc rlmca202 adm m3 ssm
Ncerc rlmca202  adm m3 ssmNcerc rlmca202  adm m3 ssm
Ncerc rlmca202 adm m3 ssm
 
Developing PHP Applications Faster
Developing PHP Applications FasterDeveloping PHP Applications Faster
Developing PHP Applications Faster
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous Testing
 
Continuous integration, delivery & deployment
Continuous integration,  delivery & deploymentContinuous integration,  delivery & deployment
Continuous integration, delivery & deployment
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
 
Engineering DevOps Right the First Time
Engineering DevOps Right the First TimeEngineering DevOps Right the First Time
Engineering DevOps Right the First Time
 
New trends in testing automation
New trends in testing automationNew trends in testing automation
New trends in testing automation
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Deploying and releasing applications
Deploying and releasing applicationsDeploying and releasing applications
Deploying and releasing applications
 
Road to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.comRoad to Continuous Delivery - Wix.com
Road to Continuous Delivery - Wix.com
 
First Steps to DevOps
First Steps to DevOpsFirst Steps to DevOps
First Steps to DevOps
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems SoftwareLessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
Lessons Learned from Large Scale Adoption of DevOps for IBM z Systems Software
 
Pay pal paypal continuous performance as a self-service with fully-automated...
Pay pal  paypal continuous performance as a self-service with fully-automated...Pay pal  paypal continuous performance as a self-service with fully-automated...
Pay pal paypal continuous performance as a self-service with fully-automated...
 
Testing in the new age of DevOps
Testing in the new age of DevOpsTesting in the new age of DevOps
Testing in the new age of DevOps
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Rup
RupRup
Rup
 

Mehr von sandraduhrkopp

Mehr von sandraduhrkopp (20)

Careersdonewrite m fhighrise
Careersdonewrite m fhighriseCareersdonewrite m fhighrise
Careersdonewrite m fhighrise
 
Med errors apa
Med errors  apaMed errors  apa
Med errors apa
 
Needle free systems
Needle free systemsNeedle free systems
Needle free systems
 
Hai policy toolkit
Hai policy toolkitHai policy toolkit
Hai policy toolkit
 
Disease cost drivers hai apec hlm nusa dua 2013
Disease cost drivers hai apec hlm nusa dua 2013Disease cost drivers hai apec hlm nusa dua 2013
Disease cost drivers hai apec hlm nusa dua 2013
 
2.3 overview of emerging infectious disease issues in the asia pacific region...
2.3 overview of emerging infectious disease issues in the asia pacific region...2.3 overview of emerging infectious disease issues in the asia pacific region...
2.3 overview of emerging infectious disease issues in the asia pacific region...
 
Apec som hlm presentation
Apec som hlm presentationApec som hlm presentation
Apec som hlm presentation
 
Slides
SlidesSlides
Slides
 
Food presentation
Food presentationFood presentation
Food presentation
 
Presentation workshop
Presentation workshopPresentation workshop
Presentation workshop
 
presentation project management
presentation   project managementpresentation   project management
presentation project management
 
short presentation
short presentationshort presentation
short presentation
 
Jackie reco
Jackie recoJackie reco
Jackie reco
 
Spsp3
Spsp3Spsp3
Spsp3
 
Spsp2
Spsp2Spsp2
Spsp2
 
Wlm2
Wlm2Wlm2
Wlm2
 
Spare parts codification slides2
Spare parts codification slides2Spare parts codification slides2
Spare parts codification slides2
 
Wlm
WlmWlm
Wlm
 
Kenneth recom
Kenneth recomKenneth recom
Kenneth recom
 
Kenneth recom
Kenneth recomKenneth recom
Kenneth recom
 

CD

  • 1. AMSTERDAM / CHICAGO / FRANKFURT / HONG KONG / LONDON / MUMBAI / NEW YORK / SINGAPORE / SYDNEY The heart of a perfectionist. The soul of an innovator. The blueprint of a solutions provider. RTS Realtime Systems Continuous Delivery Pipeline PERFORMANCE  STABILITY  CONNECTIVITY  TIME TO MARKET
  • 2. Continuous Delivery How would you describe or explain continuous delivery
  • 3. Continuous Delivery What we should focus on while developing, testing and deploying our software and managing our production, test and development environment.
  • 4. Continuous Delivery Do we want to deliver constantly? • No, we do not want to deliver constantly, but we want to be able to do so if would like to • Continuous delivery allows you to keep the system production-ready at all times • The system can be released on demand at the push of a button • To release something is a business decision and will be performed manually 4
  • 5. Continuous Delivery Delivery pipeline • The pipeline consists of commit stage, acceptance test stage and manual stage • At the end of the pipeline, a binary (it might be an EXE file, RPM, JAR files, etc. but we will call it just “binary”) can be released at the push of a big red button Commit Acceptance Manual Release stage test stage stage button 5
  • 6. Continuous Delivery Commit stage • Push current version from SCM (source code management tool) • Build on local developing machine • Run commit tests such as unit tests locally first • If everything is “green”: check in to SCM • Continuous integration: checkout current version, build it and run unit tests • If the build output (we will call it binary from now on) has been assembled and tested successfully continue, otherwise inform (e.g. as email) that this step failed and stop everything and fix the build issue! • If everything is “green”: add binary, test reports and meta data to artifact repository • One check in per day minimum • Build should take under 5 minutes including unit tests 6
  • 8. Continuous Delivery Acceptance test stage – part one • Get binary from artifact repository => no new re-build! • Deploy and configure it on test environments (Puppet should be used to do this) • Run automated acceptance tests (No human touch on GUI test) • Acceptance tests (to ensure that acceptance criteria/functional requirements are met; will become a regression test in the next revision) • Regression tests (to uncover regressions in existing functionality) • Integration tests (combine modules and test their co-existence e.g. Eurex interface and RTD API) • Capacity tests (meet non functional requirements and do load tests, scalability tests and throughput tests) • Automated smoke tests (it might be a check that a server is reachable via ping) • Any other tests that fit to this stage and can be automated 8
  • 9. Continuous Delivery Acceptance test stage – part two • At this stage, also the Puppet installation has been tested! (Same scripts as in prod) • If everything is “green”: add test report and meta data to artifact repository • Otherwise stop the pipeline! • Ideally this stage should take 15 – 20 minutes • The goal is, that this stage is run after the commit stage has successfully been finished 9
  • 13. Continuous Delivery Manual stage • Get binary output from artifact repository => no new re-build! • Deploy and configure it on test/staging environments (puppet should be used to do this) for manual testing and reviewing (e.g. on stage server) • Perform manual testing: • Smoke tests (basic tests to ensure that the system is up and running) • Exploratory testing (e.g. to test areas that should not have been touched) • Usability testing (check that the functionality is human-friendly) • User acceptance testing (verifies the business requirements) • Showcases (e.g. Sprint Review or feedback sessions during a sprint) • Involved are: QAs, Product Owners, internal customers, external customer • If everything is “green”: add test report and meta data to artifact repository • Otherwise stop the pipeline! • At the end a release button gets provided and business people can decide whether it should be released into production 13
  • 15. Continuous Delivery Requirements • Commit to mainline at least once a day (or: every 30 minutes ) • Every (release) branch needs its own pipeline • Pipeline should be monitored (traffic light) • Test scripts for the monitoring process are needed…  • Metrics: “Senior management should be able to directly see the current status of projects/products.” But not all metrics are really helpful, therefore, check and decide what metrics should be available. • Have a proper release plan • DevOps and its consequences 15
  • 16. Continuous Delivery Release plan • Describe the deployment procedure • Identify what applications have to be smoke tested and identify dependent services/products/components • Remediation plan => might be a roll back plan for instance (how can we roll back?), or a plan to disable a feature (if this is the reason for “rolling back”) with the next release • Schedule and plan testing of roll back and deployment mechanism • Inform Marketing and Solutions at least one week before stuff gets released • Collaboration with test strategy and test plan 16
  • 17. Continuous Delivery DevOps • It’s not about roles but rather a culture • Within a team all roles should be shared (“This is not my problem, should the IT-Ops guy try to get it running in production” – this is not what we want to hear in such a case) • Include IT-Ops in planning, reviews (showcases) and project retrospectives • Puppet should also be used within “Development” (since IT-Ops will work closely with Development, we should use the same tools) • IT-Ops scripts should be tested as well (in acceptance test stage) • Installation and configuration done by puppet will automatically be tested when automated tests in acceptance test stage are performed (if the application has not been installed properly, the tests will fail) 17
  • 18. Continuous Delivery Organizational change • Iterative, incremental: continuous improvements • Plan what to do and set goals => plan, do, check, act • Collaboration among departments • Cross-functional teams • Developers are in charge of writing production code and automated tests • QA should pairing with developers to implement automated tests • “We” as team are responsible to fix a red light 18
  • 19. Continuous Delivery Actions • Introduction of release plans template to be used for all development projects • Engage collaboration between Development and IT-Operations and define the delivery pipeline to be implemented at RTS • Define the automated test responsibility for developers guided by QAs • As we are currently planning and implementing a new release tool, add pipeline functionality to it and provision artifact repository • To be completed by September 28th 19
  • 20. AMSTERDAM / CHICAGO / FRANKFURT / HONG KONG / LONDON / MUMBAI / NEW YORK / SINGAPORE / SYDNEY The heart of a perfectionist. The soul of an innovator. The blueprint of a solutions provider. Thank you! Contact us: www.rtsgroup.net p.eid@rtsgroup.net PERFORMANCE  STABILITY  CONNECTIVITY  TIME TO MARKET