69
Continously delivering continuous delivery Kim van Wilgen | Schuberg Philis nl.linkedin.com/kimvanwilgen [email protected] www.kimvanwilgen.com @kimvanwilgen

continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Continously delivering

continuous deliveryKim van Wilgen | Schuberg Philis

nl.linkedin.com/kimvanwilgen

[email protected]

www.kimvanwilgen.com

@kimvanwilgen

Page 2: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Customer director Schuberg Philis20

18

Head of software development ANVA

2017

Head of IT KlaverbladVerzekeringen

2014

Hello world1980

Page 3: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Schuberg Philis

3

Mission criticaldigital transformations

Financiallyindependent

Started in2001

300team members (Dec 2018)

EUR 60mrevenue

Market Quality leaderin Business Critical IT Outsourcing

Single KPI100% customer satisfaction

Page 4: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Our customers

4

Page 5: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

5

Page 6: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

The value of continuous delivery

AGILEDefine and develop incremental customer value

CDDeliver incremental customer value

Page 7: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Go faster!

Go faster

Page 8: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Small things are easier to handle

Large projects 10% success

52% challenged

Small projects74% success

22% challenged

Page 9: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Hypothesis driven development

Unused featuresLarge deliveries 64%Small deliveries 14%

Page 10: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Eliminate waste

Page 11: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Enhance value through early delivery

Page 12: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Constant change

Page 13: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Continuous Delivery (CD) is a set of practices and principles in software engineering aimed at building, testing and releasing software faster and more frequently. They help reduce the cost, time and risk of delivering changes, and ultimately value, to customers by allowing for more incremental changes to applications in production.Wikipedia, 2017

Page 14: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Continuous Delivery (CD) is a set of practices and principles in software engineering aimed at building, testing and releasing software faster and more frequently. They help reduce the cost, time and risk of delivering changes, and ultimately value, to customers by allowing for more incremental changes to applications in production.Wikipedia, 2017

Page 15: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Organize for incremental change

Automation of deployments

Automation of tests

Independent development and delivery

Pervasive visibility of usage and health

Manage the stakeholders

Reducing time, cost and risk

Page 16: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

1: Organize for incremental change

Page 17: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Continuous delivery means you’re building software. So treat is as a

software development process

Page 18: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Page 19: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Grow together consistently and allow time to adjust

Page 20: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Autonomy, self organization and T shaped people

Page 21: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Team autonomy asks leaders to change

Page 22: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

2: Automation of deployments

Page 23: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Level 1

Dev Test 1 Test n

Integration Acceptance Production

Dev Test 1 Test n

For each component

Full landscape

Integration automatic

Integration manual

Acceptance Production

Add tests and metrics

Add monitoring

Add reviews

Page 24: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Peer reviews

Page 25: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Review small increments

Page 26: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Monitoring

Page 27: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Static code analysis

Page 28: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Quality

Security

Performance

Mutation

Experimenting

A/B testing

Canary releasing

Blue / green deployments

Data driven decisions

Assistance

Walkthroughs

Chatbots

Distributed releasing

Health

Issue tracking

Build status

Monitoring

Immutable servers

Improve and maturize contextual

Page 29: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

3: Automation of tests

Page 30: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Testing requires architecture, design and prioritization

Page 31: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Testing pyramid

Unit tests are fast and are the test architecture fundament.

01

01

02

0304

High-value tests- Fast (API tests)

- Flaky code- Business critical processes

- Under development

Monitoring in production- Slow tests

- Expensive tests- Externally impacted

01

02

03Lower value tests

- Long-running tests- Stable code

04

Page 32: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Externally impacted functions

Page 33: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Maintainable tests

Page 34: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Infrastructure as code

Version controlTest automation

Configuration tests

Page 35: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Collaborate withthe business

They know their domain, you know test

design.

Grow assurance and enable speed by

shifting left

Page 36: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Mindset

Testers can learn about structure, architecture, maintainability and performance.

Developers can learn the “What would happen if I...” perspective.

