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

  • 1,134 views
Uploaded on

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 …

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.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,134
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
61
Comments
0
Likes
5

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. © 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. Deploy, Manage, and Scale Your Apps with OpsWorks and Elastic Beanstalk Chris Barclay Evan Brown Product Manager Community Manager July 10, 2014
  • 2. 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
  • 3. 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)
  • 4. 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?
  • 5. You need to deliver resilient applications with less work Source: http://xkcd.com/844/
  • 6. Elastic Beanstalk OpsWorks CloudFormation Application Container Application Automation Templated Provisioning
  • 7. Jane Doe, Elastic Beanstalk developer
  • 8. Jane Doe, Elastic Beanstalk developer • Developer • Builds web apps, APIs, and handles some background processing workloads • Needs some flexibility to customize her app environments • Wants simple API to monitor, view logs, scale, and deploy her apps
  • 9. The demonstration • A PHP application that stores text messages in a database • Uses Elastic Load Balancing and Amazon RDS Load-based Auto scaling PHP App Server PHP App Server PHP App Server
  • 10. Demo time • Checkout app from GitHub • Integrate with the eb command line tool • Deploy from the command line • View the console • Change, commit, and deploy
  • 11. Elastic Beanstalk Supports… Java PHP Python Ruby .NET Node.js
  • 12. Deploy Your App for Test Alert Log Mon App AZ http://your-app.elasticbeanstalk.com
  • 13. Deploy Your App for Scale Alert Log Mon App AZ ELB http://your-app.elasticbeanstalk.com
  • 14. Deploy Your Background Processing App Alert Log Mon App AZ SQS QueueProducers
  • 15. Deploy With Tools You Know
  • 16. Deploy With Tools You Know
  • 17. Deploy With Tools You Know Alert Log Mon App AZ ELB http://your-app.elasticbeanstalk.com
  • 18. Customize Your Servers, Simply
  • 19. Customize Your Servers, Simply
  • 20. Store Sensitive Config, Safely Alert Log Mon App AZ ELB 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#
  • 21. Store Sensitive Config, Safely Alert Log Mon App AZ ELB 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#
  • 22. Store Sensitive Config, Safely Alert Log Mon App AZ ELB 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#
  • 23. John Doe, OpsWorks Developer
  • 24. John Doe, 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
  • 25. Benefits • Any architecture • Configuration as code • Automation to run at scale • Control any component
  • 26. Dynamic Configuration
  • 27. Dynamic Configuration
  • 28. Dynamic Configuration
  • 29. Dynamic Configuration
  • 30. Dynamic Configuration
  • 31. Dynamic Configuration
  • 32. Dynamic Configuration
  • 33. 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 …
  • 34. The demonstration • The same application demonstrated with Elastic Beanstalk • Also uses Ganglia for application monitoring Load-based Auto scaling PHP App Server PHP App Server PHP App Server Ganglia Server
  • 35. Demo time • Model application using layers and apps • Customize configuration using recipes • Deployment options • Review logs • Manage user permissions
  • 36. AWS CloudFormation: Model Your App • Document, version control, and share your applications and infrastructure as a JSON document • Provision app and other AWS resources (VPC, DynamoDB, etc) from a template • Repeatable, reliable deployments for test/dev/prod in any AWS Region
  • 37. Elastic Beanstalk or OpsWorks Resource AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon
  • 38. Database Resources Users Table (DynamoDB) MySQL Primary (RDS) AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon
  • 39. Object Storage and Security Resources Users Table (DynamoDB) MySQL Primary (RDS) App Storage (S3) IAM Instance Profile AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon
  • 40. Deployed as a CloudFormation Stack Users Table (DynamoDB) MySQL Primary (RDS) App Storage (S3) IAM Instance Profile AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon
  • 41. Modeled in a Template File Users Table (DynamoDB) MySQL Primary (RDS) App Storage (S3) IAM Instance Profile AppELB AZ your-app.elasticbeanstalk.com Alert Log Mon CloudFormation Template
  • 42. 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 AWS Elastic Beanstalk and AWS OpsWorks • How to use AWS CloudFormation templates to document, version control, and share your application configuration
  • 43. Learn More Get started with Elastic Beanstalk http://amzn.to/1dh8QkU Follow us @aws_eb Get started with OpsWorks http://amzn.to/1bSHOPN Follow us @AWSOpsWorks Get started with CloudFormation http://amzn.to/1m11Z3K Follow us at @AWSCloudFormer
  • 44. Thank You!