alexpapadimoulis_racingthruthelastmileclouddeliverywebscaledeployment
TRANSCRIPT
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
1/55
Racing Thru the Last Mile
Qcon London 2013
Alex Papadimoulis
@apapadimoulis
Cloud Delivery & Web-Scale Deployment
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
2/55
My 3 Bullet Point Rsum
Been in software for a while
Worked on a bunch of different systems
Worked at a bunch of different places
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
3/55
I founded
BuildMaster
DevOps in a box ProGet
NuGet for the enterprise
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
4/55
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
5/55
What is the Cloud?
EC2
Web SitesCloud Services
Virtual Machines
BeanstalkCloud Formation
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
6/55
What is Web Scale?
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
7/55
What is Web Scale?
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
8/55
What is Web Scale?
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
9/55
Scale of Web Scale
0
100000
200000
300000
400000
500000
600000
Google Facebook Twitter Wikipedia Growing Emerging
Number of Servers
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
10/55
Scale of Web Scale
1
10
100
1000
10000
100000
1000000
Google Facebook Twitter Wikipedia Growing Emerging
Number of Servers
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
11/55
Deployment Matters
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
12/55
Web-scale Deployments
Fast
Often
Reliable
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
13/55
Googles Secret Weapon
Same as Facebook
Same as Twitter
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
14/55
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
15/55
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
16/55
Twitters Murder
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
17/55
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
18/55
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
19/55
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
20/55
Applications
Services Auth
API UserAccount
Web Logon Search Uploader
User Files
CDNProxy
DataAccess
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
21/55
Environments
Int Test Staging Prod
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
22/55
ReleasesInitial Release Perfect
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
23/55
ReleasesInitial Release
Emergency Fix Crashes when Credit
Card is submitted
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
24/55
ReleasesInitial Release
Emergency Fix
Another Emergency Fix
Orders randomly gomissing
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
25/55
ReleasesInitial Release
Emergency Fix
Another Emergency Fix
New Features
RSS Feed
Sub-categories
Newsletter
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
26/55
ReleasesInitial Release
Emergency Fix
Another Emergency Fix
New Features
More New Features
One-click Buy
Renewals
Favorites List
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
27/55
Releases1.0 - Initial Release
1.1 - Emergency Fix
1.2 - Another Emergency Fix
2.0 - New Features
2.5 - More New Features
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
28/55
Builds
Build 1 Integration Test Staging Prod
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
29/55
Builds
Build 5 Integration Test Staging Prod
Build 1 Integration Test Staging Prod
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
30/55
Builds
Build 13 Integration Test Staging Prod
Build 5 Integration Test Staging Prod
Build 1 Integration Test Staging Prod
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
31/55
Promotions
Integration Test Staging Prod
Before Staging: Automated Acceptance Test Passed
Manual Smoke Test Passed
Release Issues Resolved
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
32/55
Deployments
Integration Test Staging Prod
Before Staging: Automated Acceptance Test Passed
Manual Smoke Test Passed
Release Issues Resolved
Staging Deployment:1. Transfer Files to tmpDir
2. Stop Web Services
3. Swap tmpDir and liveDir
4. Start Web Services
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
33/55
Common Terminology
Applications
Releases
Builds
Promotions
Deployments
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
34/55
Deployment
Distribution Delivery
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
35/55
Abstracting Delivery
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
36/55
Deliverables
Files
Database
Environmental
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
37/55
File Components
Staging Directory
Changed Files Only
Assets on CDN
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
38/55
Database Components
Cant Rollback
Backwards Compatibility (Deploy First)
Test via Staging
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
39/55
Environment Components
Reallycant rollback
Minimize
Application-only
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
40/55
Delivery Mechanism
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
41/55
Push Basics
servers = ["appsv1", "appsv2", "appsv3"];
for each (s in servers) {
transfer_files(s);
copy_config_file(s);
deploy_database(s);
set_environment(s);
}
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
42/55
Pull Basics
There are no basics
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
43/55
Pull Challenges
Instruction Complexity
Orchestration
Monitoring
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
44/55
Pull Helpers
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
45/55
Rollout Techniques
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
46/55
Live
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
47/55
Rolling
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
48/55
Rolling
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
49/55
Parallel
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
50/55
Parallel
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
51/55
Not Rollouts
Piloting
Feature Toggle
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
52/55
Cloud Delivery
Not Much, Really
Simplifies Environments
Simplifies Mistakes
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
53/55
Build Your Own Plan Application Segregation
Environments
Release Workflow
Delivery
Components
Push vs Pull Rollouts
Cloud Application
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
54/55
Build Integration Test Staging Prod
Build Test Staging Prod
-
8/22/2019 AlexPapadimoulis_RacingThruTheLastMileCloudDeliveryWebScaleDeployment
55/55
Deployment Matters
@apapadimoulis