AWS Summit 2013 | Auckland - Building Web Scale Applications with AWS

  • 370 views
Uploaded on

AWS provides a platform that is ideally suited for deploying highly available and reliable systems that can scale with a minimal amount of human interaction. This talk describes a set of architectural …

AWS provides a platform that is ideally suited for deploying highly available and reliable systems that can scale with a minimal amount of human interaction. This talk describes a set of architectural patterns that support highly available services that are also scalable, low cost, low latency and allow for agile development practices. We walk through the various architectural decisions taken for each tier and explain our choices for appropriate AWS services and building blocks to ensure the security, scale, availability and reliability of the application.

More in: Technology , Business
  • 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
370
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
1

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. Glenn GoreBuilding Web Scale Applications with AWSSr. Manager, Solutions Architects, AWS
  • 2. I am Barack Obama, Ask me anythingReddit Needed to Scale for a special guest• 2,987,307 pageviews on the day of the IAmA• President Obama’s user page received 428,004pageviews on the day of the IAMA• Added 60 dedicated instance to handle the increasedload• At peek transfering 48 MB/s to the internet
  • 3. While You’re Scaling• Architect for Failure– Failures do happen– Internet is unpredictable– People are unpredictable• Architect with Security– Security must happen– Security is multi-layered– Security can be automated whileyou scale
  • 4. Why Is Scale Important?SelfHostingWasteCustomerDissatisfactionActual demandPredicted DemandRigid ElasticActual demandAWS
  • 5. Web Application Scaling
  • 6. Loose coupling sets you free!• The looser theyre coupled, the bigger they scale– Independent components– Design everything as a black box– Decouple interactions– Load-balance clustersController A Controller B Controller CController A Controller B Controller CQ Q QTight CouplingUse Amazon SQS as BuffersLoose Coupling
  • 7. Allows for Parallel Processing and Failure• Fan out• Use varied instance types• Use varied billing models• Protects against failure• Different workloads can scale independently
  • 8. Allows for Parallel Processing and Failure
  • 9. Go wide, not high!• Build for horizontal scale– Decrease request contention– Reduce capacity planning headaches– Requires a stateless application architecture– Allows for dynamic scalabilityRoute 53 ELB Auto Scale EC2 S3 DynamoDBRDSCloudWatchCloudFormation SQS SNS
  • 10. But usually some state has to reside somewhereCookies in browserMemory-resident session managerSession databaseFramework-provided session handler
  • 11. So this store of state needs to be…PerformantScalableReliable
  • 12. Where should session state reside?Trigger auto-scaling policySession StateServiceNot HereHereState must reside OUTSIDEthe scope of the elements youwish to scale
  • 13. And what do I build it on?The state service itself mustbe well architected
  • 14. Data Tier ScalingThe bane of the Architect’s existence
  • 15. Vertical Scaling“We’re gonna need a bigger box”• Simplest approach• Can now leverage PIOPs• High I/O instances• Easy to change instance sizes• Will hit an endpoint eventuallyhi1.4xlargem2.4xlargem1.small
  • 16. Master/Slave Horizontal Scaling• Reasonably simple to adapt to• Can now leverage PIOPs• Easy to change instances sizes• Will hit an endpoint eventually
  • 17. Sharded Horizontal ScalingHash RingABCD• More complex at the application layer• ORM support can help• No practical limit on scalability• Operation complexity/sophistication• Shard by function or key space• RDBMS or NoSQL
  • 18. Horizontal Scaling – Fully ManagedDynamoDB• Provisioned throughput NoSQL database• Fast, predictable performance• Fully distributed, fault tolerant architecture• Considerations for non-uniform dataFeature DetailsProvisionedthroughputDial up or down provisioned read/writecapacity.PredictableperformanceAverage single digit millisecond latenciesfrom SSD-backed infrastructure.Strong consistency Be sure you are reading the most up todate values.Fault tolerant Data replicated across Availability Zones.Monitoring Integrated to CloudWatch.Secure Integrates with AWS Identity and AccessManagement (IAM).ElasticMapReduceIntegrates with Elastic MapReduce forcomplex analytics on large datasets.
  • 19. Petabyte-Scale Data WarehousingFeature DetailsOptimized for DataWarehousingRedshift uses a variety of innovations to obtainvery high query performance on datasetsranging in size from hundreds of gigabytes to apetabyte or more.Scalable Easily scale the number of nodes in your datawarehouse up or down as your performance orcapacity needs changeFault tolerant Data replicated across Availability Zones.Monitoring Integrated to CloudWatch.Secure Encrypt data in transit and at rest. Can also berun in VPC to isolate your data warehousecluster.S3 intergration Loads data in parallel to each node from S3.Elastic MapReduce Integrates with ERM via Data Pipeline.
  • 20. AWS Application Management SolutionsElastic Beanstalk OpsWorks CloudFormation EC2Convenience ControlHigher-level Services Do it yourself
  • 21. Summary• Awareness of the options is the first step to good design• Scaling is the ability to move the bottlenecks around to theleast expensive part of the architecture• Loose coupling is good• AWS makes this easier – so your application is not a victim ofits own success
  • 22. EROAD AWS Summit 2013Web Scale Applications30th May 2013jarred.clayton@eroad.com - Engineering Manager
  • 23. What’s EROAD• World’s first autonomous GNSS/CN (Global Navigation Satellite Systems/Cellular Network)tolling system for heavy vehicles in New Zealand in 2009• Australasia’s fastest growing technology company (2746% growth 2010-2012)• Cool tech and a great place to work• Now growing globally in US and Australia on AWS• Multi-region / Multi-AZ global infrastructure• Multi-tenanted SaaS application
  • 24. Why AWS• Infrastructure Issues - Capital costs, datacenters (not core business), DR/Multisite costs,growing rapidly (very hard to capacity plan)• Requirement for Global infrastructure to rapidly enter new markets at low cost• Aligned with security standards (ISO 27001 etc)• Oregon State Government security Audit• Ride the infrastructure innovation wave at commodity prices
  • 25. AWS Building Blocks• Automation• Chef, Cloudformation & SuperStacker (EROAD tool – opensource potential)• Build new environments in minutes (DR, UAT, developers)• Fault tolerant, autonomous self-healing environment• Multiple regions and availability zones• Auto Scaling and ELB
  • 26. Scaling Web-tier• Tomcat with session state• Utilize ELB for health and load-balancing• Session state in separate HA store (Couchbase) across multi-AZ• Use cloudwatch to auto-scale
  • 27. Scaling Middle-tier• Stateless – YAY!
  • 28. Scaling Database tier• The hardest. Take quick wins early.• PIOPS• Vertical partitions• Autoscale high cost read-only GIS database operations• Scale read-replica’s• Separate OLTP location data from reporting data• Plenty more to do• Sharding, DynamoDB, MongoDB or CouchBase• Continue scaling• Utilize new tech – PostgreSQL RDS 
  • 29. Thanks• We have plenty more work as we continually grow• Currently utilize reserved instances and want to take advantage spot instances, Redshift etc