SlideShare uma empresa Scribd logo
1 de 28
 Matt Tavis           Solutions Architect         	mtavis@amazon.com Architectural Design Patterns in Cloud Computing
They sent me here to talk But I am here to listen Please Send Feedback mtavis@amazon.com
Cloud Best Practices Whitepaper Prescriptive guidance to Cloud Architects Just Search for “Cloud Best Practices” to find the link http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf
Cloud Computing Attributes What makes the Cloud so attractive Abstract Resources Focus on your needs, not on hardware specs. As your needs change, so should your resources. On-Demand Provisioning Ask for what you need, exactly when you need it.  Get rid of it when you don’t need Scalability in minutes Scale out or in depending on usage needs. Pay per consumption No contracts or long-term commitments. Pay only for what you use. Efficiency of Experts Utilize the skills, knowledge and resources of experts.
The “Living and Evolving” Cloud AWS services and basic terminology Most Applications Need: Compute Storage Messaging Payment Distribution Scale Analytics Your Application Amazon RDS Amazon SNS Topics Amazon CloudFront Amazon SQS Queues Amazon SimpleDB Domains Payment : Amazon FPS/ DevPay Amazon Elastic MapReduce JobFlows Amazon S3 Objects and Buckets Auto-Scaling Elastic LB Cloud Watch Amazon EC2 Instances(On-Demand, Reserved, Spot) EBS Volumes Snapshots Amazon  Virtual Private Cloud Amazon WorldwidePhysical Infrastructure  (Geographical Regions, Availability Zones, Edge Locations)
“At Amazon, Every Day is a Launch Day” The “Living and Evolving” Cloud New Features and Services » Amazon EC2 with Windows Server      2008,  ,[object Object]
Boot from Amazon EBS» Amazon CloudFront Streaming » Amazon VPC enters Unlimited Beta » AWS Region in Northern California » International Support for AWS      Import/Export » AWS Multi-Factor Authentication » Virtual Private Cloud » Lower Reserved Instance Pricing » Reserved Instances in EU Region » Elastic MapReduce » SQS in EU Region » Amazon RDS » High-Memory Instances » Lower EC2 Pricing » New SimpleDB Features » FPS General Availability » Amazon SNS » AWS Security Center 2009 Jan 2010 Jan Jul Sep Oct Dec Aug Nov Feb Mar Apr Jun May Feb Mar » Amazon EC2 with Windows » Amazon EC2 in EU Region » AWS Toolkit for Eclipse » Amazon EC2 Reserved     Instances » Amazon CloudFront        Private Content » SAS70 Type II Audit » AWS SDK for .NET » Amazon Elastic MapReduce     in Europe » Amazon EC2 Reserved Instances      with Windows, Extra Large High      Memory Instances » Amazon S3 Versioning Feature » Consolidated Billing for AWS » Lower pricing for Outbound Data      Transfer » AWS Import/Export » New CloudFront Feature » Monitoring, Auto Scaling  & Elastic Load Balancing » EBS Shared Snapshots » SimpleDB in EU Region » Monitoring, Auto Scaling &     Elastic Load Balancing in EU  » Lower pricing tiers for     Amazon CloudFront » AWS Management Console
Scalability Build Scalable Architecture on AWS A scalable architecture is critical to take advantage of a scalable infrastructure Characteristics of Truly Scalable Service Increasing resources results in a proportional increase in performance A scalable service is capable of handling heterogeneity A scalable service is operationally efficient A scalable service is resilient A scalable service becomes more cost effective when it grows
Cloud Architecture Lessons using Amazon Web Services 1. Design for failure and nothing fails 2. Loose coupling sets you free 3. Implement “Elasticity” 4. Build Security in every layer 5. Don't fear constraints 6. Think Parallel 7. Leverage different storage options
1. Design for Failure and nothing will really fail "Everything fails, all the time" Werner Vogels, CTO Amazon.com Avoid single points of failure Assume everything fails, and design backwards Goal: Applications should continue to function even if the underlying physical hardware fails or is removed or replaced.
2. Loose coupling sets you free The looser they're coupled, the bigger they scale Independent components Design everything as a Black Box De-coupling for Hybrid models Load-balance clusters Use Amazon SQS as Buffers Tight Coupling Controller A Controller B Controller C Q Q Q Loose Coupling using Queues Controller A Controller B Controller C
3. Implement Elasticity Elasticity is fundamental property of the Cloud Don’t assume healthor fixed location of components Use designs that are resilient to reboot and re-launch Bootstrapyour instances: Instances on boot will ask a question “Who am I & what is my role?” Enable dynamic configuration Use Auto-scaling (Free) Use Elastic Load Balancing on multiple layers Use configurations in SimpleDB to bootstrap instance
4. Build Security in every layer Design with Security in mind With cloud, you lose a little bit of physical control but not your ownership Create distinct Security Groups for each Amazon EC2 cluster Use group-based rules for controlling access between layers Restrict external access to specific IP ranges Encrypt data “at-rest” in Amazon S3 Encrypt data “in-transit” (SSL) Consider encrypted file systems in EC2 for sensitive data Rotate your AWS Credentials, Pass in as arguments encrypted  Use MultiFactor Authentication
4. Build Security in every layer Design with Security in mind “Web” Security Group: TCP 800.0.0.0/0 TCP 4430.0.0.0/0 TCP22	“App” “App” Security Group: TCP 8080“Web” TCP 22172.154.0.0/16 TCP22	“App” “DB” Security Group: TCP 3306“App” TCP3306163.128.25.32/32 TCP22	“App”
5. Don't fear constraints Re-think architectural constraints More RAM? Distribute load across machines Shared distributed cache Better IOPS on my database?  Multiple read-only / sharding / DB clustering Hardware Config does not match? Implement Elasticity Your hardware failed or messed up config? simply throw it away and switch to new hardware with no additional cost Performance Caching at different levels (Page, Render, DB)
6. Think Parallel Serial and Sequential is now history Experiment different architectures in parallel Multi-treading and Concurrent requests to cloud services Run parallel MapReduce Jobs Use Elastic Load Balancing to distribute load across multiple servers  Decompose a Job into its simplest form
7. Leverage many storage options One size DOES NOT fit all Amazon S3: large static objects Amazon CloudFront: content distribution Amazon SimpleDB: simple data indexing/querying Amazon EC2 local disc drive : transient data Amazon EBS: persistent storage for any RDBMS + Snapshots on S3 Amazon RDS: RDBMS service - Automated and Managed MySQL
7. Leverage many storage options Which storage option to use when?
Applying Cloud Architecture Lessons Moving a Web Architecture to the Cloud
MyWebSite.com Exterior Firewall Hardware or Software Solution to open standard Ports (80, 443) Web Load BalancerHardware or Software solution to distribute traffic over web servers LB Web Tier Fleet of machines handling HTTP requests. Web Server Web Server Backend Firewall Limits access to application tier from web tier LB App Load Balancer Hardware or Software solution to spread traffic over app servers  App Server Tier  Fleet of machines handling Application specific workloads Caching  server machines can be implemented at this layer App Server App Server App server Backups on Tapes Periodic backups stored on Tapes usually managed by 3rd party at their site Data Tier  Database Server machines with master and local running separately, Network storage for Static objects  MySQL Master MySQL(Slave) Tapes A Classic Web Architecture
MyWebSite.com DNS Design for failure and nothing fails LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
MyWebSite.com DNS Loose coupling sets you free LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
MyWebSite.com DNS Implement elasticity LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
MyWebSite.com DNS Build Security in every layer LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
MyWebSite.com DNS Leverage many storage options LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
Cloud Architecture Lessons Best Practices 1. Design for failure and nothing fails 2. Loose coupling sets you free 3. Implement Elasticity 4. Build Security in every layer 5. Don't fear constraints 6. Think Parallel 7. Leverage many storage options
Conclusions Most Important Lesson From Our Customers: Start small with a well-defined proof of concept  Experiment with different architectures; Keep one, throw away others Once one application is launched others will follow… Photo: Grand Canyon Hopi Point SunSet
Thank you! mtavis@amazon.com

