t3 - deploy, manage, and scale your apps

65
AWS Summit 2014 Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk Guy Ernest Solutions Architect @guyernest

Upload: amazon-web-services

Post on 15-Jan-2015

2.535 views

Category:

Technology


2 download

DESCRIPTION

AWS offers a number of services that help you easily deploy and run applications in the cloud. Come to this session to learn how to choose among these options. Through interactive demonstrations, this session will show you how to get an application running using AWS OpsWorks and AWS Elastic Beanstalk application management services. You will also learn how to use AWS CloudFormation templates to document, version control, and share your application configuration. This session will cover topics like application updates, customization and working with resources such as load balancers and databases. This session is recommended for people who understand AWS and want to know more about deployment options for their applications.

TRANSCRIPT

Page 1: T3 - Deploy, manage, and scale your apps

AWS Summit 2014

Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk

Guy Ernest Solutions Architect @guyernest

Page 2: T3 - Deploy, manage, and scale your apps

What you will learn in this session •  How to choose among the AWS services that

can help you run applications more easily •  How to get an application running using AWS

Elastic Beanstalk and AWS OpsWorks •  How to use AWS CloudFormation templates to

document, version control, and share your application configuration

Page 3: T3 - Deploy, manage, and scale your apps

1. Make dough 2. Roll and cut the dough 3. Separate donuts from holes 4. Let the dough rise 5. Prepare the glaze 6. Frying time! 7. Let them dry 8. Apply glaze 9. Add sprinkles (optional)

flickr.com/photos/noriqnub/7127567413

Page 4: T3 - Deploy, manage, and scale your apps

It’s not just deployments… •  How do I scale my environment? •  What is i-dc4297f2 used for? •  How do I know when my application is

unhealthy? •  Where do I get logs? •  Who has SSH access?

Page 5: T3 - Deploy, manage, and scale your apps

You need to deliver resilient applications with less work

Source: http://xkcd.com/844/

Page 6: T3 - Deploy, manage, and scale your apps

AWS Elastic Beanstalk

AWS OpsWorks

AWS CloudFormation

Application Container Application Automation Templated Provisioning

Page 7: T3 - Deploy, manage, and scale your apps

Jane Doe, Elastic Beanstalk developer

Page 8: T3 - Deploy, manage, and scale your apps

Jane Doe, Elastic Beanstalk developer •  Developer •  Builds web apps, APIs, and handles some

background processing workloads •  Needs some flexibility to customize her app

environments and get it fast to testing •  Wants simple API to monitor, view logs, scale,

and deploy her apps

Page 9: T3 - Deploy, manage, and scale your apps

The demonstration •  A Massive Voting App

using HTML, Java and Node.js

•  Uses Elastic Load Balancing and Amazon DynamoDB

Page 10: T3 - Deploy, manage, and scale your apps
Page 11: T3 - Deploy, manage, and scale your apps
Page 12: T3 - Deploy, manage, and scale your apps
Page 13: T3 - Deploy, manage, and scale your apps
Page 14: T3 - Deploy, manage, and scale your apps
Page 15: T3 - Deploy, manage, and scale your apps
Page 16: T3 - Deploy, manage, and scale your apps
Page 17: T3 - Deploy, manage, and scale your apps
Page 18: T3 - Deploy, manage, and scale your apps
Page 19: T3 - Deploy, manage, and scale your apps
Page 20: T3 - Deploy, manage, and scale your apps
Page 21: T3 - Deploy, manage, and scale your apps
Page 22: T3 - Deploy, manage, and scale your apps
Page 23: T3 - Deploy, manage, and scale your apps
Page 24: T3 - Deploy, manage, and scale your apps
Page 25: T3 - Deploy, manage, and scale your apps
Page 26: T3 - Deploy, manage, and scale your apps
Page 27: T3 - Deploy, manage, and scale your apps
Page 28: T3 - Deploy, manage, and scale your apps

Elastic Beanstalk Supports…

Java PHP Python Ruby .NET Node.js

Page 29: T3 - Deploy, manage, and scale your apps

Deploy Your App for Test

Alert

Log

Mon

App

AZ

http://your-app.elasticbeanstalk.com

Page 30: T3 - Deploy, manage, and scale your apps

Deploy Your App for Scale

Alert

Log

Mon

App

AZ

ELB

http://your-app.elasticbeanstalk.com

Page 31: T3 - Deploy, manage, and scale your apps

Deploy Your Background Processing App

Alert

Log

Mon

App

AZ

Amazon SQS queue Producers

Page 32: T3 - Deploy, manage, and scale your apps

Deploy With Tools You Know

Alert

Log

Mon

App

AZ

ELB

http://your-app.elasticbeanstalk.com

v1.1 V1.2b V1.0

Page 33: T3 - Deploy, manage, and scale your apps

John Doe, AWS OpsWorks Developer

Page 34: T3 - Deploy, manage, and scale your apps

