t3 - deploy, manage, and scale your apps

Post on 15-Jan-2015

2.535 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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

AWS Summit 2014

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

Guy Ernest Solutions Architect @guyernest

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

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

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?

You need to deliver resilient applications with less work

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

AWS Elastic Beanstalk

AWS OpsWorks

AWS CloudFormation

Application Container Application Automation Templated Provisioning

Jane Doe, Elastic Beanstalk developer

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

The demonstration •  A Massive Voting App

using HTML, Java and Node.js

•  Uses Elastic Load Balancing and Amazon DynamoDB

Elastic Beanstalk Supports…

Java PHP Python Ruby .NET Node.js

Deploy Your App for Test

Alert

Log

Mon

App

AZ

http://your-app.elasticbeanstalk.com

Deploy Your App for Scale

Alert

Log

Mon

App

AZ

ELB

http://your-app.elasticbeanstalk.com

Deploy Your Background Processing App

Alert

Log

Mon

App

AZ

Amazon SQS queue Producers

Deploy With Tools You Know

Alert

Log

Mon

App

AZ

ELB

http://your-app.elasticbeanstalk.com

v1.1 V1.2b V1.0

John Doe, AWS OpsWorks Developer

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

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

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

Dynamic Configuration

Dynamic Configuration

Dynamic Configuration

Dynamic Configuration

Dynamic Configuration

Dynamic Configuration

Dynamic Configuration

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 …

“White board you environment”

Model your application

Manage Your Instances

Deploy your Apps

Protect your environment

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

Elastic Beanstalk or AWS OpsWorks Resource

App

EL

B

AZ

your-app.elasticbeanstalk.com

Alert

Log

Mon

Database Resources

Users Table (DynamoDB)

MySQL Primary (RDS)

App

EL

B

AZ

your-app.elasticbeanstalk.com

Alert

Log

Mon

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

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

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

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

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

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

Thank You!

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

Solutions Architect @guyernest

top related