Page 37: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Test if there are tests

Page 38: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Build status

Page 39: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Mutation testing

Page 40: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

4: Independent deployment and delivery

Page 41: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Branching is your new mother-in-law. Don’t go there unless you’re forced.

Page 42: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Martin Fowler, Thoughtworks

Page 43: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

Branching means you’re extending integrationFeature pipelines mean you’re extending integration

Page 44: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Isolation and integration

Page 45: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Deployment != releasing

“EVERYTHING FACEBOOK WILL BE RELEASING NEXT YEARIS ALREADY IN PRODUCTION”

- Jez Humble -

Page 46: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Integration pyramid

Business co-creation01

02

03

0405

Inaccessible functionality

Branching

01

02

03 Use toggles

04

Blue / Green05

Page 47: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Coordinate your deployments

At first. And break dependencies.

Page 48: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Acceptance Rehearsal CanaryFull

production

Release strategy

Product owner

Page 49: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Microservices are the first architectural style to fully embrace continuous delivery. It is an evolutionary architecture, which supports incremental non-breaking change as a first principle along multiple dimensions at the structural level of the applicationNeal Ford, Thoughtworks

Page 50: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

5: Pervasive visibility of usage and health

Page 51: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Design for data and integrate it in your development

Page 52: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Make logging, static analysis and scans and checks relevant

Adapt to your needs

Page 53: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Build pipelineInsight in process, status and workflow management

Page 54: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Issue tracking

Page 55: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Benefit tracking as part of your solutions

A) Business model definition (Responsibility Argenta)

Customer journey improvement Describe the benefit in the customer journey when the feature is delivered. State the key benefits for the user when the objective of the feature is delivered.

Benefit tracking How will the benefits be tracked to validate the business case?

Non functionals State aspects of security, compliance, audit, SLA and support in case they are different then standard. State regulatory deadline if applicable

Key users State the users of the idea

Key risks State the key risks and mitigating measures.

Pre-approvals [] Compliance [] Security [] Legal & Risk [] Monthly recurring cost

Revenue What is the expected revenue that follows from achieving the goal of the feature

Feature refinement by SBP & BD (YT) in cooperation with Argenta

Page 56: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

6: Manage the stakeholders

VS

Page 57: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Speed of delivery isn’t the answer to life, the universe and everything

Page 58: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Don’t get hurt speeding up

Integration of security in your pipeline

Don’t get hurt speeding up

Page 59: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

X“If you are doing DevOps without security, you are doing it wrong”

Thiago de Faria – Head of solutions engineering, LINKIT

Page 60: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Shift left on security

VS

Page 61: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Automate first

• SAST

• DAST

• Proxy tools

• Dependency checks

• Custom scripts

Integration in the pipelines

Page 62: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Canary releasing

Cocreating tests

Walkthroughs

Embedded user assistance and

chatbots

Release notes integrated in

deployment

Fallback plans

Manual Acceptance Testing

Education for users

User documentation

Communication about releases

Release process

Page 63: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Releasenotes from jira

Page 64: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Auditing and compliance

Only green to production4 eyes principle

Test and code qualityEverything in version control

Audit and compliance

Page 65: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Continuously delivering CD

Customers don’t want continuousdelivery

Page 66: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Legacy code and broken trust

Page 67: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comContinuously delivering continuous delivery

Explain yourgoal

Pull, not pushFirst improve,

then accelarate

Page 68: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

@kimvanwilgen | www.kimvanwilgen.comThe continuous culture

Organize for incremental change

Automation of deployments

Automation of tests

Independent development and

delivery

Pervasive visibility of usage and

health

Manage the stakeholders

Reducing time, cost and risk

Page 69: continuous delivery nl.linkedin.com/kimvanwilgen · Continuously delivering continuous delivery @kimvanwilgen | Microservices are the first architectural style to fully embrace continuous

• www.kimvanwilgen.com

• @kimvanwilgen

[email protected]

REFERENCES AND QUESTIONS