John Doe, AWS OpsWorks Developer •  Developer •  Builds apps with broad architectural patterns

and software; e.g., MongoDB and Solr •  Needs a high degree of flexibility to customize

app environments •  Wants APIs to control all aspects of application

operations including deployments and scaling

Page 35: T3 - Deploy, manage, and scale your apps

Benefits •  Any architecture •  Configuration as code •  Automation to run at scale •  Control any component

Page 36: T3 - Deploy, manage, and scale your apps

Deployments •  Application deployment from your favorite

repositories •  Supports patterns such as 1-box deployments •  Run scripts on-demand for runbook automation •  Restrict deployment and ssh access to specific

users

Page 37: T3 - Deploy, manage, and scale your apps

Dynamic Configuration

Page 38: T3 - Deploy, manage, and scale your apps

Dynamic Configuration

Page 39: T3 - Deploy, manage, and scale your apps

Dynamic Configuration

Page 40: T3 - Deploy, manage, and scale your apps

Dynamic Configuration

Page 41: T3 - Deploy, manage, and scale your apps

Dynamic Configuration

Page 42: T3 - Deploy, manage, and scale your apps

Dynamic Configuration

Page 43: T3 - Deploy, manage, and scale your apps

Dynamic Configuration

Page 44: T3 - Deploy, manage, and scale your apps

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 …

Page 45: T3 - Deploy, manage, and scale your apps

“White board you environment”

Page 46: T3 - Deploy, manage, and scale your apps
Page 47: T3 - Deploy, manage, and scale your apps

Model your application

Page 48: T3 - Deploy, manage, and scale your apps

Manage Your Instances

Page 49: T3 - Deploy, manage, and scale your apps
Page 50: T3 - Deploy, manage, and scale your apps
Page 51: T3 - Deploy, manage, and scale your apps
Page 52: T3 - Deploy, manage, and scale your apps

Deploy your Apps

Page 53: T3 - Deploy, manage, and scale your apps
Page 54: T3 - Deploy, manage, and scale your apps

Protect your environment

Page 55: T3 - Deploy, manage, and scale your apps
Page 56: T3 - Deploy, manage, and scale your apps

AWS CloudFormation: Model Your App

•  Document, version control, and share your applications and infrastructure as a JSON document

•  Provision app and other AWS resources (Amazon VPC, DynamoDB, etc.) from a template

•  Repeatable, reliable deployments for test/dev/prod in any AWS region

Page 57: T3 - Deploy, manage, and scale your apps

Elastic Beanstalk or AWS OpsWorks Resource

App

EL

B

AZ

your-app.elasticbeanstalk.com

Alert

Log

Mon

Page 58: T3 - Deploy, manage, and scale your apps

Database Resources

Users Table (DynamoDB)

MySQL Primary (RDS)

App

EL

B

AZ

your-app.elasticbeanstalk.com

Alert

Log

Mon

Page 59: T3 - Deploy, manage, and scale your apps

Object Storage and Security Resources

Users Table (DynamoDB)

MySQL Primary (RDS)

App Storage (S3)

IAM Instance Profile

App

EL

B

AZ

your-app.elasticbeanstalk.com

Alert

Log

Mon

Page 60: T3 - Deploy, manage, and scale your apps

Deployed as an AWS CloudFormation Stack

Users Table (Amazon

DynamoDB)

MySQL Primary (Amazon RDS)

App Storage (Amazon S3)

IAM Instance Profile

App

EL

B

AZ

your-app.elasticbeanstalk.com

Alert

Log

Mon

Page 61: T3 - Deploy, manage, and scale your apps

Modeled in a Template File

Users Table (Amazon

DynamoDB)

MySQL Primary (Amazon RDS)

App Storage (Amazon S3)

IAM Instance Profile

App

EL

B

AZ

your-app.elasticbeanstalk.com

Alert

Log

Mon

AWS CloudFormation

Template

Page 62: T3 - Deploy, manage, and scale your apps

?$ $0 + $0 + $0 = $0

Page 63: T3 - Deploy, manage, and scale your apps

What we discussed •  How to choose among the AWS services that

can help you run applications more easily •  How to get an application running using Elastic

Beanstalk and AWS OpsWorks •  How to use AWS CloudFormation templates to

document, version control, and share your application configuration

Page 64: T3 - Deploy, manage, and scale your apps

Learn More Get started with Elastic Beanstalk http://amzn.to/1dh8QkU Follow us @aws_eb Get started with AWS OpsWorks http://amzn.to/1bSHOPN Follow us @AWSOpsWorks Get started with AWS CloudFormation http://amzn.to/1m11Z3K Follow us at @AWSCloudFormer

Page 65: T3 - Deploy, manage, and scale your apps

Thank You!

AWS EXPERT? GET CERTIFIED! aws.amazon.com/certification Guy Ernest

Solutions Architect @guyernest