View
3.493
Download
4
Category
Preview:
DESCRIPTION
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.
Citation preview
AWS OpsWorks
Chris Barclay
Product Manager
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
Once upon a time…
Source: http://www.mixph.com/2008/10/how-to-make-donuts-food-business.html
This is what we want…
Source http://thethriftythings.com/2013/01/doughnut-heaven-with-krispy-kreme-2013-bloggers-summit.html
In today’s infrastructure, everything is code…
from the applications developers are writing, to
your configuration management tools, to
provisioning resources with CloudFormation
templates.
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
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
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
AWS Application Management Services
Elastic Beanstalk OpsWorks CloudFormation EC2
Convenience Control
Higher-level Services Do it yourself
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.
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.
Recipes Lifecycle Events
Metadata
Chef recipes in action
Recipe
+
Metadata
=
Command
execute “mysql-connect” do command “/usr/bin/mysql -u#{node[:deploy][:myphpapp][:database][:username]} -p#{node[:deploy][:myphpapp][:database][:password]} #{node[:deploy][:myphpapp][:database][:database]} …
“deploy”: { “myphpapp”: { “database”: { “username”: “root”, “password”: “abcxyz”, …
“/usr/bin/mysql -uroot –pabcxyz myphpapp …
Demonstration: Deployment Pipeline to Staging
Deploy Code Build Test Provision Monitor
OpsWorks Git Jenkins
Check in – Build & Test Tests pass – Deploy to Staging
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
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
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
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
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
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
Thank you!
For more information, see us at https://aws.amazon.com/opsworks/
Recommended