Mais conteúdo relacionado

Mais procurados

Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...Amazon Web Services
 
Architecting for AWS Cloud - let's do it right!
Architecting for AWS Cloud - let's do it right!Architecting for AWS Cloud - let's do it right!
Architecting for AWS Cloud - let's do it right!Misha Hanin
 
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesWKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesAmazon Web Services
 
Migration to Aws Cloud
Migration to Aws Cloud  Migration to Aws Cloud
Migration to Aws Cloud Mufti Ardian
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersAmazon Web Services
 
Cloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesCloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesSascha Möllering
 
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesWKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesAmazon Web Services
 
Amazon EC2 and Amazon VPC Hands-on Workshop
Amazon EC2 and Amazon VPC Hands-on WorkshopAmazon EC2 and Amazon VPC Hands-on Workshop
Amazon EC2 and Amazon VPC Hands-on WorkshopAmazon Web Services
 
Azure vs AWS Best Practices: What You Need to Know
Azure vs AWS Best Practices: What You Need to KnowAzure vs AWS Best Practices: What You Need to Know
Azure vs AWS Best Practices: What You Need to KnowRightScale
 
AWS Canberra WWPS Summit 2013 - Cloud Computing with AWS: Introduction to AWS
AWS Canberra WWPS Summit 2013 - Cloud Computing with AWS: Introduction to AWSAWS Canberra WWPS Summit 2013 - Cloud Computing with AWS: Introduction to AWS
AWS Canberra WWPS Summit 2013 - Cloud Computing with AWS: Introduction to AWSAmazon Web Services
 
