2. Compute & Networking
Storage & Content Delivery
AWS Global Infrastucture
Database
App Services
Analytics
Deployment & Management
API
API
API
3. API
API
API
Regions Availability Zones Edge Locations
EC2 VPC Route 53
Direct
Connect
S3 Glacier CloudFront
Storage
Gateway
RDS DynamoDB ElastiCache Redshift
SQS SNS SWF SES AppStream CloudSearch
Elastic
Transcoder
IAM CloudTrail CloudWatch CloudFormation
Elastic
Beanstalk
OpsWorks
EMR
Data
Pipeline
Kinesis
WorkSpaces
4. Regions Availability Zones Edge Locations
S3 Glacier CloudFront
Storage
Gateway
RDS DynamoDB ElastiCache Redshift
SQS SNS SWF SES AppStream CloudSearch
Elastic
Transcoder
IAM CloudTrail CloudWatch CloudFormation
Elastic
Beanstalk
OpsWorks
EMR
Data
Pipeline
Kinesis
EC2 VPC Route 53
Direct
Connect
WorkSpaces
5. Regions
Availability Zones
Edge Locations
EC2
VPC
Route 53 DirectConnect
S3
Glacier
CloudFront
Storage
Gateway
RDS
DynamoDB
ElastiCache
RedshiftSQS
SNS
SWF
SES
AppStream
CloudSearch
ElasticTranscoder
IAM
CloudTrail
CloudWatch CloudFormation
Elastic
Beanstalk
OpsWorks
EMR
Data
Pipeline
Kinesis
WorkSpaces
33. “Improving daily work is even more
important than doing daily work.”
!
!
Gene Kim, Kevin Behr, George Spafford,
The Phoenix Project: A Novel About IT, DevOps,
and Helping Your Business Win
49. PAIN POINTS
• UNIT TESTS INCOMPLETE
• MOCK TESTS MAINTENANCE
• EXPENSIVE TEST ENVIRONMENT
• TEST ENVIRONMENT ≠ PRODUCTION
• DEPLOYMENT CYCLES
50. “Complexity arises when the
dependencies among the elements
become important.”
!
!
Scott E. Page, John H. Miller,
Complex Adaptive Systems:
An Introduction to Computational Models of Social Life
59. // To totally enabled a feature !
$server_config[‘foo'] = ‘on’;!
!
// To totally disabled a feature!
$server_config['foo'] = ‘off’;!
!
// Feature with variant turned on for everyone!
$server_config['foo'] = 'blue_background';!
!
// Enabled for 10% of regular users and all admins!
$server_config[‘foo'] = array(!
'enabled' => 10,!
'admin' => 'on',!
!);
https://github.com/etsy/feature
60. !if (Feature::isEnabled('my_feature')) {!
! // do stuff!
!}!
! !
!if (Feature::isEnabled('my_feature')) {!
! !
! switch (Feature::variant('my_feature')) {!
! case 'foo':!
! // do stuff appropriate for the foo variant!
! break;!
! case 'bar':!
! // do stuff appropriate for the bar variant!
! break;!
! }!
!}
https://github.com/etsy/feature
87. DEPLOYMENTS AT
AMAZON.COM
!
!
!
11.6s
Mean time between
deployments
(weekday)
1,079
Max number of
deployments in a
single hour
10,000
Mean number of
hosts
simultaneously
receiving a
deployment
30,000
Max number of
hosts
simultaneously
receiving a
deployment