(app202) deploy, manage, scale apps w/ aws opsworks & aws elastic beanstalk | aws re:invent 2014

42
November 12th, 2014 | Las Vegas, NV Chris Barclay and Abhishek Singh, Amazon Web Services

Upload: amazon-web-services

Post on 27-Jun-2015

340 views

Category:

Technology


1 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 shows you how to get an application running using AWS OpsWorks and AWS Elastic Beanstalk application management services. You also learn how to use AWS CloudFormation templates to document, version control, and share your application configuration. This session covers application updates, customization, and working with resources such as load balancers and databases.

TRANSCRIPT

Page 1: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

November 12th, 2014 | Las Vegas, NV

Chris Barclay and Abhishek Singh, Amazon Web Services

Page 2: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 3: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 4: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 5: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

You need to

deliver resilient

applications with

less work

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

Page 6: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Elastic Beanstalk OpsWorks CloudFormation

Application container Application automation Templated provisioning

Page 7: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 8: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 9: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Java PHP Python Ruby .NET Node.js

Docker

Page 10: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 11: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 12: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

Page 13: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

http://your-app.elasticbeanstalk.com

Page 14: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

Page 15: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

SQS queueProducers

Page 16: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 17: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 18: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Load-based autoscaling

PHP

app

server

PHP

app

server

PHP

app

server

Page 19: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 20: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

import os

some_var=os.environ.get(‘API_CREDS’)

String some_var = System.getProperty(‘API_CREDS’)

NameValueCollection appConfig = ConfigurationManager.AppSettings;

String param = appConfig[”API_CREDS"];

Python

Java

C#

Page 21: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

import os

some_var=os.environ.get(‘API_CREDS’)

String some_var = System.getProperty(‘API_CREDS’)

NameValueCollection appConfig = ConfigurationManager.AppSettings;

string param = appConfig[”API_CREDS"];

Python

Java

C#

Page 22: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Alert

Log

Mon

Ap

p

AZ

EL

B

http://your-app.elasticbeanstalk.com

import os

some_var=os.environ.get(‘API_CREDS’)

String some_var = System.getProperty(‘API_CREDS’)

NameValueCollection appConfig = ConfigurationManager.AppSettings;

string param = appConfig[”API_CREDS"];

Python

Java

C#

Page 23: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 24: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 25: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 26: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

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 27: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 28: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 29: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 30: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Load-based Auto scaling

PHP

App

Server

PHP

App

Server

PHP

App

Server

HA

Proxy

Page 31: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 32: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 33: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

Page 34: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Users table

(DynamoDB)

MySQL primary

(Amazon RDS)

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

Page 35: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Users table

(DynamoDB)

MySQL primary

(Amazon RDS)

App Storage

(Amazon S3)

IAM instance profile

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

Page 36: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Users table

(DynamoDB)

MySQL primary

(RDS)

App storage

(Amazon S3)

IAM instance profile

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

Page 37: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Users table

(DynamoDB)

MySQL primary

(Amazon RDS)

App storage

(Amazon S3)

IAM instance profile

Ap

pE

LB

AZ

your-app.com

Alert

Log

Mon

AWS

CloudFormation

template

Page 38: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 39: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

http://amzn.to/1dh8QkU

http://amzn.to/1bSHOPN

http://amzn.to/1m11Z3K

Come see us:

Dev Chat in the

Developer Lounge

3:15pm

Thursday, Nov 13

Page 40: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014
Page 41: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

Thank you!

Page 42: (APP202) Deploy, Manage, Scale Apps w/ AWS OpsWorks & AWS Elastic Beanstalk | AWS re:Invent 2014

http://bit.ly/awsevals