The Software Development Process at...

Preview:

Citation preview

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Jonathan Weiss

Managing Director Amazon Web Services Germany GmbH

AWS OpsWorks, AWS Resource Groups, AWS Systems Manager

The Software Development Process

at Amazon

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Amazon is hundreds

of different

businesses

AWS did over 1,430

major feature

releases in 2017

No signs of

slowing down

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

The Software Development Lifecycle

developer

s

customer

s

releasetestbuild

plan monitor

delivery pipeline

feedback loop

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Let’s go back 15 years ago…

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Monolith development lifecycle

developer

s

releasetestbuild

delivery pipelineapp

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Service-Oriented

Architecture (SOA)

Single-purpose

Primitive

Connected w/ APIs

Highly decoupled

“Microservices”

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Two-pizza teams

Decentralized

Agility

Autonomy

Accountability

Ownership

“DevOps”

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Missing Tools

developer

s

delivery pipelineservices

???

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Two-pizza teams

Decentralized

Agility

Autonomy

Accountability

Ownership

“DevOps”

Self-service

Technology-agnostic

Encourage best practices

Single-purpose services

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Deployment service

No downtime

deployments

Health tracking

Versioned artifacts

and rollbacks

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Continuous delivery

Automated release process

Faster & more reliable releases

Adopted by virtually all teams

Pipelines

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Microsservice development lifecycle

developer

s

delivery pipelinesservices

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Thousands of teams

x Microservice architecture

x Continuous delivery

x Multiple environments

= millions of deployments

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Release Pipelines

ProductionStagingBuildSource

Run Build

and Unit

Tests

Deploy to

Staging

Environment

Deploy to

Production

Environment

Pull Source

Code

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Release Pipelines

ProductionStagingBuildSource

Run Build

and Unit

Tests

Deploy to

Staging

Environment

Deploy

to One

Box

Pull Source

Code

Deploy

to 1st AZ

Deploy

to 1st AZ

Deploy

to One

Box

Deploy

to 2nd

AZ

Deploy

to 2nd

AZ

Deploy

to 3rd

AZ

Deploy

to 3rd

AZ

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Release Pipelines

ProductionStagingBuildSource

Run Build

and Unit

Tests

Deploy to

Staging

Environment

Deploy

to One

Box

Pull Source

Code

Deploy

to 3rd

AZ

Deploy

to 1st AZ

Deploy

to 2nd

AZ

Deploy

to One

Box

Deploy

to 3rd

AZ

Deploy

to 1st AZ

Deploy

to 2nd

AZ

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Release Pipelines

ProductionStagingBuildSource

Run Build

and Unit

Tests

Deploy to

Staging

Environment

Deploy

to One

Box

Pull Source

Code

Deploy

to 3rd

AZ

Deploy

to 1st AZ

Deploy

to 2nd

AZ

Deploy

to One

Box

Deploy

to 3rd

AZ

Deploy

to 1st AZ

Deploy

to 2nd

AZ

Functional

Tests

Load / Perf

Tests

Other

Tests

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Release Pipelines

ProductiongammabetaBuildSource

Run Build

and Unit

Tests

Deploy to

Staging

Environment

Deploy

to One

Box

Pull Source

Code

Deploy

to 3rd

AZ

Deploy

to 1st AZ

Deploy

to 2nd

AZ

Deploy

to One

Box

Deploy

to 3rd

AZ

Deploy

to 1st AZ

Deploy

to 2nd

AZ

Integration

Tests

Load / Perf

Tests

Other

Tests

Deploy to

Staging

Environment

Functional

Tests

Other

Tests

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

The Edit-Compile-Test Loop

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

The Edit-Compile-Test Loop

ECT Loop

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

The Edit-Compile-Test Loop

ECT Loop

Code Review

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

The Edit-Compile-Test Loop

ECT Loop

Code Review

Staging

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

The Edit-Compile-Test Loop

ECT Loop

Code Review

Staging

Production

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Catching Problems in the Development

Lifecycle

ProductionStagingCode

ReviewECT

Ideal Place Great Place Good Place Last Resort

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

The Software Development Lifecycle

developer

s

customer

s

releasetestbuild

plan monitor

delivery pipeline

feedback loop

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ops Culture

Ops Meetings

Ops Dashboards

• resource monitoring

• application

monitoring

• canary monitoring

• client-side monitoring

• “order drop rate”

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Data Culture

WBR Meetings

Metrics Decks

• feature adoption

• segment growth

• funnel analysis

• cost structure

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Listen

It's easy to be right if

you just listen to

customers.

1. Ask them want

they want

2. Get feedback on

what you build

3. Course correct

if need to

Feature vs. Need

Wenger 16999 Swiss Army Knife Gianthttps://www.amazon.com/Wenger-16999-Swiss-Knife-Giant/dp/B001DZTJRQ

Ten Lessons Learned

“Working Backwards” description

by Werner Vogels, Amazon CTO

www.allthingsdistributed.com/2006/11/working_backwards.html

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. Pessimistic

Deployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Thank you

© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Please complete the session

survey in the summit mobile app.

AWS DevDay with Chef in Berlin

on

June 12th - https://bit.ly/2sp8kxo

Two reminders:

Recommended