Top Banner
Company Confidential Continuous Delivery Alexander Grosse Nokia Berlin
54

Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Jun 13, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Company Confidential

Continuous Delivery Alexander Grosse Nokia Berlin

Page 2: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

• 

About us

We are hiring!

Page 3: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Some Facts • 1.3 billion people are using Nokia devices worldwide • Devices sold in 220 countries/territories • Symbian available in 180 languages

• Since the start of this talk: 1K+ Nokia devices were made and sold (13/sec) 15M+ phone calls were made using Nokia phones 3M+ text messages were sent using Nokia phones

3 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 4: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Maps Infrastructure • Yahoo • Microsoft • Sina and Tencent

4 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 5: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Agenda • Introduction to Continuous Delivery • The problem of delivering software • Impact on development • Continuous Integration • Deployment Pipelines • How are we doing it • Summary

5 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 6: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

What is Continuous Delivery?

Page 7: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Why Continuous Delivery?

• Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software” • Consumer feedback • Small Releases reduce risk • Improves! Testing processes

Page 8: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Traditional Release Processes

Page 9: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Cost of defects

9 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 10: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Discussion about Continuous Delivery

• “I like that idea - Just point the Apache or IIS config at your dev directory and call it a day. Every Ctrl-S is a deploy.“

Page 11: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Nokia Build Pipeline

Page 12: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Evolution of Software Integration • Phase 1: Manual Integration done by software engineers (Cowboy coding) • Phase 2: semi manual integration done by integration teams (StarOffice) • Phase 3: Continuous Integration • Phase 4: Continuous Deployment • Phase 5: Continuous Delivery

12 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 13: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Continuous Integration – Reducing Risks •  Lack of deployable software • “It works on my machine” •  Late Discovery

13 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 14: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Continuous Integration • Don’t check in on broken build • Commit often – every commit triggers a build • Always run tests locally before checking in • Never go home on a broken build • Test in production clone (incl. DB) • Keep build fast/visible • Don’t comment out failing tests

Page 15: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Builds and Testing

• Automate Builds • Automate Tests – no broken builds! • Publish latest distributable (deploy mechanism)

Page 16: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Fail Fast Pattern

• The key concept is to fail early

• Within the software

• During Build and Testing

16 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 17: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Basic Continuous Integration

Page 18: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

CI extended

Page 19: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Build/Deployment Pipelines • Long Builds • Every Build contains lots of changes?

19 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 20: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Build/Deployment Pipelines • Also called “staged build”

• Build separated into different stages

20 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 21: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Impact on development • What needs to be changed to continuously deliver?

• ???

21 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 22: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

First step in a project • Deploy an application doing just “System.out.println(“Hello World”) to production

22 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 23: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Process • Which process is the right one?

23 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 24: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Scrum and Continuous Delivery

Page 25: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

The last mile

25 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 26: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

How to work?

• Branches <–> Feature Flags • Continuous Integration • Build • Deploy Mechanism • Environments

Page 27: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Feature Flags <% if test_tag?("sharethis") %> <script type="text/javascript” src="http://s7.addthis.com/js/250/ addthis_widget.js"> </script> <% end %>

Page 28: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Feature Flags – Control Panel

Page 29: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Everything in Continuous Delivery?

• Database changes? • Architectural changes? • New Features?

Page 30: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Database Changes ?

Page 31: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Architectural changes?

Page 32: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

New Features ?

Page 33: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Attitude change for developers • Throw it over the wall attitude or “the QA will find my mistakes anyway” is gone • Developers are responsible for the quality of their code • Every commit will be live very soon! • Strong cooperation between developers and ops

Page 34: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

How are we doing it?

Page 35: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Architecture

Page 36: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Nokia Build Pipeline

Page 37: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Dev Part

Page 38: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

QA Part

Page 39: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Staging/Production Part

Page 40: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Testing in Continuous Integration

• Important: Builds are working and don’t take too much time • Selenium Tests (Frontend Automation) – only core use cases

Page 41: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Testing on QA Environment

• Loadtests • Manual Tests • Complete Frontend Automation

Page 42: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

QA Roles

• Backend Teams have software engineers as test automation specialists • They also work on acceptance criteria and verify stories • Test Integration group (Loadtesting, resp. for environments) • FE teams have manual testers

Page 43: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Device and Localisation Testing

Page 44: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Deployment/Monitoring

• Code is deployed to small fraction of live servers • Live Monitoring • Rollback mechanism (databases and code)

Page 45: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Who is doing CD?

Page 46: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Who could use Continuous Delivery? • Consumer facing applications – constant innovation expected • Obviously Continuous Deployment should be possible (no device software) – rollback option

Page 47: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Who should be cautious about Continuous Delivery? • Revenue & security critical projects • In general: Software were a simple rollback does not solve all issued • Software in maintenance mode

Page 48: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Summary

• Use Continuous Delivery as a vision for your development processes

Page 49: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Company Confidential

Thanks! Q&A

Page 50: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Links • http://www.slideshare.net/ChristopherRead/continuous-integration-build-pipelines-and-continuous-deployment • http://www.developsense.com/blog/2009/03/50-deployments-day-and-perpetual-beta/ • http://blog.lastinfirstout.net/2009/03/continuous-deployment-debate.html • http://www.startuplessonslearned.com/2009/06/why-continuous-deployment.html

Page 51: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

ITIL and Continuous Delivery

Page 52: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Testing at IMVU

• Two well known testers got suspicious about the testing at IMVU and made a quick test • They found a lot of bugs • Response: • “prioritize determining what the customer actually wants at almost any cost” • 20% of dev resources -> CD process

Page 53: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

Role of an agile tester • Test automation engineer • More responsibility for QA for devs • Devops

53 © 2008 Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

Page 54: Continuous Delivery - bedcon€¦ · Why Continuous Delivery? • Twelve Principles behind the Agile Manifesto: “Our highest priority is to satisfy the customer through early and

The road to Continuous Delivery