Architectural Best Practices, Introduction to AWS, Cambridge


Published on

Published in: Technology, Business
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Architectural Best Practices, Introduction to AWS, Cambridge

  1. 1. Architectural Best Practice Ianni Vamvadelis Solutions Architect
  2. 2. ArchitecturalPatterns with AWS
  3. 3. #1 Architecture Patterns#2 Example Designs#3 Automation
  4. 4. Architecture Patterns
  5. 5. Cloud Architecture Lessons using Amazon Web Services1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement “Elasticity”4. Build Security in every layer5. Dont fear constraints6. Think Parallel7. Leverage different storage options
  6. 6. 1. Design for Failure …and nothing will really fail"Everything fails, all the time"Werner Vogels, CTO Amazon.comAvoid single points of failureAssume everything fails, and design backwardsGoal: Applications should continue to function even if theunderlying physical hardware fails or is removed or replaced.
  7. 7. 1. Design for Failure AWS provides tools to make your life easierUse Elastic IP addresses, Route53Use multiple Amazon EC2 Availability Zones (AZs)Create database slaves across AZsUse monitoring and alertingUse persistent storageAutomate operational processes
  8. 8. 2. Build Loosely Coupled Systems The looser theyre coupled, the bigger they scaleIndependent componentsDesign everything as a Black BoxDe-coupling for Hybrid modelsLoad-balance servicesAmazon SQS and SWF
  9. 9. 3. Implement Elasticity Elasticity is a fundamental property of the Cloud Bootstrap your instances: “Who am I & what is my role?” Use designs that are resilient to reboot and re-launchUse Auto-scalingUse Elastic Load BalancingUse configurations in a durable store to bootstrap instance
  10. 10. 4. Build Security in every layer Design with Security in mindCreate distinct Security Groups for each app tier/roleRestrict external access to IP rangesEncrypt data “at-rest” and “in-transit”Use Multi-Factor AuthenticationUse Amazon Virtual Private Cloud
  11. 11. 5. Dont fear constraints Re-think architectural constraints More RAM? Distribute load across machines Shared distributed in-memory cacheBetter IOPS on my database?Multiple read-only / sharding / DBclustering / Non-relationalYour hardware failed or messed up config?simply throw it away and switch to newhardware with no additional cost Performance Caching at all levels (Data, Pages, Amazon CloudFront)
  12. 12. 6. Think Parallel Horizontal scaling instead of vertical scaling…Use Elastic Load Balancing to distribute load across multiple serversExperiment with different architectures in parallelMulti-threading and Concurrent requests to cloud servicesRun parallel MapReduce Jobs
  13. 13. 7. Leverage many storage options One size does not fit allAmazon S3: large static objectsAmazon Cloudfront: content distributionAmazon DynamoDB: simple querying, seemless scaleAmazon EC2 local disc drive : transient dataAmazon EBS: persistent storage + Snapshots on S3Amazon RDS: RDBMS service (MySQL, Oracle, MS SQL Server)
  14. 14. Cloud Architecture Lessons Best Practices1. Design for failure and nothing fails2. Loose coupling sets you free3. Implement Elasticity4. Build Security in every layer5. Dont fear constraints6. Think Parallel7. Leverage many storage options
  15. 15. Example Designs
  16. 16. Loosely CoupledAmazon Simple Queue Service
  17. 17. Elasticity andMulti-AZ
  18. 18. Autoscaling 3 Approaches to design MDEThree Services: Better Together Elastic Load Balancer Latency Utilization Auto Scaling CloudWatch Metrics
  19. 19. US East Region (N. VA) EU West Region (Ireland) Japan Region (Tokyo)Availability Availability Availability Availability Zone A Zone B Zone A Zone B Availability Availability Zone A Zone BAvailability Availability Availability Zone C Zone D Zone C US West 1 Region (N. CA) APAC Region (Singapore) US West 2 Region (Oregon)Availability Availability Availability Availability Availability Availability Zone A Zone B Zone A Zone B Zone A Zone B
  20. 20. Automation
  21. 21. Automation EnablesProvisioning of Environments Recovery from Failure Schedule Big Data Analysis Scaling Out / In / Up /Down Create Touchless systems
  22. 22. AWS CloudFormation Template-based provisioning service
  23. 23. Example: Gallery
  24. 24. API Summarydescribe <xyz> create update delete
  25. 25. Command LineScript your IT infrastructure
  26. 26. Examples EC2ec2-describe-instancesec2-run-instances -t m1.small -g demo -k useast_keypair ami-a29943cb EBSec2-create-volume –z eu-west-1a –s 100ec2-attach-volume vol-4bc54b23 –i i-f1ada197
  27. 27. CodeControl AWS Resources
  28. 28.
  29. 29. ExamplesVisual Studio app
  30. 30. Instance Metadata
  31. 31. ExamplesCLI launch + User-Data
  32. 32. How Can I Obtain Info about Myself from a Running Instance? local-hostnameami-launch-index local-ipv4ami-manifest-path macblock-device-mapping/ network/hostname placement/instance-action profileinstance-id public-hostnameInstance-type public-ipv4kernel-id public-keys/ reservation-id
  33. 33. Architecture
  34. 34. Cloud Best Practices Whitepapers Prescriptive guidance to Architects © 2011, Inc. and its affiliates. All rights reserved.
  35. 35. Architecture
  36. 36. THANK