Many AWS customers have adopted a DevOps model for faster and more reliable software delivery. Applying software engineering best practices such as revision control and continuous delivery to your infrastructure is essential for adopting DevOps. In this session, find out how AWS CloudFormation and associated AWS tools allow you to leverage a DevOps model by treating infrastructure as code and applying software engineering best practices to your AWS infrastructure.
2. You are on board …
Continuous delivery
• services and
applications
DevOps
• culture, automation,
measurement,
sharing
Cloud
• infrastructure-as-
code
Business needs to experiment, innovate, reduce risk
4. AWS CloudFormation
• Create templates of the infrastructure and
applications you want to run on AWS
• Have the CloudFormation service
automatically provision the required AWS
resources and their relationships from the
templates
• Easily version control, replicate or update
the infrastructure and applications using
the templates
• Integrates with other development, CI/CD,
and management tools
6. depends on
Design: Building a food ordering service
food catalog
website
ordering website
customer DB
service
inventory service
recommendations
service
analytics service
fulfillment
service
payment
service
7. Create template for the food catalog website
security group
Auto Scaling group
EC2
instance
Elastic Load
Balancing
customer DB service
inventory service
recommendations
service
Software pkgs,
config, & data
CloudWatch
alarms
ElastiCache
18. “It’s all software” – Organize like it’s software
front-end
services
• consumer website, seller
website, mobile back end
back-end
services
• search, payments, reviews,
recommendations
shared
services
• CRM DBs, common monitoring
/alarms, subnets, security groups
base
Network
• VPCs, Internet gateways, VPNs,
NATs
identity • IAM users, groups, roles
19. “It’s all software” – Build and operate like it’s
software
application software
source code
package
loader/interpreter
desired application state
in memory
infrastructure
software
JSON templates / JSON
template generators
JSON templates
AWS CloudFormation
desired infrastructure in
the cloud
23. Extend with custom resources
security group
Auto Scaling group
EC2
instance
Elastic Load
Balancing
Software pkgs,
config, & data
CloudWatch
alarms
Web Analytics
Service
AWS
CloudFormation
provision
AWS resources
"Resources" : {
"WebAnalyticsTrackingID" : {
"Type" : "Custom::WebAnalyticsService::TrackingID",
"Properties" : {
"ServiceToken" : "arn:aws:sns:...",
"Target" : {"Fn::GetAtt" : ["LoadBalancer", "DNSName"]},
"Plan" : "Gold"
}
},
...
“Success” + Metadata
“Create, update, roll back, or delete”
+ metadata
ElastiCache
24. Lambda-powered custom resources
security group
Auto Scaling group
EC2
instance
Elastic Load
Balancing
Software pkgs,
config, & data
CloudWatch
alarms
your AWS CloudFormation stack
// Implement custom logic here
look up an AMI ID
your AWS Lambda functions
look up a VPC ID and a subnet ID
reverse an IP address
Lambda-powered
custom resources
ElastiCache
42. CloudFormation in a CI/CD pipeline
AWS
CloudFormationIssue Tracker
app developers
DevOps engineers,
infrastructure developers,
systems engineers
dev env code repo
app pkgs,
CloudFormation
templates, etc.
CI server
test
staging
prodcode review
“infrastructure-as-code"
app code
& templates
44. CloudFormer: Templatize existing resources
1. Launch a CloudFormer
application stack.
2. Walk through the
CloudFormer UI and select
resources to templatize.
4. Customize.
For example: parameterize
resource properties.
5. Create a new stack.
45. Practitioners of infrastructure-as-code
• Developers/DevOps teams value CloudFormation for its ability to
treat infrastructure as code, allowing them to apply software
engineering principles, such as SOA, revision control, code reviews,
and integration testing to infrastructure.
• IT admins and MSPs value CloudFormation as a platform to enable
standardization, managed consumption, and role-specialization.
• ISVs value CloudFormation for its ability to support scaling out of
multi-tenant SaaS products by quickly replicating or updating stacks.
ISVs also value CloudFormation as a way to package and deploy
their software in their customer accounts on AWS.