In this session we'll discuss and demonstrate key concepts and design patterns for continuous deployment and integration using technologies like AWS OpsWorks and Chef to enable better control of applications and infrastructures.
2. Application Management Challenges
• Your app’s reliability and scalability are really important.
• The operational tasks needed to keep it running
smoothly take time…
• As your app grows, routine operational tasks can
become even more time-consuming and error-prone.
• Don’t want to tradeoff control or flexibility for ease of use.
• Provision
• Deploy
• Configure
• Monitor
• Scale
• Secure
3. Once upon a time…
Source: http://www.mixph.com/2008/10/how-to-make-donuts-food-business.html
4. This is what we want…
Source http://thethriftythings.com/2013/01/doughnut-heaven-with-krispy-kreme-2013-bloggers-summit.html
6. In today’s infrastructure, everything is code…
from the applications developers are writing, to
your configuration management tools, to
provisioning resources with CloudFormation
templates.
7. AWS OpsWorks
• Integrated application management solution for
ops-minded developers and IT admins
• Model, control and automate applications of
nearly any scale and complexity
• Management Console, SDKs, or CLI
• No additional cost
8. Why AWS OpsWorks?
SIMPLE
Easy to use,
quickly get
started and
productive
PRODUCTIVE
Reduces
errors with
conventions
and scripted
configuration
FLEXIBLE
Simplifies
deployments
of any
scale and
complexity
POWERFUL
Reduce cost
and time with
automation
SECURE
Enables
control with
fine grained
permissions
9. Software Config & Deployment Options
Linux
JEE
Hibernate
Your Code
Struts
Apache
Tomcat
Linux
JEE
Hibernate
Your Code
Struts
Apache
Tomcat
Linux
JEE
Hibernate
Your Code
Struts
Apache
Tomcat
Chef
10. AWS Application Management Services
Elastic Beanstalk OpsWorks CloudFormation EC2
Convenience Control
Higher-level Services Do it yourself
11. What we’re going to show in the demo…
A stack represents
the cloud
infrastructure and
applications that you
want to manage
together.
A layer defines how
to setup and
configure a set of
instances and related
resources.
Then deploy your
app to specific
instances and
customize the
deployment with
Chef recipes.
Decide how to scale:
manually, with 24/7
instances, or
automatically, with
load-based or time-
based instances.
12. What is Chef and how does OpsWorks use it
• Chef is an open-source
framework that
automates software
deployment and
configuration.
• Whenever a change
happens on your stack,
or upon request, all
instances are notified
and recipes are run.
RecipesLifecycle Events
Metadata
14. Demonstration: Deployment Pipeline to Staging
DeployCode Build Test Provision Monitor
OpsWorksGit Jenkins
Check in – Build & Test Tests pass – Deploy to Staging
15. Demonstration: Deployment Pipeline to Prod
Blue/Green Deploys
– We stand up a duplicate part of our
infrastructure and slowly cut traffic
over to it
• Shift via DNS
• Makes it easy to do testing of new
features
• Makes it easy to roll back
– As we shift more traffic over, let
auto-scaling grow/shrink our
instances of the new or old
application
• Shut down the old when no traffic
there
Amazon
Route 53
EC2 Instances
ELB
100%
MySQL RDS
Instance
16. Demonstration: Deployment Pipeline to Prod
Blue/Green Deploys
– We stand up a duplicate part of our
infrastructure and slowly cut traffic
over to it
• Shift via DNS
• Makes it easy to do testing of new
features
• Makes it easy to roll back
– As we shift more traffic over, let
auto-scaling grow/shrink our
instances of the new or old
application
• Shut down the old when no traffic
there
Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
90% 10%
MySQL RDS
Instance
17. Demonstration: Deployment Pipeline to Prod
Blue/Green Deploys
– We stand up a duplicate part of our
infrastructure and slowly cut traffic
over to it
• Shift via DNS
• Makes it easy to do testing of new
features
• Makes it easy to roll back
– As we shift more traffic over, let
auto-scaling grow/shrink our
instances of the new or old
application
• Shut down the old when no traffic
there
Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
50% 50%
MySQL RDS
Instance
18. Demonstration: Deployment Pipeline to Prod
Blue/Green Deploys
– We stand up a duplicate part of our
infrastructure and slowly cut traffic
over to it
• Shift via DNS
• Makes it easy to do testing of new
features
• Makes it easy to roll back
– As we shift more traffic over, let
auto-scaling grow/shrink our
instances of the new or old
application
• Shut down the old when no traffic
there
Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
0% 100%
MySQL RDS
Instance
19. Demonstration: Deployment Pipeline to Prod
Blue/Green Deploys
– We stand up a duplicate part of our
infrastructure and slowly cut traffic
over to it
• Shift via DNS
• Makes it easy to do testing of new
features
• Makes it easy to roll back
– As we shift more traffic over, let
auto-scaling grow/shrink our
instances of the new or old
application
• Shut down the old when no traffic
there
Amazon
Route 53
EC2 Instances
ELB
EC2 Instances
ELB
0% 100%
MySQL RDS
Instance
20. Demonstration: Deployment Pipeline to Prod
Blue/Green Deploys
– We stand up a duplicate part of our
infrastructure and slowly cut traffic
over to it
• Shift via DNS
• Makes it easy to do testing of new
features
• Makes it easy to roll back
– As we shift more traffic over, let
auto-scaling grow/shrink our
instances of the new or old
application
• Shut down the old when no traffic
there
Amazon
Route 53
EC2 Instances
ELB
100%
MySQL RDS
Instance