the software development process at...
TRANSCRIPT
© 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: