By –
Bharath S
Flow of Presentation
 What is Continuous Integration?
 Reduce Risks using CI
 Build Software at every change
 Continuous Testing
 Continuous Inspection
 Continuous Feedback
 What is Continuous Delivery?
 Why does CD matter?
What is Continuous Integration?
Martin Fowler describes in his
famous article on CI as :
… a software development process
where members of a team integrate
their work frequently, usually each
person integrates atleast daily –
leading to multiple integrations per
day. Each integration is verified by
an automated build (including tests)
to detect integration errors as
quickly as possible.
Features of a CI
 A connection to a version control repository
 A build script
 Some sort of feedback mechanism (such as e-mail)
 A process for integrating the source code changes
(manual or CI server)
CI Practices
 Commit code frequently
 Don’t commit broken code
 Fix broken builds immediately
 Write automated developer tests
 All tests and inspections must pass
 Run private builds
 Avoid getting broken code
Reduce risks using CI
Risks encountered are,
 Lack of deployable software
 Late discovery of defects
 Lack of project visibility
 Low-quality software
Build Software at every change
 Automate builds
 Perform single command builds
 Fail builds fast
 Build for any environment
 Run fast builds
 Stage builds
Continuous Testing
 Automate Unit tests, Component tests, System tests
and Functional tests.
 Categorize developer tests
 Run faster tests first
 Write tests for defects
 Make component tests repeatable
 Limit test cases to one assert
Continuous Inspection
 Reduce code complexity
 Perform design reviews continuously
 Maintain organizational standards with code audits
 Reduce duplicate code
 Assess code coverage
Continuous Feedback
 E-mail
 SMS
 Sound
 RSS
What is Continuous Deployment?
According to Martin Fowler, CD is when
 The software is deployable throughout its lifecycle
 Software deployment is prioritized over working on
new features
 Anyone can get fast automated feedback on the
production readiness of their systems any time
somebody makes a change to them
 Push-button deployments of any version of the
software on any environment on demand
How does CD matter?
To Developers :
 They can check-in code and see it deployed
immediately so that they can improvise or change on
certain aspects as and when they want.
 Feedback is very important in keeping code neat and
less complex.
 Ability to provision themselves with production-like
stacks and push-button
deployment so they can
run automated tests.
To System Admins :
 Keep things running smoothly while giving software
developers the ability to test code in an environment
that closely resembles production conditions.
 Automated configuration — an important part of
continuous delivery — makes it possible for sysadmins
to provide developers with the ability to turn on their
own testing environments.
To the Business :
 Face lower risk from deployments
 Ability to respond to the market
more quickly
 Happier and more productive people
CI vs CD vs DevOps
Questions
continous integration and delivery

continous integration and delivery

  • 1.
  • 2.
    Flow of Presentation What is Continuous Integration?  Reduce Risks using CI  Build Software at every change  Continuous Testing  Continuous Inspection  Continuous Feedback  What is Continuous Delivery?  Why does CD matter?
  • 3.
    What is ContinuousIntegration? Martin Fowler describes in his famous article on CI as : … a software development process where members of a team integrate their work frequently, usually each person integrates atleast daily – leading to multiple integrations per day. Each integration is verified by an automated build (including tests) to detect integration errors as quickly as possible.
  • 4.
    Features of aCI  A connection to a version control repository  A build script  Some sort of feedback mechanism (such as e-mail)  A process for integrating the source code changes (manual or CI server)
  • 5.
    CI Practices  Commitcode frequently  Don’t commit broken code  Fix broken builds immediately  Write automated developer tests  All tests and inspections must pass  Run private builds  Avoid getting broken code
  • 6.
    Reduce risks usingCI Risks encountered are,  Lack of deployable software  Late discovery of defects  Lack of project visibility  Low-quality software
  • 7.
    Build Software atevery change  Automate builds  Perform single command builds  Fail builds fast  Build for any environment  Run fast builds  Stage builds
  • 8.
    Continuous Testing  AutomateUnit tests, Component tests, System tests and Functional tests.  Categorize developer tests  Run faster tests first  Write tests for defects  Make component tests repeatable  Limit test cases to one assert
  • 9.
    Continuous Inspection  Reducecode complexity  Perform design reviews continuously  Maintain organizational standards with code audits  Reduce duplicate code  Assess code coverage
  • 10.
  • 11.
    What is ContinuousDeployment? According to Martin Fowler, CD is when  The software is deployable throughout its lifecycle  Software deployment is prioritized over working on new features  Anyone can get fast automated feedback on the production readiness of their systems any time somebody makes a change to them  Push-button deployments of any version of the software on any environment on demand
  • 12.
    How does CDmatter? To Developers :  They can check-in code and see it deployed immediately so that they can improvise or change on certain aspects as and when they want.  Feedback is very important in keeping code neat and less complex.  Ability to provision themselves with production-like stacks and push-button deployment so they can run automated tests.
  • 13.
    To System Admins:  Keep things running smoothly while giving software developers the ability to test code in an environment that closely resembles production conditions.  Automated configuration — an important part of continuous delivery — makes it possible for sysadmins to provide developers with the ability to turn on their own testing environments.
  • 14.
    To the Business:  Face lower risk from deployments  Ability to respond to the market more quickly  Happier and more productive people
  • 15.
    CI vs CDvs DevOps
  • 16.

Editor's Notes

  • #7 Lack of deployable software : Use a CI system to build deployable software at any time. Create a repeatable build process that uses all software assets from the version control repository. Late discovery of defects : Run builds that include developer tests in every build so that defects can be detected earlier in the software lifecycle. Lack of project visibility : Know the health of your software all the time by running builds regularly. When effectively applying the process of CI, the project status is no longer in question. Low-quality software : Run tests and inspections at every change so that the potential defects that enter in to the system may be detected by learning the factors like code complexity, design, duplication, code coverage etc..