SlideShare a Scribd company logo
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
DevOps Lessons from Coursera:
Site Performance, Reliability, and
Developer Productivity
Lewis Chung + Bryan Kane
F r o n t e n d I n f r a s t r u c t u r e @ C o u r s e r a
November 28, 2017
DEV328
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeBuild
Optimizing
application builds
We envision a world where
anyone, anywhere
can transform their life
by accessing the world’s
best learning experience.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeBuild
Optimizing
application builds
30+ million
learners
150+
partners
2,200+
courses
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeBuild
Optimizing
application builds
70+
engineers
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeBuild
Optimizing
application builds
Keep Coursera as fast and
reliable as possible.
Empower Coursera's engineers to
be as productive as possible.
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS CodeBuild
A d d i n g b u i l d f l e x i b i l i t y a n d r e d u c i n g c o s t s w i t h
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Productivity increases as time
between commit and deploy decreases
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
backend
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
backend
frontend
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
• commit to deploy in less than 5 minutes
Coursera in 2013
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
• commit to deploy in less than 5 minutes
• commit and deploy happen together
Coursera in 2013
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
• commit to deploy in less than 5 minutes
• commit and deploy happen together
• regression debugging is easy w/ granular deploys
Coursera in 2013
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
build time: 5 minutes
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
build time: 15 minutes
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
build time: 30 minutes
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
• builds take over 30 minutes
Coursera in 2013
Coursera in 2016
• commit to deploy in less than 5 minutes
• commit and deploy happen together
• regression debugging easy w/ granular deploys
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
• builds take over 30 minutes
• developers forget to deploy
Coursera in 2013
Coursera in 2016
• commit to deploy in less than 5 minutes
• commit and deploy happen together
• regression debugging easy w/ granular deploys
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
• builds take over 30 minutes
• developers forget to deploy
• debugging regressions becomes more difficult
Coursera in 2013
Coursera in 2016
• commit to deploy in less than 5 minutes
• commit and deploy happen together
• regression debugging easy w/ granular deploys
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Lecture
Videos
Peer
Review
Learning
Plans
Home
Page
Catalog
Browse
Enterprise
Programs
Course
Dashboard
Catalog
Search
Course
Authoring
My
Purchases
Payment
Checkout
Support
Tools
Course
Forums
Code
Blocks
Account
Settings
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Lecture
Videos
Peer
Review
Learning
Plans
Home
Page
Catalog
Browse
Enterprise
Programs
Course
Dashboard
Catalog
Search
Course
Authoring
My
Purchases
Payment
Checkout
Support
Tools
Course
Forums
Code
Blocks
Account
Settings
• determine what applications were affected by a code change
• build individual applications in the codebase, not the whole
Breaking up the monolith
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Lecture
Videos
Peer
Review
Home
Page
Catalog
Browse
Enterprise
Programs
Course
Dashboard
Catalog
Search
Course
Authoring
My
Purchases
Payment
Checkout
Course
Forums
Code
Blocks
Account
Settings
Learning
Plans
Support
Tools
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Lecture
Videos
Peer
Review
Home
Page
Catalog
Browse
Enterprise
Programs
Course
Dashboard
Catalog
Search
Course
Authoring
My
Purchases
Payment
Checkout
Course
Forums
Code
Blocks
Account
Settings
Learning
Plans
Support
Tools
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Lecture
Videos
Peer
Review
Catalog
Browse
Enterprise
Programs
Course
Dashboard
Catalog
Search
My
Purchases
Payment
Checkout
Course
Forums
Code
Blocks
Account
Settings
Home
Page
Course
Authoring
Support
Tools
Learning
Plans
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Lecture
Videos
Peer
Review
Learning
Plans
Home
Page
Catalog
Browse
Enterprise
Programs
Course
Dashboard
Catalog
Search
Course
Authoring
My
Purchases
Payment
Checkout
Support
Tools
Course
Forums
Code
Blocks
Account
Settings
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
8 workers
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
5 min
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
5 min 5 min
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
5 min 5 min 5 min 5 min 5 min 5 min 5 min
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Optimal full build:
35 minutes
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
5 min
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
N workers
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Automatically scaling Jenkins?
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Automatically scaling Jenkins?
Too slow for
bursty build jobs.
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Overprovision Jenkins?
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Overprovision Jenkins?
Not cost effective
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Multiple commits
might land minutes from
each other...
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
commit 13a0bd
Author: Alice
Date: Mon Oct 16 2:45:00 2017 -0700
Update page header with new styles...
commit 13a0bd
Author: Bob
Date: Mon Oct 16 2:47:00 2017 -0700
Add links to footer...
commit 13a0bd
Author: Carol
Date: Mon Oct 16 2:49:00 2017 -0700
Update button component to support the new
transition required for feature...
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
commit 13a0bd
Author: Alice
Date: Mon Oct 16 2:45:00 2017 -0700
Update page header with new styles...
commit 13a0bd
Author: Bob
Date: Mon Oct 16 2:47:00 2017 -0700
Add links to footer...
commit 13a0bd
Author: Carol
Date: Mon Oct 16 2:49:00 2017 -0700
Update button component to support the new
transition required for feature...
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
commit 13a0bd
Author: Alice
Date: Mon Oct 16 2:45:00 2017 -0700
Update page header with new styles...
commit 13a0bd
Author: Bob
Date: Mon Oct 16 2:47:00 2017 -0700
Add links to footer...
commit 13a0bd
Author: Carol
Date: Mon Oct 16 2:49:00 2017 -0700
Update button component to support the new
transition required for feature...
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
commit 13a0bd
Author: Alice
Date: Mon Oct 16 2:45:00 2017 -0700
Update page header with new styles...
commit 13a0bd
Author: Bob
Date: Mon Oct 16 2:47:00 2017 -0700
Add links to footer...
commit 13a0bd
Author: Carol
Date: Mon Oct 16 2:49:00 2017 -0700
Update button component to support the new
transition required for feature...
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Can we do better?
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
AWS CodeBuild
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
• on-demand build environment
• run your builds inside docker containers
• near-infinite elastic capacity -- scale up and down as you need
What is CodeBuild?
AWS CodeBuild
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Compute instance
type
Memory (GB) vCPU
Price per build
minute ($)
small 3 2 0.005
medium 7 4 0.010
large 15 8 0.020
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
5 min
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
commit 13a0bd
Author: Alice
Date: Mon Oct 16 2:45:00 2017 -0700
Update page header with new styles...
commit 13a0bd
Author: Bob
Date: Mon Oct 16 2:45:30 2017 -0700
Add links to footer...
commit 13a0bd
Author: Carol
Date: Mon Oct 16 2:46:00 2017 -0700
Update button component to support the new
transition required for feature...
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
~5 min
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Migrating from Jenkins
to CodeBuild was easy
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Total time to build:
slowest individual build time
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Tips and Tricks
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Build Visualization
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Supercharge Logs
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
awslabs / aws-codebuild-jenkins-plugin
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
EC2 Container Service
F i x i n g h o m e - g r o w n m u l t i - t e n a n c y w i t h
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
<html>
<head>
<script src=”/builds/application.js" />
</head>
<body>
<h1>Loading…</h1>
</body>
</html>
<html>
<head>
<script src=”/builds/application.js" />
</head>
<body>
<header>Sign up | Log in</header>
<main>
<h1>Take the world’s best courses</h1>
…
</main>
</body>
</html>
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
EC2 Container Service
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Multi-tenancy and isolation
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
• Container
management/orchestration system
• Runs Docker containers on EC2 hosts
• Easily handles:
• Autoscaling
• Dynamic resource reservations
• Health checking
• Easy API interface for managing
complex tasks
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
30% faster
app response times
scales easily
as traffic increases
66% cheaper
from fewer instances
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
30% faster
app response times
scales easily
as traffic increases
66% cheaper
from fewer instances
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
30% faster
app response times
scales easily
as traffic increases
66% cheaper
from fewer instances
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
30% faster
app response times
scales easily
as traffic increases
66% cheaper
from fewer instances
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
30% faster
app response times
scales easily
as traffic increases
66% cheaper
from fewer instances
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
30% faster
app response times
scales easily
as traffic increases
66% cheaper
from fewer instances
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Application isolation prevents cascading failures
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
one developer
migrated everything in
two months
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Scale your containers and hosts
Choose one metric to scale your containers on:
pick either CPU or memory
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Scale your containers and hosts
Combine the metrics for your ECS hosts:
scale based on potential number of
new containers that could be launched
http://garbe.io/blog/2017/04/12/
a-better-solution-to-ecs-autoscaling/
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Automate your deployments
• Look into AWS CodeDeploy and AWS CloudFormation
• Use services for blue/green deployments
https://blog.codeship.com/easy-blue-green-
deployments-on-amazon-ec2-container-service/
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
ECS Host
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
ECS Host
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Render Service Render Service
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Application Load Balancer
E n h a n c i n g s t a g i n g e n v i r o n m e n t s w i t h
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
What is Application Load Balancer?
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
What is Application Load Balancer?
• distributes traffic across multiple targets in target groups
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
What is Application Load Balancer?
• distributes traffic across multiple targets in target groups
• support for container based targets in ECS
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
What is Application Load Balancer?
• distributes traffic across multiple targets in target groups
• support for container based targets in ECS
• content-based routing via listener rules
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
What is Application Load Balancer?
• distributes traffic across multiple targets in target groups
• support for container based targets in ECS
• content-based routing via listener rules
o path-based routing
o host-based routing
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
What is Application Load Balancer?
• distributes traffic across multiple targets in target groups
• support for container based targets in ECS
• content-based routing via listener rules
o path-based routing
o host-based routing
• set up listener rules and register targets via SDK/CLI
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Path-based Routing
/learn/*
/browse/*
/$ /specializations/*
/pay/*
/about/*
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Path-based routing is too limited
• authentication can affect on routing
• experiments can affect routing
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Path-based routing is too limited
• authentication can affect on routing
• experiments can affect routing
Host-based routing can be flexible
• An edge tier allows you to generate a Host header
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Edge Tier
Given a request, figure out what application needs to serve the request.
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Edge Tier
Takes advantage of Host Based Content Routing:
- Given a request, rewrite the Host Header “${appname}-${version}.coursera”
- Forward the request to ALB
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Edge
Application Load Balancer listener rules inspect the Host header to figure out to
which target group it needs to forward the request
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Edge
ALB
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Edge
ALB
/browse
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
/browse
Edge
ALB
Host: catalog-a38z2f
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Edge
ALB
Host: catalog-a38z2f
/browse
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Edge
ALB
Host: catalog-a38z2f
catalog
/browse
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Catalog
Production
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Catalog Catalog@FeatA-1 Catalog@FeatB-1
Alice BobProduction
Catalog@FeatA-2 Catalog@FeatB-2
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Catalog Catalog@FeatA-1 Catalog@FeatB-1
Alice BobProduction
Catalog@FeatA-2 Catalog@FeatB-2
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Alice
Bob
Catalog@FeatA-1
Catalog@FeatA-2
Catalog@FeatB-1
Catalog@FeatB-2
Production
“catalog, please”
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Alice
Bob
Catalog@FeatA-1
Catalog@FeatA-2
Catalog@FeatB-1
Catalog@FeatB-2
Production
catalog~zxw
catalog~y3x
catalog~a2h
catalog~bz4
catalog~ndw
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
“catalog-zxw, please”
Alice
Bob
Catalog@FeatA-1
Catalog@FeatA-2
Catalog@FeatB-1
Catalog@FeatB-2
Production
catalog~zxw
catalog~y3x
catalog~a2h
catalog~bz4
catalog~ndw
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Alice
Bob
Catalog@FeatA-1
Catalog@FeatA-2
Catalog@FeatB-1
Catalog@FeatB-2
Production
“catalog-zxw, please”
“catalog-bz4, please”
catalog~zxw
catalog~y3x
catalog~a2h
catalog~bz4
catalog~ndw
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Alice
Bob
Catalog@FeatA-1
Catalog@FeatA-2
Catalog@FeatB-1
Catalog@FeatB-2
Production
catalog~zxw
catalog~y3x
catalog~a2h
catalog~bz4
catalog~ndw
“catalog-y3x, please”
“catalog-ndw, please”
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application Load Balancer Limitations
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application Load Balancer Limitations
- Many hard limits exist, check documentation
- Example: Max number of listener rules: 100
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application Load Balancer Limitations
- Many hard limits exist, check documentation
- Example: Max number of listener rules: 100
- Doesn’t support traffic weighting
Application
Load Balancer
Enhancing staging
environments
AWS CodeBuild
Optimizing
application builds
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Intro
Coursera
overview
Amazon ECS
Isolating front-end
applications
Application Load Balancer Limitations
- Many hard limits exist, check documentation
- Example: Max number of listener rules: 100
- Doesn’t support traffic weighting
- We implemented this in our edge tier
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Recap
D e v O p s L e s s o n s f r o m C o u r s e r a :
S i t e P e r f o r m a n c e , R e l i a b i l i t y , a n d D e v e l o p e r P r o d u c t i v i t y
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Use AWS CodeBuild to scale your
build environment on-demand
Pay only for what you use,
and take advantage of elasticity
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon ECS keeps your applications
independent without the overhead
of Amazon EC2
Reduce costs, and scale faster
by containerizing your applications
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ALBs give you the flexibility
to route traffic in creative ways
Target specific hosts or containers with
dynamic rules for on-demand environments
© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thanks for coming!

More Related Content

What's hot

SID402_An AWS Security Odyssey
SID402_An AWS Security OdysseySID402_An AWS Security Odyssey
SID402_An AWS Security Odyssey
Amazon Web Services
 
CON302_Building a CICD Pipeline for Containers on Amazon ECS
CON302_Building a CICD Pipeline for Containers on Amazon ECSCON302_Building a CICD Pipeline for Containers on Amazon ECS
CON302_Building a CICD Pipeline for Containers on Amazon ECS
Amazon Web Services
 
Create a Serverless Image Processing Platform
Create a Serverless Image Processing PlatformCreate a Serverless Image Processing Platform
Create a Serverless Image Processing Platform
Amazon Web Services
 
Dow Jones & Wall Street Journal's journey to manage traffic spikes while miti...
Dow Jones & Wall Street Journal's journey to manage traffic spikes while miti...Dow Jones & Wall Street Journal's journey to manage traffic spikes while miti...
Dow Jones & Wall Street Journal's journey to manage traffic spikes while miti...
Amazon Web Services
 
Introducing Amazon EKS
Introducing Amazon EKSIntroducing Amazon EKS
Introducing Amazon EKS
Amazon Web Services
 
CTD403_Supercharge Your Websites with the Power of Lambda@Edge
CTD403_Supercharge Your Websites with the Power of Lambda@EdgeCTD403_Supercharge Your Websites with the Power of Lambda@Edge
CTD403_Supercharge Your Websites with the Power of Lambda@Edge
Amazon Web Services
 
How BrightEdge Achieves End-to-End Security Visibility with Splunk and AWS
 How BrightEdge Achieves End-to-End Security Visibility with Splunk and AWS How BrightEdge Achieves End-to-End Security Visibility with Splunk and AWS
How BrightEdge Achieves End-to-End Security Visibility with Splunk and AWS
Amazon Web Services
 
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Amazon Web Services
 
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3MDEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
Amazon Web Services
 
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
Amazon Web Services
 
MBL201_Progressive Web Apps in the Real World
MBL201_Progressive Web Apps in the Real WorldMBL201_Progressive Web Apps in the Real World
MBL201_Progressive Web Apps in the Real World
Amazon Web Services
 
Comparing Compute Options for Microservices - AWS Summti Sydney 2018
Comparing Compute Options for Microservices - AWS Summti Sydney 2018Comparing Compute Options for Microservices - AWS Summti Sydney 2018
Comparing Compute Options for Microservices - AWS Summti Sydney 2018
Amazon Web Services
 
Preparing for AWS Certification & Advanced Security Training
Preparing for AWS Certification & Advanced Security TrainingPreparing for AWS Certification & Advanced Security Training
Preparing for AWS Certification & Advanced Security Training
Amazon Web Services
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐
Amazon Web Services
 
Best Practices for Orchestrating AWS Lambda Workloads - SRV335 - re:Invent 2017
Best Practices for Orchestrating AWS Lambda Workloads - SRV335 - re:Invent 2017Best Practices for Orchestrating AWS Lambda Workloads - SRV335 - re:Invent 2017
Best Practices for Orchestrating AWS Lambda Workloads - SRV335 - re:Invent 2017
Amazon Web Services
 
Soup to Nuts: Identity Federation for AWS
Soup to Nuts: Identity Federation for AWSSoup to Nuts: Identity Federation for AWS
Soup to Nuts: Identity Federation for AWS
Amazon Web Services
 
GPSTEC324_STORAGE FOR HPC IN THE CLOUD
GPSTEC324_STORAGE FOR HPC IN THE CLOUDGPSTEC324_STORAGE FOR HPC IN THE CLOUD
GPSTEC324_STORAGE FOR HPC IN THE CLOUD
Amazon Web Services
 
CON317_Advanced container management at catsndogs.lol
CON317_Advanced container management at catsndogs.lolCON317_Advanced container management at catsndogs.lol
CON317_Advanced container management at catsndogs.lol
Amazon Web Services
 
GPSTEC321_VMware on AWS Cloud Technical Deep Dive & Native AWS Services Integ...
GPSTEC321_VMware on AWS Cloud Technical Deep Dive & Native AWS Services Integ...GPSTEC321_VMware on AWS Cloud Technical Deep Dive & Native AWS Services Integ...
GPSTEC321_VMware on AWS Cloud Technical Deep Dive & Native AWS Services Integ...
Amazon Web Services
 
Serverless DevOps to the Rescue - SRV330 - re:Invent 2017
Serverless DevOps to the Rescue - SRV330 - re:Invent 2017Serverless DevOps to the Rescue - SRV330 - re:Invent 2017
Serverless DevOps to the Rescue - SRV330 - re:Invent 2017
Amazon Web Services
 

What's hot (20)

SID402_An AWS Security Odyssey
SID402_An AWS Security OdysseySID402_An AWS Security Odyssey
SID402_An AWS Security Odyssey
 
CON302_Building a CICD Pipeline for Containers on Amazon ECS
CON302_Building a CICD Pipeline for Containers on Amazon ECSCON302_Building a CICD Pipeline for Containers on Amazon ECS
CON302_Building a CICD Pipeline for Containers on Amazon ECS
 
Create a Serverless Image Processing Platform
Create a Serverless Image Processing PlatformCreate a Serverless Image Processing Platform
Create a Serverless Image Processing Platform
 
Dow Jones & Wall Street Journal's journey to manage traffic spikes while miti...
Dow Jones & Wall Street Journal's journey to manage traffic spikes while miti...Dow Jones & Wall Street Journal's journey to manage traffic spikes while miti...
Dow Jones & Wall Street Journal's journey to manage traffic spikes while miti...
 
Introducing Amazon EKS
Introducing Amazon EKSIntroducing Amazon EKS
Introducing Amazon EKS
 
CTD403_Supercharge Your Websites with the Power of Lambda@Edge
CTD403_Supercharge Your Websites with the Power of Lambda@EdgeCTD403_Supercharge Your Websites with the Power of Lambda@Edge
CTD403_Supercharge Your Websites with the Power of Lambda@Edge
 
How BrightEdge Achieves End-to-End Security Visibility with Splunk and AWS
 How BrightEdge Achieves End-to-End Security Visibility with Splunk and AWS How BrightEdge Achieves End-to-End Security Visibility with Splunk and AWS
How BrightEdge Achieves End-to-End Security Visibility with Splunk and AWS
 
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
Monitoring and Troubleshooting in a Serverless World - SRV303 - re:Invent 2017
 
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3MDEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
DEV332_Using AWS to Achieve Both Autonomy and Governance at 3M
 
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
GPSTEC319-Build Once Deploy Many Architecting and Building Automated Reusable...
 
MBL201_Progressive Web Apps in the Real World
MBL201_Progressive Web Apps in the Real WorldMBL201_Progressive Web Apps in the Real World
MBL201_Progressive Web Apps in the Real World
 
Comparing Compute Options for Microservices - AWS Summti Sydney 2018
Comparing Compute Options for Microservices - AWS Summti Sydney 2018Comparing Compute Options for Microservices - AWS Summti Sydney 2018
Comparing Compute Options for Microservices - AWS Summti Sydney 2018
 
Preparing for AWS Certification & Advanced Security Training
Preparing for AWS Certification & Advanced Security TrainingPreparing for AWS Certification & Advanced Security Training
Preparing for AWS Certification & Advanced Security Training
 
規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐規劃大規模遷移到 AWS 的最佳實踐
規劃大規模遷移到 AWS 的最佳實踐
 
Best Practices for Orchestrating AWS Lambda Workloads - SRV335 - re:Invent 2017
Best Practices for Orchestrating AWS Lambda Workloads - SRV335 - re:Invent 2017Best Practices for Orchestrating AWS Lambda Workloads - SRV335 - re:Invent 2017
Best Practices for Orchestrating AWS Lambda Workloads - SRV335 - re:Invent 2017
 
Soup to Nuts: Identity Federation for AWS
Soup to Nuts: Identity Federation for AWSSoup to Nuts: Identity Federation for AWS
Soup to Nuts: Identity Federation for AWS
 
GPSTEC324_STORAGE FOR HPC IN THE CLOUD
GPSTEC324_STORAGE FOR HPC IN THE CLOUDGPSTEC324_STORAGE FOR HPC IN THE CLOUD
GPSTEC324_STORAGE FOR HPC IN THE CLOUD
 
CON317_Advanced container management at catsndogs.lol
CON317_Advanced container management at catsndogs.lolCON317_Advanced container management at catsndogs.lol
CON317_Advanced container management at catsndogs.lol
 
GPSTEC321_VMware on AWS Cloud Technical Deep Dive & Native AWS Services Integ...
GPSTEC321_VMware on AWS Cloud Technical Deep Dive & Native AWS Services Integ...GPSTEC321_VMware on AWS Cloud Technical Deep Dive & Native AWS Services Integ...
GPSTEC321_VMware on AWS Cloud Technical Deep Dive & Native AWS Services Integ...
 
Serverless DevOps to the Rescue - SRV330 - re:Invent 2017
Serverless DevOps to the Rescue - SRV330 - re:Invent 2017Serverless DevOps to the Rescue - SRV330 - re:Invent 2017
Serverless DevOps to the Rescue - SRV330 - re:Invent 2017
 

Similar to DEV328_DevOps Lessons from Courser a Site Performance, Reliability, and Developer Productivity

CON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSCON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWS
Amazon Web Services
 
EFS_Integration.pdf
EFS_Integration.pdfEFS_Integration.pdf
EFS_Integration.pdf
Suman Debnath
 
Introducing Amazon Fargate
Introducing Amazon FargateIntroducing Amazon Fargate
Introducing Amazon Fargate
Amazon Web Services
 
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
Amazon Web Services
 
ARC205_Born in the Cloud
ARC205_Born in the CloudARC205_Born in the Cloud
ARC205_Born in the Cloud
Amazon Web Services
 
CON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWSCON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWS
Amazon Web Services
 
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Amazon Web Services
 
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Amazon Web Services
 
Born in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupBorn in the Cloud, Built like a Startup
Born in the Cloud, Built like a Startup
Amazon Web Services
 
Building with Containers on AWS
Building with Containers on AWSBuilding with Containers on AWS
Building with Containers on AWS
Amazon Web Services
 
Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017
Amazon Web Services
 
CON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersCON203_Driving Innovation with Containers
CON203_Driving Innovation with Containers
Amazon Web Services
 
Running Container on AWS - Builders Day Israel
Running Container on AWS - Builders Day IsraelRunning Container on AWS - Builders Day Israel
Running Container on AWS - Builders Day Israel
Amazon Web Services
 
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWSGPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
Amazon Web Services
 
Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing in You...
Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing in You...Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing in You...
Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing in You...
Amazon Web Services
 
Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018
Brendan Bouffler
 
CON208_Building Microservices on AWS
CON208_Building Microservices on AWSCON208_Building Microservices on AWS
CON208_Building Microservices on AWS
Amazon Web Services
 
AWS 容器服務入門實務
AWS 容器服務入門實務AWS 容器服務入門實務
AWS 容器服務入門實務
Amazon Web Services
 
Build a Java Spring Application on Amazon ECS - CON332 - re:Invent 2017
Build a Java Spring Application on Amazon ECS - CON332 - re:Invent 2017Build a Java Spring Application on Amazon ECS - CON332 - re:Invent 2017
Build a Java Spring Application on Amazon ECS - CON332 - re:Invent 2017
Amazon Web Services
 
DEV203_Launch Applications the Amazon Way
DEV203_Launch Applications the Amazon WayDEV203_Launch Applications the Amazon Way
DEV203_Launch Applications the Amazon Way
Amazon Web Services
 

Similar to DEV328_DevOps Lessons from Courser a Site Performance, Reliability, and Developer Productivity (20)

CON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWSCON309_Containerized Machine Learning on AWS
CON309_Containerized Machine Learning on AWS
 
EFS_Integration.pdf
EFS_Integration.pdfEFS_Integration.pdf
EFS_Integration.pdf
 
Introducing Amazon Fargate
Introducing Amazon FargateIntroducing Amazon Fargate
Introducing Amazon Fargate
 
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
NEW LAUNCH! Introducing AWS Fargate - CON214 - re:Invent 2017
 
ARC205_Born in the Cloud
ARC205_Born in the CloudARC205_Born in the Cloud
ARC205_Born in the Cloud
 
CON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWSCON319_Interstella GTC CICD for Containers on AWS
CON319_Interstella GTC CICD for Containers on AWS
 
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
Interstella 8888: CICD for Containers on AWS - CON319 - re:Invent 2017
 
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
Interstella 8888: Advanced Microservice Operations - CON407 - re:Invent 2017
 
Born in the Cloud, Built like a Startup
Born in the Cloud, Built like a StartupBorn in the Cloud, Built like a Startup
Born in the Cloud, Built like a Startup
 
Building with Containers on AWS
Building with Containers on AWSBuilding with Containers on AWS
Building with Containers on AWS
 
Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017Driving Innovation with Containers - CON203 - re:Invent 2017
Driving Innovation with Containers - CON203 - re:Invent 2017
 
CON203_Driving Innovation with Containers
CON203_Driving Innovation with ContainersCON203_Driving Innovation with Containers
CON203_Driving Innovation with Containers
 
Running Container on AWS - Builders Day Israel
Running Container on AWS - Builders Day IsraelRunning Container on AWS - Builders Day Israel
Running Container on AWS - Builders Day Israel
 
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWSGPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
GPSWKS407-Strategies for Migrating Microsoft SQL Databases to AWS
 
Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing in You...
Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing in You...Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing in You...
Use Amazon EC2 Systems Manager to Perform Automated Resilience Testing in You...
 
Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018Genomics on aws-webinar-april2018
Genomics on aws-webinar-april2018
 
CON208_Building Microservices on AWS
CON208_Building Microservices on AWSCON208_Building Microservices on AWS
CON208_Building Microservices on AWS
 
AWS 容器服務入門實務
AWS 容器服務入門實務AWS 容器服務入門實務
AWS 容器服務入門實務
 
Build a Java Spring Application on Amazon ECS - CON332 - re:Invent 2017
Build a Java Spring Application on Amazon ECS - CON332 - re:Invent 2017Build a Java Spring Application on Amazon ECS - CON332 - re:Invent 2017
Build a Java Spring Application on Amazon ECS - CON332 - re:Invent 2017
 
DEV203_Launch Applications the Amazon Way
DEV203_Launch Applications the Amazon WayDEV203_Launch Applications the Amazon Way
DEV203_Launch Applications the Amazon Way
 

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Amazon Web Services
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Amazon Web Services
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
Amazon Web Services
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
Amazon Web Services
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
Amazon Web Services
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
Amazon Web Services
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Amazon Web Services
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
Amazon Web Services
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Amazon Web Services
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
Amazon Web Services
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
Amazon Web Services
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Amazon Web Services
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
Amazon Web Services
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Amazon Web Services
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
Amazon Web Services
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
Amazon Web Services
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
Amazon Web Services
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
Amazon Web Services
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Amazon Web Services
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
Amazon Web Services
 

More from Amazon Web Services (20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
 
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
 
Esegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
 
Costruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWS
 
Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
 
Open banking as a service
Open banking as a serviceOpen banking as a service
Open banking as a service
 
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
 
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
 
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
 
Computer Vision con AWS
Computer Vision con AWSComputer Vision con AWS
Computer Vision con AWS
 
Database Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
 
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
 
API moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
 
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
 
Tools for building your MVP on AWS
Tools for building your MVP on AWSTools for building your MVP on AWS
Tools for building your MVP on AWS
 
How to Build a Winning Pitch Deck
How to Build a Winning Pitch DeckHow to Build a Winning Pitch Deck
How to Build a Winning Pitch Deck
 
Building a web application without servers
Building a web application without serversBuilding a web application without servers
Building a web application without servers
 
Fundraising Essentials
Fundraising EssentialsFundraising Essentials
Fundraising Essentials
 
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
 
Introduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
 

DEV328_DevOps Lessons from Courser a Site Performance, Reliability, and Developer Productivity

  • 1. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. DevOps Lessons from Coursera: Site Performance, Reliability, and Developer Productivity Lewis Chung + Bryan Kane F r o n t e n d I n f r a s t r u c t u r e @ C o u r s e r a November 28, 2017 DEV328
  • 2. Intro Coursera overview Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeBuild Optimizing application builds We envision a world where anyone, anywhere can transform their life by accessing the world’s best learning experience.
  • 3. Intro Coursera overview Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeBuild Optimizing application builds 30+ million learners 150+ partners 2,200+ courses
  • 4. Intro Coursera overview Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeBuild Optimizing application builds 70+ engineers
  • 5. Intro Coursera overview Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeBuild Optimizing application builds Keep Coursera as fast and reliable as possible. Empower Coursera's engineers to be as productive as possible.
  • 6. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS CodeBuild A d d i n g b u i l d f l e x i b i l i t y a n d r e d u c i n g c o s t s w i t h
  • 7. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Productivity increases as time between commit and deploy decreases
  • 8. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications backend
  • 9. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications backend frontend
  • 10. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications • commit to deploy in less than 5 minutes Coursera in 2013
  • 11. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications • commit to deploy in less than 5 minutes • commit and deploy happen together Coursera in 2013
  • 12. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications • commit to deploy in less than 5 minutes • commit and deploy happen together • regression debugging is easy w/ granular deploys Coursera in 2013
  • 13. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications build time: 5 minutes
  • 14. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications build time: 15 minutes
  • 15. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications build time: 30 minutes
  • 16. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications • builds take over 30 minutes Coursera in 2013 Coursera in 2016 • commit to deploy in less than 5 minutes • commit and deploy happen together • regression debugging easy w/ granular deploys
  • 17. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications • builds take over 30 minutes • developers forget to deploy Coursera in 2013 Coursera in 2016 • commit to deploy in less than 5 minutes • commit and deploy happen together • regression debugging easy w/ granular deploys
  • 18. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications • builds take over 30 minutes • developers forget to deploy • debugging regressions becomes more difficult Coursera in 2013 Coursera in 2016 • commit to deploy in less than 5 minutes • commit and deploy happen together • regression debugging easy w/ granular deploys
  • 19. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 20. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 21. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 22. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 23. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 24. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 25. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 26. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Lecture Videos Peer Review Learning Plans Home Page Catalog Browse Enterprise Programs Course Dashboard Catalog Search Course Authoring My Purchases Payment Checkout Support Tools Course Forums Code Blocks Account Settings
  • 27. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Lecture Videos Peer Review Learning Plans Home Page Catalog Browse Enterprise Programs Course Dashboard Catalog Search Course Authoring My Purchases Payment Checkout Support Tools Course Forums Code Blocks Account Settings • determine what applications were affected by a code change • build individual applications in the codebase, not the whole Breaking up the monolith
  • 28. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Lecture Videos Peer Review Home Page Catalog Browse Enterprise Programs Course Dashboard Catalog Search Course Authoring My Purchases Payment Checkout Course Forums Code Blocks Account Settings Learning Plans Support Tools
  • 29. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Lecture Videos Peer Review Home Page Catalog Browse Enterprise Programs Course Dashboard Catalog Search Course Authoring My Purchases Payment Checkout Course Forums Code Blocks Account Settings Learning Plans Support Tools
  • 30. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Lecture Videos Peer Review Catalog Browse Enterprise Programs Course Dashboard Catalog Search My Purchases Payment Checkout Course Forums Code Blocks Account Settings Home Page Course Authoring Support Tools Learning Plans
  • 31. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Lecture Videos Peer Review Learning Plans Home Page Catalog Browse Enterprise Programs Course Dashboard Catalog Search Course Authoring My Purchases Payment Checkout Support Tools Course Forums Code Blocks Account Settings
  • 32. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 33. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications 8 workers
  • 34. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 35. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications 5 min
  • 36. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications 5 min 5 min
  • 37. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications 5 min 5 min 5 min 5 min 5 min 5 min 5 min
  • 38. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Optimal full build: 35 minutes
  • 39. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 40. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications 5 min
  • 41. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications N workers
  • 42. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Automatically scaling Jenkins?
  • 43. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Automatically scaling Jenkins? Too slow for bursty build jobs.
  • 44. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Overprovision Jenkins?
  • 45. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Overprovision Jenkins? Not cost effective
  • 46. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Multiple commits might land minutes from each other...
  • 47. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications commit 13a0bd Author: Alice Date: Mon Oct 16 2:45:00 2017 -0700 Update page header with new styles... commit 13a0bd Author: Bob Date: Mon Oct 16 2:47:00 2017 -0700 Add links to footer... commit 13a0bd Author: Carol Date: Mon Oct 16 2:49:00 2017 -0700 Update button component to support the new transition required for feature...
  • 48. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications commit 13a0bd Author: Alice Date: Mon Oct 16 2:45:00 2017 -0700 Update page header with new styles... commit 13a0bd Author: Bob Date: Mon Oct 16 2:47:00 2017 -0700 Add links to footer... commit 13a0bd Author: Carol Date: Mon Oct 16 2:49:00 2017 -0700 Update button component to support the new transition required for feature...
  • 49. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications commit 13a0bd Author: Alice Date: Mon Oct 16 2:45:00 2017 -0700 Update page header with new styles... commit 13a0bd Author: Bob Date: Mon Oct 16 2:47:00 2017 -0700 Add links to footer... commit 13a0bd Author: Carol Date: Mon Oct 16 2:49:00 2017 -0700 Update button component to support the new transition required for feature...
  • 50. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications commit 13a0bd Author: Alice Date: Mon Oct 16 2:45:00 2017 -0700 Update page header with new styles... commit 13a0bd Author: Bob Date: Mon Oct 16 2:47:00 2017 -0700 Add links to footer... commit 13a0bd Author: Carol Date: Mon Oct 16 2:49:00 2017 -0700 Update button component to support the new transition required for feature...
  • 51. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Can we do better?
  • 52. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications AWS CodeBuild
  • 53. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications • on-demand build environment • run your builds inside docker containers • near-infinite elastic capacity -- scale up and down as you need What is CodeBuild? AWS CodeBuild
  • 54. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Compute instance type Memory (GB) vCPU Price per build minute ($) small 3 2 0.005 medium 7 4 0.010 large 15 8 0.020
  • 55. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 56. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications 5 min
  • 57. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications commit 13a0bd Author: Alice Date: Mon Oct 16 2:45:00 2017 -0700 Update page header with new styles... commit 13a0bd Author: Bob Date: Mon Oct 16 2:45:30 2017 -0700 Add links to footer... commit 13a0bd Author: Carol Date: Mon Oct 16 2:46:00 2017 -0700 Update button component to support the new transition required for feature...
  • 58. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications ~5 min
  • 59. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Migrating from Jenkins to CodeBuild was easy
  • 60. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Total time to build: slowest individual build time
  • 61. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Tips and Tricks
  • 62. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Build Visualization
  • 63. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Supercharge Logs
  • 64. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications awslabs / aws-codebuild-jenkins-plugin
  • 65. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. EC2 Container Service F i x i n g h o m e - g r o w n m u l t i - t e n a n c y w i t h
  • 66. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview
  • 67. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview
  • 68. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview
  • 69. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview
  • 70. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview <html> <head> <script src=”/builds/application.js" /> </head> <body> <h1>Loading…</h1> </body> </html> <html> <head> <script src=”/builds/application.js" /> </head> <body> <header>Sign up | Log in</header> <main> <h1>Take the world’s best courses</h1> … </main> </body> </html>
  • 71. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 72. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 73. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 74. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 75. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 76. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 77. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 78. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 79. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service
  • 80. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview
  • 81. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview
  • 82. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview EC2 Container Service
  • 83. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Multi-tenancy and isolation
  • 84. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview • Container management/orchestration system • Runs Docker containers on EC2 hosts • Easily handles: • Autoscaling • Dynamic resource reservations • Health checking • Easy API interface for managing complex tasks
  • 85. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview 30% faster app response times scales easily as traffic increases 66% cheaper from fewer instances
  • 86. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview 30% faster app response times scales easily as traffic increases 66% cheaper from fewer instances
  • 87. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview 30% faster app response times scales easily as traffic increases 66% cheaper from fewer instances
  • 88. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview 30% faster app response times scales easily as traffic increases 66% cheaper from fewer instances
  • 89. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview 30% faster app response times scales easily as traffic increases 66% cheaper from fewer instances
  • 90. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview 30% faster app response times scales easily as traffic increases 66% cheaper from fewer instances
  • 91. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Application isolation prevents cascading failures
  • 92. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview one developer migrated everything in two months
  • 93. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Scale your containers and hosts Choose one metric to scale your containers on: pick either CPU or memory
  • 94. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Scale your containers and hosts Combine the metrics for your ECS hosts: scale based on potential number of new containers that could be launched http://garbe.io/blog/2017/04/12/ a-better-solution-to-ecs-autoscaling/
  • 95. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Automate your deployments • Look into AWS CodeDeploy and AWS CloudFormation • Use services for blue/green deployments https://blog.codeship.com/easy-blue-green- deployments-on-amazon-ec2-container-service/
  • 96. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview ECS Host
  • 97. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview ECS Host
  • 98. Amazon ECS Isolating front-end applications Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Render Service Render Service
  • 99. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Application Load Balancer E n h a n c i n g s t a g i n g e n v i r o n m e n t s w i t h
  • 100. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications What is Application Load Balancer?
  • 101. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications What is Application Load Balancer? • distributes traffic across multiple targets in target groups
  • 102. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications What is Application Load Balancer? • distributes traffic across multiple targets in target groups • support for container based targets in ECS
  • 103. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications What is Application Load Balancer? • distributes traffic across multiple targets in target groups • support for container based targets in ECS • content-based routing via listener rules
  • 104. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications What is Application Load Balancer? • distributes traffic across multiple targets in target groups • support for container based targets in ECS • content-based routing via listener rules o path-based routing o host-based routing
  • 105. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications What is Application Load Balancer? • distributes traffic across multiple targets in target groups • support for container based targets in ECS • content-based routing via listener rules o path-based routing o host-based routing • set up listener rules and register targets via SDK/CLI
  • 106. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications
  • 107. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Path-based Routing /learn/* /browse/* /$ /specializations/* /pay/* /about/*
  • 108. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Path-based routing is too limited • authentication can affect on routing • experiments can affect routing
  • 109. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Path-based routing is too limited • authentication can affect on routing • experiments can affect routing Host-based routing can be flexible • An edge tier allows you to generate a Host header
  • 110. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Edge Tier Given a request, figure out what application needs to serve the request.
  • 111. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Edge Tier Takes advantage of Host Based Content Routing: - Given a request, rewrite the Host Header “${appname}-${version}.coursera” - Forward the request to ALB
  • 112. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Edge Application Load Balancer listener rules inspect the Host header to figure out to which target group it needs to forward the request
  • 113. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Edge ALB
  • 114. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Edge ALB /browse
  • 115. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications /browse Edge ALB Host: catalog-a38z2f
  • 116. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Edge ALB Host: catalog-a38z2f /browse
  • 117. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Edge ALB Host: catalog-a38z2f catalog /browse
  • 118. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Catalog Production
  • 119. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Catalog Catalog@FeatA-1 Catalog@FeatB-1 Alice BobProduction Catalog@FeatA-2 Catalog@FeatB-2
  • 120. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Catalog Catalog@FeatA-1 Catalog@FeatB-1 Alice BobProduction Catalog@FeatA-2 Catalog@FeatB-2
  • 121. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Alice Bob Catalog@FeatA-1 Catalog@FeatA-2 Catalog@FeatB-1 Catalog@FeatB-2 Production “catalog, please”
  • 122. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Alice Bob Catalog@FeatA-1 Catalog@FeatA-2 Catalog@FeatB-1 Catalog@FeatB-2 Production catalog~zxw catalog~y3x catalog~a2h catalog~bz4 catalog~ndw
  • 123. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications “catalog-zxw, please” Alice Bob Catalog@FeatA-1 Catalog@FeatA-2 Catalog@FeatB-1 Catalog@FeatB-2 Production catalog~zxw catalog~y3x catalog~a2h catalog~bz4 catalog~ndw
  • 124. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Alice Bob Catalog@FeatA-1 Catalog@FeatA-2 Catalog@FeatB-1 Catalog@FeatB-2 Production “catalog-zxw, please” “catalog-bz4, please” catalog~zxw catalog~y3x catalog~a2h catalog~bz4 catalog~ndw
  • 125. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Alice Bob Catalog@FeatA-1 Catalog@FeatA-2 Catalog@FeatB-1 Catalog@FeatB-2 Production catalog~zxw catalog~y3x catalog~a2h catalog~bz4 catalog~ndw “catalog-y3x, please” “catalog-ndw, please”
  • 126. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Application Load Balancer Limitations
  • 127. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Application Load Balancer Limitations - Many hard limits exist, check documentation - Example: Max number of listener rules: 100
  • 128. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Application Load Balancer Limitations - Many hard limits exist, check documentation - Example: Max number of listener rules: 100 - Doesn’t support traffic weighting
  • 129. Application Load Balancer Enhancing staging environments AWS CodeBuild Optimizing application builds © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Intro Coursera overview Amazon ECS Isolating front-end applications Application Load Balancer Limitations - Many hard limits exist, check documentation - Example: Max number of listener rules: 100 - Doesn’t support traffic weighting - We implemented this in our edge tier
  • 130. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Recap D e v O p s L e s s o n s f r o m C o u r s e r a : S i t e P e r f o r m a n c e , R e l i a b i l i t y , a n d D e v e l o p e r P r o d u c t i v i t y
  • 131. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Use AWS CodeBuild to scale your build environment on-demand Pay only for what you use, and take advantage of elasticity
  • 132. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon ECS keeps your applications independent without the overhead of Amazon EC2 Reduce costs, and scale faster by containerizing your applications
  • 133. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ALBs give you the flexibility to route traffic in creative ways Target specific hosts or containers with dynamic rules for on-demand environments
  • 134. © 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Thanks for coming!