continuous delivery & one touch deployment

21
Event Sponsors: CONTINUOUS DELIVERY & ONE TOUCH DEPLOYMENT SPIN PRESENTATION By Rustin Daniels of Story Wall Technology Consulting Wednesday 20 th June 2012, 6pm, Bandwidth Barn, Cape Town

Upload: others

Post on 03-Feb-2022

5 views

Category:

Documents


0 download

TRANSCRIPT

Event Sponsors:

CONTINUOUS DELIVERY & ONE TOUCH DEPLOYMENT

SPIN PRESENTATION

By Rustin Daniels of Story Wall Technology Consulting

Wednesday 20th June 2012, 6pm, Bandwidth Barn, Cape Town

  Manual Error Prone Process

  Deployment need not be Bureaucratic

  Incorrect TDD Practices   Distinction between white box / black box testing.   Having unit tests that hit the file system or database.

  Monolithic Codebase   Not implementing RESTful or Soap services.   Not implementing component based architectures.   One application solution for entire application instead of multiple solutions.

  Feature Branching   Not working on mainline.   Not integrating work into mainline everyday.

Current Practices

  Shorten the Feedback Loop   Develop on mainline.   Integrate early.   The earlier it fails, the earlier we fix it, the less it will cost.

  Holistic Approach to Software Development & Delivery   C/D optimizes the entire process of development.

  Design & Develop Testable Software & Infrastructure

  Software Best Practices   By automating we implement software best practices in development, test and

deployment.   We start focusing on non functional practices: security, performance, load, latency etc.

  Reduce Risk  

Goal Of Continuous Delivery

  Design for Testability   Developers should design API’s that are testable.   Use mocking framework / better software design.   Adopt an acceptance test framework for testing specifications and business rules.

-  FitNesse. -  Cucumber. -  Jbehave. -  Spock.

  Develop on Mainline

  Component Based Architecture   Develop loosely coupled systems architecture using Soap or RESTful interfaces.

  Use Advanced CI Servers with a built-in Artifact Repository   Good examples of these are ThoughtWorks GO and UrbanCode AnthillPro.

  Version Control Everything   Ensure your code, database and everything else needed to test & run your application is

version controlled.   Good examples of database versioning are dbDeploy & Liquibase.

Where To Start With Continuous Delivery

  Its simple and completely Automated

  Creates a Test Bed   Easily and quickly expand your environment infrastructure.

  Self Serviced Environments   Give testers the ability to do self service deployments into the environments they

manage.

How the Cloud Helps

  How long will it take to develop a Continuous Delivery system?   It should take approximately 8 weeks. However, before attempting to develop a C/D

platform you should make sure that your systems are designed to be testable.

  I agree with Automation but I still feel we need manual testing!   Yes I agree. We have exploratory test environments to manually test in addition to

automated testing.

  How does Continuous Delivery compare to Continuous Deployment?   With Continuous Deployment every check-in goes through a number of automated tests.

If it passes those tests it automatically gets deployed to production. In this environment you need comprehensive regression test suites and extremely high code coverage.

With Continuous Delivery a release candidate goes through a number of environments and is quality vetted by automated and manual testing before sign off to production.

Questions & Answers

Thank you for listening.

The End

Rustin Daniels Managing Director Story Wall Technology Consulting (Pty) Ltd

Rapid, Reliable, Releases. www.storywall.co.za