Preamble: Intro to
Cloud Computing
Presented by:
Aater Suleman, PhD
Bleeding Edge Web Meetup, Austin: May 28th, 2014
Cloud Computing has turned computing into a Utility.
Changes to Computer Thinking - Stephen Fry Explains Cloud Computing -...
Pay-per-use Dynamically scale
processing, storage and
memory
No more guessing work
on the hardware
requirements
Compliance Security Reliability Scalability
is as a package available to any business - irrespective of its type and size!
“Friends don't let their friends build data centers”
-Charles Phillips, CEO of Infor
AWS Summit 2014
Largest of the providers
Most streamlined interface
Most mature automation
Lots of features
Amazon Web Services
Photo by C...
A Crash Course on AWS for
App Developers
Who am I?
Aater Suleman
Geek, Architect, Developer, Ops ⇒ DevOps
Co-founder & CEO Flux7
Part-time UT Austin Professor
Flux...
★ Front-end HTML/JS developers
★ Backend developers
★ Operations folks
★ DevOps
★ Managers/executives
Quick Poll
HOW MANY?
★ Enterprise ( > 1B in cap )
★ Mid-tier
★ SMBs
Quick Poll
HOW MANY?
AWS (or any cloud) changes
How to architect?
How to develop?
How to manage?
Architecting for AWS
AWS Evolution in 3-steps
Sample Web-app
DB App Web
Mem
Cache
Varnish
Static
storage DNSQueue
NoSQL
DB
Worry List
DB backup
Assets backup
Uptime of Web
Uptime of App
Uptime of DB
Uptime of static hosting
Traffic spikes
DoS at...
0. Get AWS servers and setup
DB App Web
Mem
Cache
Varnish
Static
storage DNSQueue
NoSQL
DB
DB backup
Assets backup
Uptime of Web
Uptime of App
Uptime of DB
Uptime of static hosting
Traffic spikes
DoS attacks
Secur...
1. Replace tiers with AWS Services
DB App Web
Mem
Cache
Varnish
Static
storage DNSQueue
NoSQL
DB
Queue
1. Replace tiers with AWS Services
DNS
App Web
DynamoDB SQS
RDS
Elasticache CloudFront
S3
Servers aka. Instances
Amazon EC2
AMIs aka. Images Volumes and Snapshots
Traditional DB as a service.
Amazon RDS
Fast
Geographically distributed
Ability to cache static and dynamic content
Amazon CloudFront
Caching layer (Think Varnish...
In-memory caching tier for your application
Spin up with a single click and start using
Redis and Memcached are available
...
Object storage:
High Availability (99.99%)
High Durability (99.999999999%)
Fast
Amazon S3
Amazon DynamoDB
NoSQL DB as a service
Create a new Column-based NoSQL in minutes
Other Services
Route53 :
Amazon’s DNS servers
SNS :
For server-to-server and server-to-
man communication
SQS :
On-demand ...
DB backup
Assets backup
Uptime of Web
Uptime of App
Uptime of DB
Uptime of static hosting
Traffic spikes
DoS attacks
Secur...
Whether or not to replace a tier
What is the availability requirement?
Can i achieve the uptime using EC2 servers? Will it...
2. Secure
DNS
App Web
DynamoDB SQS
RDS
Elasticache CloudFront
S3
Security Groups
Security Group
VPC
Security Services
2. Secure
DNS
App Web
DynamoDB SQS
RDS
Elasticache
CloudFront
S3
VPC
Subnet
Subnet
Subnet
Subnet
3. Leverage Elasticity
DNS
App
Web
DynamoDB SQS
RDS
Elasticache
CloudFront
S3
VPC
Subnet
Subnet
Subnet
Subnet
AppApp Web
W...
Auto-scaling Groups
Scaling Services
Elastic BeanStalk OpsWorks
Separate stateful services from stateless services
Do not rely on server IP addresses being fixed
Bake your server’s image...
DB backup
Assets backup
Uptime of Web
Uptime of App
Uptime of DB
Uptime static hosting
Traffic spikes
DoS attacks
Security...
DNS
App
Web
DynamoDB SQS
RDS
Elasticache
CloudFront
S3
VPC
Subnet
Subnet
Subnet
Subnet
AppApp Web
Web
How to code?
Cattle, not pets!
Have numbers assigned
Are usually identical
Replaced when not in good health
You need more, you buy more...
Servers are cattle, don’t use IP addresses and host name in code
Use an existing service whenever possible
Don’t mix state...
How to code?
Developer Local Test QA Production
Least expensive
but most executed
Most expensive but
least executed
AppWeb
DB
LogStash
Mem
$
HTTP
SSH
Virtualbox VM
App Code
and Logs
Laptop
devenv.sh for
interacting with
the setup
Docker C...
How to manage?
How to manage?
How to deploy code to an auto-scaling group?
How to configure the servers in this dynamic environment?
How ...
How to deploy code to an auto scaling group ?
Don’t deploy new code to a server
Make a new server and replace the old one ...
How do I manage and patch my servers?
Don’t. Create deployment scripts and just create a new
image
How to create/re-create environments
on failure?
Automate the process of creating the entire environment
using AWS CloudFo...
Other Lessons
Configuration management
Setup CI/CD
Thank You!
Twitter: @Flux7Labs
Website: www.flux7.com
Upcoming SlideShare
Loading in...5
×

A Crash Course on AWS for App Developers

599

Published on

Talk give by Flux7's CEO, Aater Suleman, at the Bleeding Edge Web Meetup, Austin on May 28th 2014. The talk covers the following:

1. Quick introduction to Cloud Computing
2. Why AWS? How a traditional web-app can be run on AWS - the services and changes needed
3. A walk-through of AWS services
4. Web Developer Productivity
5. Lessons Learnt

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
599
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

A Crash Course on AWS for App Developers

  1. 1. Preamble: Intro to Cloud Computing Presented by: Aater Suleman, PhD Bleeding Edge Web Meetup, Austin: May 28th, 2014
  2. 2. Cloud Computing has turned computing into a Utility. Changes to Computer Thinking - Stephen Fry Explains Cloud Computing - A Must Watch!
  3. 3. Pay-per-use Dynamically scale processing, storage and memory No more guessing work on the hardware requirements
  4. 4. Compliance Security Reliability Scalability is as a package available to any business - irrespective of its type and size!
  5. 5. “Friends don't let their friends build data centers” -Charles Phillips, CEO of Infor AWS Summit 2014
  6. 6. Largest of the providers Most streamlined interface Most mature automation Lots of features Amazon Web Services Photo by Cacakian | CC BY
  7. 7. A Crash Course on AWS for App Developers
  8. 8. Who am I? Aater Suleman Geek, Architect, Developer, Ops ⇒ DevOps Co-founder & CEO Flux7 Part-time UT Austin Professor Flux7: Cloud and DevOps Solutions Cloud and Devops for Web teams Enterprise DevOps management Clients:
  9. 9. ★ Front-end HTML/JS developers ★ Backend developers ★ Operations folks ★ DevOps ★ Managers/executives Quick Poll HOW MANY?
  10. 10. ★ Enterprise ( > 1B in cap ) ★ Mid-tier ★ SMBs Quick Poll HOW MANY?
  11. 11. AWS (or any cloud) changes How to architect? How to develop? How to manage?
  12. 12. Architecting for AWS
  13. 13. AWS Evolution in 3-steps
  14. 14. Sample Web-app DB App Web Mem Cache Varnish Static storage DNSQueue NoSQL DB
  15. 15. Worry List DB backup Assets backup Uptime of Web Uptime of App Uptime of DB Uptime of static hosting Traffic spikes DoS attacks Security breaches
  16. 16. 0. Get AWS servers and setup DB App Web Mem Cache Varnish Static storage DNSQueue NoSQL DB
  17. 17. DB backup Assets backup Uptime of Web Uptime of App Uptime of DB Uptime of static hosting Traffic spikes DoS attacks Security breaches Worry List
  18. 18. 1. Replace tiers with AWS Services DB App Web Mem Cache Varnish Static storage DNSQueue NoSQL DB Queue
  19. 19. 1. Replace tiers with AWS Services DNS App Web DynamoDB SQS RDS Elasticache CloudFront S3
  20. 20. Servers aka. Instances Amazon EC2 AMIs aka. Images Volumes and Snapshots
  21. 21. Traditional DB as a service. Amazon RDS
  22. 22. Fast Geographically distributed Ability to cache static and dynamic content Amazon CloudFront Caching layer (Think Varnish!)
  23. 23. In-memory caching tier for your application Spin up with a single click and start using Redis and Memcached are available Amazon Elasticache
  24. 24. Object storage: High Availability (99.99%) High Durability (99.999999999%) Fast Amazon S3
  25. 25. Amazon DynamoDB NoSQL DB as a service Create a new Column-based NoSQL in minutes
  26. 26. Other Services Route53 : Amazon’s DNS servers SNS : For server-to-server and server-to- man communication SQS : On-demand queuing service SWF : Simple Workflow
  27. 27. DB backup Assets backup Uptime of Web Uptime of App Uptime of DB Uptime of static hosting Traffic spikes DoS attacks Security breaches Worry List
  28. 28. Whether or not to replace a tier What is the availability requirement? Can i achieve the uptime using EC2 servers? Will it be cheaper? Will I save in terms of code changes?
  29. 29. 2. Secure DNS App Web DynamoDB SQS RDS Elasticache CloudFront S3
  30. 30. Security Groups Security Group VPC Security Services
  31. 31. 2. Secure DNS App Web DynamoDB SQS RDS Elasticache CloudFront S3 VPC Subnet Subnet Subnet Subnet
  32. 32. 3. Leverage Elasticity DNS App Web DynamoDB SQS RDS Elasticache CloudFront S3 VPC Subnet Subnet Subnet Subnet AppApp Web Web
  33. 33. Auto-scaling Groups Scaling Services Elastic BeanStalk OpsWorks
  34. 34. Separate stateful services from stateless services Do not rely on server IP addresses being fixed Bake your server’s images Auto-scaling Checklist
  35. 35. DB backup Assets backup Uptime of Web Uptime of App Uptime of DB Uptime static hosting Traffic spikes DoS attacks Security breaches Worry List
  36. 36. DNS App Web DynamoDB SQS RDS Elasticache CloudFront S3 VPC Subnet Subnet Subnet Subnet AppApp Web Web
  37. 37. How to code?
  38. 38. Cattle, not pets! Have numbers assigned Are usually identical Replaced when not in good health You need more, you buy more Has a personalized name Unique, Special and Cared for Taken care when ill Src: Gavin McCance from CERN
  39. 39. Servers are cattle, don’t use IP addresses and host name in code Use an existing service whenever possible Don’t mix stateful and stateless services Script application deployment or use configuration management Setup local developer environments Five Take Aways
  40. 40. How to code? Developer Local Test QA Production Least expensive but most executed Most expensive but least executed
  41. 41. AppWeb DB LogStash Mem $ HTTP SSH Virtualbox VM App Code and Logs Laptop devenv.sh for interacting with the setup Docker Containers Redis Src: Using Docker to Improve Web Developer Productivity
  42. 42. How to manage?
  43. 43. How to manage? How to deploy code to an auto-scaling group? How to configure the servers in this dynamic environment? How to create/re-create environments on failure?
  44. 44. How to deploy code to an auto scaling group ? Don’t deploy new code to a server Make a new server and replace the old one with it Read More on the 6 deployment methods here
  45. 45. How do I manage and patch my servers? Don’t. Create deployment scripts and just create a new image
  46. 46. How to create/re-create environments on failure? Automate the process of creating the entire environment using AWS CloudFormation templates. Create a new environment with one click.
  47. 47. Other Lessons Configuration management Setup CI/CD
  48. 48. Thank You! Twitter: @Flux7Labs Website: www.flux7.com
  1. ¿Le ha llamado la atención una diapositiva en particular?

    Recortar diapositivas es una manera útil de recopilar información importante para consultarla más tarde.

×