(APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
AWS Webcast - Intro to DevOps: Using Amazon RDS with AWS OpsWorks
-
Upload
amazon-web-services -
Category
Technology
-
view
952 -
download
1
description
Transcript of AWS Webcast - Intro to DevOps: Using Amazon RDS with AWS OpsWorks
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Intro to DevOps: Using AWS OpsWorks and
Amazon RDS
Chris Barclay
Amazon Web Services
What is “DevOps”?
• A philosophy? Cultural change? Paradigm shift?
• Alignment of development and IT operations
with better communication and collaboration?
• Improvement in software deployment?
What is “DevOps”?
• A philosophy? Cultural change? Paradigm shift?
• Alignment of development and IT operations
with better communication and collaboration?
• Improvement in software deployment?
Yes!
Deliver scalable,
resilient
applications with
less work
Source: http://xkcd.com/844/
Why are we here?
Software development process
Dev
Team
Test
Team
Ops
Team
Sustaining
Team
Code
Wal l
Developer IT Operations
Software development process
• Handoffs can cause trouble – Who is responsible for scaling?
– How to troubleshoot issues that span teams?
– Coordination can cause delays.
Dev
Team
Test
Team
Ops
Team
Sustaining
Team
“DevOps” culture of ownership
• Accountability
• Coordination
• Predictability
• Speed
How to get there
• Iterative improvements
• Everything is code
• Automation
• Practice the hard things
Iterative improvements
Long release cycles for major new versions
Traditional Software Delivery
Constant stream of incremental improvements
Agile Software Delivery
React quickly 1 2 Reduce risk
Constant stream of incremental improvements
Agile Software Delivery
The path to iterative improvements
Design Code Refactor Unit Test Bug Fix Deploy
Developers
(application)
Provision Configure Orchestrate Deploy Report Monitor
IT Operations
(infrastructure)
Agile
Development
DevOps
• Continuous Integration
• Continuous Deployment
• IT Automation
• Application Management
• Iterative development
• Scrum, sprints, stories
• Velocity
Development
Agility
IT
Agility
Everything is code
Your app = resources + software config + deploy
Your app, defined by recipes
Ap
p
Resources modeled as a Stack
• Checked into
your repository
• Reproducible MySQL Primary
(RDS)
Ap
p
EL
B
Alert
Log
Mon
Automation
1. Provision server
2. Configure networks
3. Configure storage
4. Download software
5. Install software
6. Configure software
7. Deploy application
8. Apply security patches
9. Add sprinkles (optional)
• Repeatability
• Consistency
• Speed
Practice the hard things
• All environments are the same
• Alarms
• Logs
• Permissions
• Canaries
• Simulate failures
An application management service that
makes it easy to deploy and operate
applications of all shapes and sizes.
Monitoring
Provisioning
Logging
Deployment Modeling
Configuration Management Auto Scaling Access Management
Resource Management
Why is it hard to scale apps? • Receive capacity alarm
• Provision new server
• Install required software
• Deploy app
• Install database drivers
• Securely send database connection info (e.g., passwords)
• Health check
• Add to load balancer
Ap
p
EL
B
AZ AZ
Amazon RDS
DB
Auto Scaling
How OpsWorks scales apps • What you do:
– Define application
– Define auto scaling
• What OpsWorks does: – Receive capacity alarm
– Provision new server
– Install required software
– Deploy app
– Install database drivers
– Securely send database connection info (e.g., passwords)
– Health check
– Add to load balancer
What about database scaling? • Provision server
• Install HAProxy
• Create HAProxy configuration file with RDS instances
• Scale load balancer to accommodate load
• Health check load balancer
• When add/remove RDS read replicas, update HAProxy configuration
Ap
p
EL
B
AZ AZ Auto Scaling
HA
Pro
xy
AZ AZ
Amazon RDS DB
How OpsWorks scales databases • What you do:
– Create HAProxy layer
– Add/remove RDS read replicas
• What OpsWorks does: – Provision server
– Install HAProxy
– Create HAProxy configuration file with RDS instances
– Scale load balancer to accommodate load
– Health check load balancer
– When add/remove RDS instances, update HAProxy configuration
What’s hard about deploying changes?
• For any change, such as database credentials, source code, package updates, security fixes – Authorize requestor
– Get change onto each server
– Perform update
– Verify
– Make logs available
• OpsWorks handles these tasks for you
Demo
Questions?
@AWSOpsWorks
aws.amazon.com/opsworks
Dynamic Configuration
Modeling in OpsWorks
With Dev, Test, and Prod
Amazon
S3
Pro
d -
su
bn
et
Web
server
App
server
Amazon RDS
ELB
Pro
duction
Dev -
su
bn
et
Auto Scaling group
Web
server
Auto Scaling group
App
server
Amazon RDS
ELB
Develo
pm
ent
Te
st
- su
bn
et
Web
server
App
server
Amazon RDS
ELB
Test
CI/CD
Server
Project mgt
Ticketing
Server
Amazon
RDS Version
Control
Shared Service Subnet
Automation
Master