the software development process at amazon...summit © 2019, amazon web services, inc. or its...

44
© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. SUMMIT The Software Development Process at Amazon Jonathan Weiss Amazon Web Services

Upload: others

Post on 03-Apr-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

The Software Development Process at Amazon

Jonathan WeissAmazon Web Services

Page 2: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Amazon is hundreds of different businesses

Over 80 announcements at re:Invent 2018 alone

No signs of slowing down

Page 3: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

The Software Development Lifecycle

developers customers

releasetestbuild

plan monitor

delivery pipeline

feedback loop

Page 4: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 5: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 6: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

SUMM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 7: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T© 2018, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Page 8: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Monolith development lifecycle

developers

releasetestbuild

delivery pipelineapp

Page 9: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Service-Oriented Architecture (SOA)

Single-purpose Primitive

Connected w/ APIs

Highly decoupled

“Microservices”

Page 10: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 11: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Two-pizza teams

Decentralized

Agility

Autonomy

Accountability

Ownership

“DevOps”

Page 12: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Missing Tools

developers delivery pipelineservices

???

Page 13: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 14: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Two-pizza teams

Decentralized

Agility

Autonomy

Accountability

Ownership

“DevOps”

Self-service

Technology-agnostic

Encourage best practices

Single-purpose services

Page 15: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Deployment service

No downtime deployments

Health tracking

Versioned artifacts and rollbacks

Page 16: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 17: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Pipelines

Continuous delivery

Automated release process

Faster & more reliable releases

Adopted by virtually all teams

Page 18: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Microsservice development lifecycle

developers delivery pipelinesservices

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

releasetestbuild

Page 19: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Thousands of teamsx Microservice architecture

x Continuous deliveryx Multiple environments

= millions of deployments

Page 20: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 21: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Release Pipelines

ProductionStagingBuildSource

Run Build

and Unit

Tests

Deploy to

Staging

Environment

Deploy to

Production

Environment

Pull Source

Code

Page 22: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

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

Page 23: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 24: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

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

Page 25: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

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

Page 26: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

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

Page 27: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 28: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

The Edit-Compile-Test Loop

Page 29: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

The Edit-Compile-Test Loop

ECT Loop

Page 30: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

The Edit-Compile-Test Loop

ECT Loop

Code Review

Page 31: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

The Edit-Compile-Test Loop

ECT Loop

Code Review

Staging

Page 32: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

The Edit-Compile-Test Loop

ECT Loop

Code Review

Staging

Production

Page 33: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Catching Problems in the Development Lifecycle

ProductionStagingCode

ReviewECT

Ideal Place Great Place Good Place Last Resort

Page 34: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 35: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

The Software Development Lifecycle

developers customers

releasetestbuild

plan monitor

delivery pipeline

feedback loop

Page 36: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ops Culture

Ops Meetings

Ops Dashboards

• resource monitoring

• application monitoring

• canary monitoring

• client-side monitoring

• “order drop rate”

Page 37: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 38: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Data Culture

WBR Meetings

Metrics Decks

• feature adoption

• segment growth

• funnel analysis

• cost structure

Page 39: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 40: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T© 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 wantthey want

2. Get feedback on what you build

3. Course correct if need to

Page 41: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Feature vs. Need

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

Page 42: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

“Working Backwards” description

by Werner Vogels, Amazon CTO

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

l

Page 43: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Ten Lessons Learned

1. Microservices

2. DevOps Teams

3. Self-Service Tools

4. Continuous Delivery

5. PessimisticDeployments

6. Automated Testing

7. Optimize ECT Loop

8. Monitor Everything

9. Measure Everything

10. Listen to Customers

Page 44: The Software Development Process at Amazon...SUMMIT © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved. Release Pipelines Source Build beta gamma Production

© 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.SUMM I T

Thank you!

SUMM I T © 2019, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Jonathan Weiss@jweiss