STRIVING FOR CONTINUOUS
INTEGRATION AND DEPLOYMENT
1
Derk-Jan de Grood
[SC]2 – 4 October 2017
2
STRIVING FOR CONTINUOUS INTEGRATION AND
DEPLOYMENT
Continuous integration and deployment (CI/CD)
empowers organizations to bring their solution in
production fast and frequent. This interactive session
will share the benefits of this concept and introduce
eight conditions that need to be met in order to make
CI/CD a success. After this brief introduction, we will
make small groups and explore these conditions,
exchange experiences and you will get an
understanding what needs to be improved in your
organization. Talk to your peers and learn where they
stand. Of course each of the groups will share their
learnings, so we all go home with an understanding of
how you can benefit from CI/CD and what needs to be
done to make it work.
Aim of this session
3
Continues Integration & Deployment
A brief introduction
4
Levels
5
Code &
commit
Integrate
& build
Test Deliver
Definitions
Continuous integration (CI) is the practice of merging all
developer working copies to a shared mainline several
times a day.
With continuous delivery (CD) teams produce software in
short cycles, ensuring that the software can be reliably
released at any time. It aims at building, testing, and
releasing software faster and more frequently.
Continuous deployment (CD) is the next step of
continuous delivery: Every change that passes the
automated tests is deployed to production automatically.
[Sources: Wikipedia and puppet.com]
6
Continuous Delivery Example
7
Local
• Code
• Unit Test
• Commit
Development
• Save Repo
• Get config
• Deploy
• Test
Test
• Save Repo
• Get config
• Deploy
• Test
Acceptance
• Save Repe
• Get config
• Deploy
• Test
1
Daily
• Nightly regression
test
• Monitoring
Daily
• Nightly
performance test
• Monitoring
Daily
• E2E test
• Monitoring
Advantages
• Efficiency
• Reduces amount of rework
• Predictability
• Reduced time to market
• Fast feedback
• Reducing risk
• Better quality solutions
8
Will it work ?
Requisites for CI/CD
9
CI/CD requires that (in random order)
1
Teams collaborate
with each other
Integration is
continuous
Deployment is a
hands-off process
Feedback loop to
improve quality
Features are
launched frequently
Acceptance criteria
are clear
Teams have all
required skills and
knowledge
Tests are
automated
Valori-version1.2-2017
CI/CD requires that (in random order)
1
Teams collaborate
with each other
Deployment is a
hands-off process
Feedback loop to
improve quality
Features are
launched frequently
Acceptance criteria
are clear
Teams have all
required skills and
knowledge
Tests are
automated
Valori-version1.2-2017
Architecture supports
partial development
and release
What do the requisites mean to you?
12
Exchange Experiences
13
Wrap-up
14

STRIVING FOR CONTINUOUS INTEGRATION AND DEPLOYMENT

  • 1.
    STRIVING FOR CONTINUOUS INTEGRATIONAND DEPLOYMENT 1 Derk-Jan de Grood [SC]2 – 4 October 2017
  • 2.
    2 STRIVING FOR CONTINUOUSINTEGRATION AND DEPLOYMENT Continuous integration and deployment (CI/CD) empowers organizations to bring their solution in production fast and frequent. This interactive session will share the benefits of this concept and introduce eight conditions that need to be met in order to make CI/CD a success. After this brief introduction, we will make small groups and explore these conditions, exchange experiences and you will get an understanding what needs to be improved in your organization. Talk to your peers and learn where they stand. Of course each of the groups will share their learnings, so we all go home with an understanding of how you can benefit from CI/CD and what needs to be done to make it work.
  • 3.
    Aim of thissession 3
  • 4.
    Continues Integration &Deployment A brief introduction 4
  • 5.
  • 6.
    Definitions Continuous integration (CI)is the practice of merging all developer working copies to a shared mainline several times a day. With continuous delivery (CD) teams produce software in short cycles, ensuring that the software can be reliably released at any time. It aims at building, testing, and releasing software faster and more frequently. Continuous deployment (CD) is the next step of continuous delivery: Every change that passes the automated tests is deployed to production automatically. [Sources: Wikipedia and puppet.com] 6
  • 7.
    Continuous Delivery Example 7 Local •Code • Unit Test • Commit Development • Save Repo • Get config • Deploy • Test Test • Save Repo • Get config • Deploy • Test Acceptance • Save Repe • Get config • Deploy • Test 1 Daily • Nightly regression test • Monitoring Daily • Nightly performance test • Monitoring Daily • E2E test • Monitoring
  • 8.
    Advantages • Efficiency • Reducesamount of rework • Predictability • Reduced time to market • Fast feedback • Reducing risk • Better quality solutions 8
  • 9.
    Will it work? Requisites for CI/CD 9
  • 10.
    CI/CD requires that(in random order) 1 Teams collaborate with each other Integration is continuous Deployment is a hands-off process Feedback loop to improve quality Features are launched frequently Acceptance criteria are clear Teams have all required skills and knowledge Tests are automated Valori-version1.2-2017
  • 11.
    CI/CD requires that(in random order) 1 Teams collaborate with each other Deployment is a hands-off process Feedback loop to improve quality Features are launched frequently Acceptance criteria are clear Teams have all required skills and knowledge Tests are automated Valori-version1.2-2017 Architecture supports partial development and release
  • 12.
    What do therequisites mean to you? 12
  • 13.
  • 14.

Editor's Notes

  • #7 https://puppet.com/blog/continuous-delivery-vs-continuous-deployment-what-s-diff
  • #11 Teams collaborate to deliver each sprint a working product Integration is continue Tests are automated Tests are run from the build server Deployment is hands-off process TDD ensures no backlog in TA Acceptance criteria are clear Feedback loop to create better tests in place Product goes live regularly
  • #12 Teams collaborate to deliver each sprint a working product Integration is continue Tests are automated Tests are run from the build server Deployment is hands-off process TDD ensures no backlog in TA Acceptance criteria are clear Feedback loop to create better tests in place Product goes live regularly