continues delivery - introduction

37
Continuous Delivery Erez Attar - Jan 2016

Upload: erez-attar

Post on 14-Apr-2017

150 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Continues delivery - Introduction

Continuous DeliveryErez Attar - Jan 2016

Page 2: Continues delivery - Introduction

Continuous Delivery

what is it ?

why we need it?

who is it for ?

how we do it?

Page 3: Continues delivery - Introduction

What is it ?

Page 4: Continues delivery - Introduction

SDLC (Software Delivery Life Cycle) Evolution● Waterfall start making software ready for release

when all of the functionality for the release has been

developed.

● Agile software ready for release throughout

development at periodic intervals.

Page 5: Continues delivery - Introduction

SDLC (Software Delivery Life Cycle) Evolution● Continuous Delivery subset* of agile in which software ready for release at all

times during development.

Page 6: Continues delivery - Introduction

Continuous Delivery - Wikipedia

Continuous Delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time.[1]

Page 7: Continues delivery - Introduction
Page 8: Continues delivery - Introduction

Continuous D/D/I dependencies

● Continuous Deployment means that every change is automatically deployed

to production

● Continuous Delivery Enables the software to be released to production at any

time.

● Continuous Integration refers to integrating, building, and testing code within

the development environment.

Page 9: Continues delivery - Introduction

Continuous integration

merging all developer working copies to a shared mainline several times a day

● Automate the build● Build Self Testing● Everyone commits to baseline every day● Every commit should be built● Test in a clone of production● Everyone can see results of latest build

Page 10: Continues delivery - Introduction

History

● Grady Booch 1991● XP (Kent Beck 1999)● Agile Manifesto (Fowler 2001)● ThoughtWorks Studios

(Cruise CI 2008 & Go CD 2010)

● �Continuous Delivery (Jez Humble & David Farley 2010)

Page 11: Continues delivery - Introduction

CD is not ….Continuous Delivery is not about shorter cycles for making the software ready for release. CD is about moving away from making the software ready as a separate activity, and instead developing in a way that means the software is always ready for release.

Ready for release does not mean actually releasing into production very frequently. Continuous Delivery doesn’t require frequent releases, it only requires ensuring software could be released with very little effort at any point during development

Page 12: Continues delivery - Introduction

Thinking Point

How long it will take to your organization to deliver a change that include one line of code change ?

Page 13: Continues delivery - Introduction

Who is it for ?

Page 14: Continues delivery - Introduction

Who is it For ?

every development team should be practicing continuous delivery

To separate from continuous Deployment, It’s the human-decision factor that distinguishes continuous delivery from continuous deployment,

Page 15: Continues delivery - Introduction

Why do we need it ?

Page 16: Continues delivery - Introduction

Benefits

● Accelerated Time to Market: CD lets an organization deliver the business value

inherent in new software releases to customers more quickly. This capability

helps the company stay a step ahead of the competition

● Software is deployable throughout its life-cycle

● 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 to any environment on

demand

Page 17: Continues delivery - Introduction

more Benefits

Improved Productivity and Efficiency: Significant time savings for developers, testers,

operations engineers, etc. through automation.

Building the Right Product: Frequent releases let the application development teams

obtain user feedback more quickly.

Page 18: Continues delivery - Introduction

and few more Benefits

Improved Product Quality: The number of open bugs and production incidents

decreased significantly.

CD is closely tied to quality delivery and requires companies to adopt a new mindset of delivering regular quality application updates.Building an application quickly usually means skimping on testing or reducing the number of planned features to meet a target delivery date

Improved Customer Satisfaction: A higher level of customer satisfaction is achieved.

Page 19: Continues delivery - Introduction

Benefits - Some numbers

● Reduce production errors by up to 98% ● Improve deployment time by as much as 20x ● ROI of 389%● Payback in 2.8 months over a 3 year period

Page 20: Continues delivery - Introduction

How do we do it

Page 21: Continues delivery - Introduction

DZone’s 2015 Continuous Delivery Survey

Page 22: Continues delivery - Introduction

Are you implementing Continuous Delivery ?

● is your software confirmed to be in a shippable state every time a new feature or patch is added?

● Does your team perform push-button deployments of any desired version of your software to any environment on-demand?

● Do all of the stakeholders have immediate visibility into the production readiness of your systems?

Page 23: Continues delivery - Introduction

Continuous Delivery “on the cheap” ??? NO

“on the cheap” recipe for spending time and money on failure.

● CD requires change from teams across the organization.

● CD requires focused investment in tooling, hardware, and people.

Page 24: Continues delivery - Introduction

Importand Mindset change

You can easily envision that the CD practices also provides a different set of data to

the teams.

1. Does the new feature work correctly on a production like server environment?

2. Do the packages install correctly?

3. Does the automated process that will be used throughout the delivery pipeline

work? (one package, same delivery, many times, to all environments)

Page 25: Continues delivery - Introduction

CD (Continous Delivery) Ingredients

● CI (Continuous Integration)

● Automation● CM (Configuration Management)

Page 26: Continues delivery - Introduction

The Process

Page 27: Continues delivery - Introduction

Testing road blockDevelopement driven by CRsManual testing cannot keep up with the pace

test process is unsystematic

Manual testing is limited in scope

Manual testing frameworks don’t react well to code changes

Testers are forced to not fully testing the software, which leads to defectscreating the data from scratch—a time-consuming and error-prone process

Bottom line: legacy test methods can’t keep pace with a continuous application delivery model

Page 28: Continues delivery - Introduction

CD requires new Test ModelReq Model

simulate unavailable/dependent systemsModel Based testing

To eliminate manual testing

and bottlenecks

eliminate defects much earlier in the SDLC14x more expensive to fix bugs in production than in development

+

Page 29: Continues delivery - Introduction

Tests Types

Page 30: Continues delivery - Introduction

Test Environment

Continuous delivery is only possible when

● test environments are staged and used in hours, not weeks.

● when test environments can be reconfigured with flexibility.

Page 31: Continues delivery - Introduction

Gather right Test Data and Fast

● Test data on demand that any team can use whenever it is needed.● Quickly provision high-quality, secure data for better software testing.

Test Data Management Solution

Page 32: Continues delivery - Introduction

Automatic Change and Test MaintenanaceRequirements change

Test cases automatically update

Page 33: Continues delivery - Introduction

END

Page 34: Continues delivery - Introduction

Tools to practice Continuous Delivery

Page 35: Continues delivery - Introduction

CA Test Solutions

● Align business planning to test cases utilizing CA Test Case Optimizer● Create accurate and virtual test data using CA Test Data Manager ● Simulate backend services through CA Service Virtualization ● Create automatic virtual services through deep transactional analysis with CA

Continuous Application Insight ● Build and reuse test cases quickly and easily with CA Application Test● Automate the test process end-to-end with CA Release Automation

Page 36: Continues delivery - Introduction

Tools to practice Continuous Integration

commonly used CI tools (Automation of building, testing, deploying):

● Jenkins

● Hudson

● Travis

● Bamboo.

Page 37: Continues delivery - Introduction

Examples/Demo