Using AWS Batch and AWS Step Functions to Design and Run High-Throughput Work...
Using AWS Batch and AWS Step Functions to Design and Run High-Throughput Work...Using AWS Batch and AWS Step Functions to Design and Run High-Throughput Work...
Using AWS Batch and AWS Step Functions to Design and Run High-Throughput Work...Amazon Web Services
 
Journey Through the Cloud - Data Analysis
Journey Through the Cloud - Data AnalysisJourney Through the Cloud - Data Analysis
Journey Through the Cloud - Data AnalysisAmazon Web Services
 
AWS basics session
AWS basics sessionAWS basics session
AWS basics sessionSharad Gupta
 
AWS Summit London 2014 | Options for Hybrid Environments (200)
AWS Summit London 2014 | Options for Hybrid Environments (200)AWS Summit London 2014 | Options for Hybrid Environments (200)
AWS Summit London 2014 | Options for Hybrid Environments (200)Amazon Web Services
 
Using Amazon RDS to power enterprise applications (Peoplesoft)
Using Amazon RDS to power enterprise applications (Peoplesoft) Using Amazon RDS to power enterprise applications (Peoplesoft)
Using Amazon RDS to power enterprise applications (Peoplesoft) Tom Laszewski
 

Mais procurados (20)

Introduction to AWS Batch
Introduction to AWS BatchIntroduction to AWS Batch
Introduction to AWS Batch
 
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
Architecting for the Cloud: demo and best practices, by Simone Brunozzi (2011...
 
Architecting for AWS Cloud - let's do it right!
Architecting for AWS Cloud - let's do it right!Architecting for AWS Cloud - let's do it right!
Architecting for AWS Cloud - let's do it right!
 
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesWKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
 
Migration to Aws Cloud
Migration to Aws Cloud  Migration to Aws Cloud
Migration to Aws Cloud
 
Scaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million UsersScaling on AWS for the First 10 Million Users
Scaling on AWS for the First 10 Million Users
 
Cloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best PracticesCloud Architecture: Patterns and Best Practices
Cloud Architecture: Patterns and Best Practices
 
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot InstancesWKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
WKS401 Deploy a Deep Learning Framework on Amazon ECS and EC2 Spot Instances
 
AMAZON CLOUD Course Content
AMAZON CLOUD Course ContentAMAZON CLOUD Course Content
AMAZON CLOUD Course Content
 
Amazon EC2 and Amazon VPC Hands-on Workshop
Amazon EC2 and Amazon VPC Hands-on WorkshopAmazon EC2 and Amazon VPC Hands-on Workshop
Amazon EC2 and Amazon VPC Hands-on Workshop
 
Azure vs AWS Best Practices: What You Need to Know
Azure vs AWS Best Practices: What You Need to KnowAzure vs AWS Best Practices: What You Need to Know
Azure vs AWS Best Practices: What You Need to Know
 
AWS Canberra WWPS Summit 2013 - Cloud Computing with AWS: Introduction to AWS
AWS Canberra WWPS Summit 2013 - Cloud Computing with AWS: Introduction to AWSAWS Canberra WWPS Summit 2013 - Cloud Computing with AWS: Introduction to AWS
AWS Canberra WWPS Summit 2013 - Cloud Computing with AWS: Introduction to AWS
 
Using AWS Batch and AWS Step Functions to Design and Run High-Throughput Work...
Using AWS Batch and AWS Step Functions to Design and Run High-Throughput Work...Using AWS Batch and AWS Step Functions to Design and Run High-Throughput Work...
Using AWS Batch and AWS Step Functions to Design and Run High-Throughput Work...
 
Journey Through the Cloud - Data Analysis
Journey Through the Cloud - Data AnalysisJourney Through the Cloud - Data Analysis
Journey Through the Cloud - Data Analysis
 
AWS basics session
AWS basics sessionAWS basics session
AWS basics session
 
AWS for Startups
AWS for StartupsAWS for Startups
AWS for Startups
 
AWS Summit London 2014 | Options for Hybrid Environments (200)
AWS Summit London 2014 | Options for Hybrid Environments (200)AWS Summit London 2014 | Options for Hybrid Environments (200)
AWS Summit London 2014 | Options for Hybrid Environments (200)
 
Introduction to AWS X-Ray
Introduction to AWS X-RayIntroduction to AWS X-Ray
Introduction to AWS X-Ray
 
Using Amazon RDS to power enterprise applications (Peoplesoft)
Using Amazon RDS to power enterprise applications (Peoplesoft) Using Amazon RDS to power enterprise applications (Peoplesoft)
Using Amazon RDS to power enterprise applications (Peoplesoft)
 
AWSome Day Leeds
AWSome Day Leeds AWSome Day Leeds
AWSome Day Leeds
 

Destaque

Windows Azure Design Patterns
Windows Azure Design PatternsWindows Azure Design Patterns
Windows Azure Design PatternsDavid Pallmann
 
Nosql storage in windows azure
Nosql storage in windows azureNosql storage in windows azure
Nosql storage in windows azureGal Kogman
 
Cloud Computing - Pratices & Patterns
Cloud Computing - Pratices & PatternsCloud Computing - Pratices & Patterns
Cloud Computing - Pratices & PatternsAlan Carlos
 
Patrones para el diseño de aplicaciones en la Nube
Patrones para el diseño de aplicaciones en la NubePatrones para el diseño de aplicaciones en la Nube
Patrones para el diseño de aplicaciones en la NubeJim Saenz
 
Cloud patterns - NDC Oslo 2016 - Tamir Dresher
Cloud patterns - NDC Oslo 2016 - Tamir DresherCloud patterns - NDC Oslo 2016 - Tamir Dresher
Cloud patterns - NDC Oslo 2016 - Tamir DresherTamir Dresher
 

Destaque (7)

Windows Azure Design Patterns
Windows Azure Design PatternsWindows Azure Design Patterns
Windows Azure Design Patterns
 
Nosql storage in windows azure
Nosql storage in windows azureNosql storage in windows azure
Nosql storage in windows azure
 
Azure and cloud design patterns
Azure and cloud design patternsAzure and cloud design patterns
Azure and cloud design patterns
 
Cloud Computing - Pratices & Patterns
Cloud Computing - Pratices & PatternsCloud Computing - Pratices & Patterns
Cloud Computing - Pratices & Patterns
 
Patrones para el diseño de aplicaciones en la Nube
Patrones para el diseño de aplicaciones en la NubePatrones para el diseño de aplicaciones en la Nube
Patrones para el diseño de aplicaciones en la Nube
 
Cloud architecture
Cloud architectureCloud architecture
Cloud architecture
 
Cloud patterns - NDC Oslo 2016 - Tamir Dresher
Cloud patterns - NDC Oslo 2016 - Tamir DresherCloud patterns - NDC Oslo 2016 - Tamir Dresher
Cloud patterns - NDC Oslo 2016 - Tamir Dresher
 

Semelhante a NWCloud Cloud Track - Best Practices for Architecting in the Cloud

AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAmazon Web Services
 
Architecting Cloud Apps
Architecting Cloud AppsArchitecting Cloud Apps
Architecting Cloud Appsjineshvaria
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your StartupAmazon Web Services
 
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...Amazon Web Services
 
Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Amazon Web Services
 
AWS Cloud Computing for Startups Werner Vogels -part i
AWS Cloud Computing for Startups   Werner Vogels -part iAWS Cloud Computing for Startups   Werner Vogels -part i
AWS Cloud Computing for Startups Werner Vogels -part iAmazon Web Services
 
AWS Webcast - Understanding database options
AWS Webcast - Understanding database optionsAWS Webcast - Understanding database options
AWS Webcast - Understanding database optionsAmazon Web Services
 
Cloud computing-Practical Example
Cloud computing-Practical ExampleCloud computing-Practical Example
Cloud computing-Practical ExampleTasawar Gulzar
 
How to Scale to Millions of Users with AWS
How to Scale to Millions of Users with AWSHow to Scale to Millions of Users with AWS
How to Scale to Millions of Users with AWSAmazon Web Services
 
Dean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your StartupDean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your Startuphuguk
 
AWS Summit Sydney 2014 | Running your First Application on AWS
AWS Summit Sydney 2014 | Running your First Application on AWSAWS Summit Sydney 2014 | Running your First Application on AWS
AWS Summit Sydney 2014 | Running your First Application on AWSAmazon Web Services
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWSAmazon Web Services Korea
 
Your First 10 million Users on the AWS Cloud
Your First 10 million Users on the AWS CloudYour First 10 million Users on the AWS Cloud
Your First 10 million Users on the AWS CloudAmazon Web Services
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudVladimir Ilic
 
Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Amazon Web Services
 

Semelhante a NWCloud Cloud Track - Best Practices for Architecting in the Cloud (20)

AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh VariaAWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
AWS Architecting Cloud Apps - Best Practices and Design Patterns By Jinesh Varia
 
Architecting Cloud Apps
Architecting Cloud AppsArchitecting Cloud Apps
Architecting Cloud Apps
 
AWS Architecting In The Cloud
AWS Architecting In The CloudAWS Architecting In The Cloud
AWS Architecting In The Cloud
 
Scaling the Platform for Your Startup
Scaling the Platform for Your StartupScaling the Platform for Your Startup
Scaling the Platform for Your Startup
 
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
ARC205 Building Web-scale Applications Architectures with AWS - AWS re: Inven...
 
Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015Scaling the Platform for Your Startup - Startup Talks June 2015
Scaling the Platform for Your Startup - Startup Talks June 2015
 
AWS Cloud Computing for Startups Werner Vogels -part i
AWS Cloud Computing for Startups   Werner Vogels -part iAWS Cloud Computing for Startups   Werner Vogels -part i
AWS Cloud Computing for Startups Werner Vogels -part i
 
AWS Webcast - Understanding database options
AWS Webcast - Understanding database optionsAWS Webcast - Understanding database options
AWS Webcast - Understanding database options
 
Cloud computing-Practical Example
Cloud computing-Practical ExampleCloud computing-Practical Example
Cloud computing-Practical Example
 
How to Scale to Millions of Users with AWS
How to Scale to Millions of Users with AWSHow to Scale to Millions of Users with AWS
How to Scale to Millions of Users with AWS
 
Dean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your StartupDean Bryen: Scaling The Platform For Your Startup
Dean Bryen: Scaling The Platform For Your Startup
 
[Jun AWS 201] Technical Workshop
[Jun AWS 201] Technical Workshop[Jun AWS 201] Technical Workshop
[Jun AWS 201] Technical Workshop
 
AWS Summit Sydney 2014 | Running your First Application on AWS
AWS Summit Sydney 2014 | Running your First Application on AWSAWS Summit Sydney 2014 | Running your First Application on AWS
AWS Summit Sydney 2014 | Running your First Application on AWS
 
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
20141021 AWS Cloud Taekwon - Startup Best Practices on AWS
 
Aws coi7
Aws coi7Aws coi7
Aws coi7
 
Create cloud service on AWS
Create cloud service on AWSCreate cloud service on AWS
Create cloud service on AWS
 
Your First 10 million Users on the AWS Cloud
Your First 10 million Users on the AWS CloudYour First 10 million Users on the AWS Cloud
Your First 10 million Users on the AWS Cloud
 
AWS-services.pdf
AWS-services.pdfAWS-services.pdf
AWS-services.pdf
 
Scaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloudScaling drupal horizontally and in cloud
Scaling drupal horizontally and in cloud
 
Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20Aws webcast - Scaling on AWS 13 08-20
Aws webcast - Scaling on AWS 13 08-20
 

NWCloud Cloud Track - Best Practices for Architecting in the Cloud

  • 1. Matt Tavis Solutions Architect mtavis@amazon.com Architectural Design Patterns in Cloud Computing
  • 2. They sent me here to talk But I am here to listen Please Send Feedback mtavis@amazon.com
  • 3. Cloud Best Practices Whitepaper Prescriptive guidance to Cloud Architects Just Search for “Cloud Best Practices” to find the link http://media.amazonwebservices.com/AWS_Cloud_Best_Practices.pdf
  • 4. Cloud Computing Attributes What makes the Cloud so attractive Abstract Resources Focus on your needs, not on hardware specs. As your needs change, so should your resources. On-Demand Provisioning Ask for what you need, exactly when you need it. Get rid of it when you don’t need Scalability in minutes Scale out or in depending on usage needs. Pay per consumption No contracts or long-term commitments. Pay only for what you use. Efficiency of Experts Utilize the skills, knowledge and resources of experts.
  • 5. The “Living and Evolving” Cloud AWS services and basic terminology Most Applications Need: Compute Storage Messaging Payment Distribution Scale Analytics Your Application Amazon RDS Amazon SNS Topics Amazon CloudFront Amazon SQS Queues Amazon SimpleDB Domains Payment : Amazon FPS/ DevPay Amazon Elastic MapReduce JobFlows Amazon S3 Objects and Buckets Auto-Scaling Elastic LB Cloud Watch Amazon EC2 Instances(On-Demand, Reserved, Spot) EBS Volumes Snapshots Amazon Virtual Private Cloud Amazon WorldwidePhysical Infrastructure (Geographical Regions, Availability Zones, Edge Locations)
  • 6.
  • 7. Boot from Amazon EBS» Amazon CloudFront Streaming » Amazon VPC enters Unlimited Beta » AWS Region in Northern California » International Support for AWS Import/Export » AWS Multi-Factor Authentication » Virtual Private Cloud » Lower Reserved Instance Pricing » Reserved Instances in EU Region » Elastic MapReduce » SQS in EU Region » Amazon RDS » High-Memory Instances » Lower EC2 Pricing » New SimpleDB Features » FPS General Availability » Amazon SNS » AWS Security Center 2009 Jan 2010 Jan Jul Sep Oct Dec Aug Nov Feb Mar Apr Jun May Feb Mar » Amazon EC2 with Windows » Amazon EC2 in EU Region » AWS Toolkit for Eclipse » Amazon EC2 Reserved Instances » Amazon CloudFront Private Content » SAS70 Type II Audit » AWS SDK for .NET » Amazon Elastic MapReduce in Europe » Amazon EC2 Reserved Instances with Windows, Extra Large High Memory Instances » Amazon S3 Versioning Feature » Consolidated Billing for AWS » Lower pricing for Outbound Data Transfer » AWS Import/Export » New CloudFront Feature » Monitoring, Auto Scaling & Elastic Load Balancing » EBS Shared Snapshots » SimpleDB in EU Region » Monitoring, Auto Scaling & Elastic Load Balancing in EU » Lower pricing tiers for Amazon CloudFront » AWS Management Console
  • 8. Scalability Build Scalable Architecture on AWS A scalable architecture is critical to take advantage of a scalable infrastructure Characteristics of Truly Scalable Service Increasing resources results in a proportional increase in performance A scalable service is capable of handling heterogeneity A scalable service is operationally efficient A scalable service is resilient A scalable service becomes more cost effective when it grows
  • 9. Cloud Architecture Lessons using Amazon Web Services 1. Design for failure and nothing fails 2. Loose coupling sets you free 3. Implement “Elasticity” 4. Build Security in every layer 5. Don't fear constraints 6. Think Parallel 7. Leverage different storage options
  • 10. 1. Design for Failure and nothing will really fail "Everything fails, all the time" Werner Vogels, CTO Amazon.com Avoid single points of failure Assume everything fails, and design backwards Goal: Applications should continue to function even if the underlying physical hardware fails or is removed or replaced.
  • 11. 2. Loose coupling sets you free The looser they're coupled, the bigger they scale Independent components Design everything as a Black Box De-coupling for Hybrid models Load-balance clusters Use Amazon SQS as Buffers Tight Coupling Controller A Controller B Controller C Q Q Q Loose Coupling using Queues Controller A Controller B Controller C
  • 12. 3. Implement Elasticity Elasticity is fundamental property of the Cloud Don’t assume healthor fixed location of components Use designs that are resilient to reboot and re-launch Bootstrapyour instances: Instances on boot will ask a question “Who am I & what is my role?” Enable dynamic configuration Use Auto-scaling (Free) Use Elastic Load Balancing on multiple layers Use configurations in SimpleDB to bootstrap instance
  • 13. 4. Build Security in every layer Design with Security in mind With cloud, you lose a little bit of physical control but not your ownership Create distinct Security Groups for each Amazon EC2 cluster Use group-based rules for controlling access between layers Restrict external access to specific IP ranges Encrypt data “at-rest” in Amazon S3 Encrypt data “in-transit” (SSL) Consider encrypted file systems in EC2 for sensitive data Rotate your AWS Credentials, Pass in as arguments encrypted Use MultiFactor Authentication
  • 14. 4. Build Security in every layer Design with Security in mind “Web” Security Group: TCP 800.0.0.0/0 TCP 4430.0.0.0/0 TCP22 “App” “App” Security Group: TCP 8080“Web” TCP 22172.154.0.0/16 TCP22 “App” “DB” Security Group: TCP 3306“App” TCP3306163.128.25.32/32 TCP22 “App”
  • 15. 5. Don't fear constraints Re-think architectural constraints More RAM? Distribute load across machines Shared distributed cache Better IOPS on my database? Multiple read-only / sharding / DB clustering Hardware Config does not match? Implement Elasticity Your hardware failed or messed up config? simply throw it away and switch to new hardware with no additional cost Performance Caching at different levels (Page, Render, DB)
  • 16. 6. Think Parallel Serial and Sequential is now history Experiment different architectures in parallel Multi-treading and Concurrent requests to cloud services Run parallel MapReduce Jobs Use Elastic Load Balancing to distribute load across multiple servers Decompose a Job into its simplest form
  • 17. 7. Leverage many storage options One size DOES NOT fit all Amazon S3: large static objects Amazon CloudFront: content distribution Amazon SimpleDB: simple data indexing/querying Amazon EC2 local disc drive : transient data Amazon EBS: persistent storage for any RDBMS + Snapshots on S3 Amazon RDS: RDBMS service - Automated and Managed MySQL
  • 18. 7. Leverage many storage options Which storage option to use when?
  • 19. Applying Cloud Architecture Lessons Moving a Web Architecture to the Cloud
  • 20. MyWebSite.com Exterior Firewall Hardware or Software Solution to open standard Ports (80, 443) Web Load BalancerHardware or Software solution to distribute traffic over web servers LB Web Tier Fleet of machines handling HTTP requests. Web Server Web Server Backend Firewall Limits access to application tier from web tier LB App Load Balancer Hardware or Software solution to spread traffic over app servers App Server Tier Fleet of machines handling Application specific workloads Caching server machines can be implemented at this layer App Server App Server App server Backups on Tapes Periodic backups stored on Tapes usually managed by 3rd party at their site Data Tier Database Server machines with master and local running separately, Network storage for Static objects MySQL Master MySQL(Slave) Tapes A Classic Web Architecture
  • 21. MyWebSite.com DNS Design for failure and nothing fails LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
  • 22. MyWebSite.com DNS Loose coupling sets you free LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
  • 23. MyWebSite.com DNS Implement elasticity LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
  • 24. MyWebSite.com DNS Build Security in every layer LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
  • 25. MyWebSite.com DNS Leverage many storage options LB ELB: Web Tier Availability Zone #1 Availability Zone 2 Auto-scaling group : Web Tier Auto-scaling group : Web Tier Availability Zone #n Web Server Web Server Web Server Web Server SLB SLB Auto-scaling group : App Tier Auto-scaling group : App Tier App Server App Server App Server App Server Tomcat Tomcat Cloud Front Amazon S3 RDS Slave RDS Master RDS Slave A Scalable Web Architecture on AWS
  • 26. Cloud Architecture Lessons Best Practices 1. Design for failure and nothing fails 2. Loose coupling sets you free 3. Implement Elasticity 4. Build Security in every layer 5. Don't fear constraints 6. Think Parallel 7. Leverage many storage options
  • 27. Conclusions Most Important Lesson From Our Customers: Start small with a well-defined proof of concept Experiment with different architectures; Keep one, throw away others Once one application is launched others will follow… Photo: Grand Canyon Hopi Point SunSet

Notas do Editor

  1. Explain each service features and details here
  2. 1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement Elasticity4. Build Security in every layer5. Don't fear constraints6. Think Parallel7. Leverage many storage options
  3. 1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement Elasticity4. Build Security in every layer5. Don't fear constraints6. Think Parallel7. Leverage many storage options
  4. 1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement Elasticity4. Build Security in every layer5. Don't fear constraints6. Think Parallel7. Leverage many storage options
  5. 1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement Elasticity4. Build Security in every layer5. Don't fear constraints6. Think Parallel7. Leverage many storage options
  6. 1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement Elasticity4. Build Security in every layer5. Don't fear constraints6. Think Parallel7. Leverage many storage options