System architecture      DDVE 2012
A few principlesComponents involved in an internet applicationCloud computingOptimizing and scaling up
Principles of architectureDurability - should last for long in good conditionUtility - should be useful and fulfill its fu...
Principles of software     architecture
1. ReliabilityProbability of error-free operation
2. EfficiencyAbility to fulfill the task in the most optimum wayNot to be confused with performance
3. UsabilityEase of use of the systemLearnability, Efficiency, Memorability, Errors,Satisfaction
4. MaintainabilityAbility to adapt to changePortability (to a different environment)Transferrability (to another team)
Components involved in an internet application
ServerA computer program servicing requests fromother programs (clients)Server (hardware) - a computer dedicated torunning...
Database ServerOrganized collection of data together withmanagement softwareOracle, MySQL, PostgreSQL, HBase, Cassandra
Web ServerSoftware serving HTTP requestsThe engine behind websites, small or largeApache, IIS (Microsoft), nginx,
Load balancerStands in front of a cluster of web serversDistributes requests between cluster nodes to evenout the loadProv...
Web AcceleratorFrees up backend server by caching static contentImproves load speeds by compressing pagesSquid, Varnish, ...
Sample architecture - 99designs.com                        99designs.com
Cloud computing  SaaS         PaaS                IaaS
SaaSSoftware-as-a-ServiceApplication hosted on the web, no installationnecessaryGMail, SalesForce, BaseCamp, thousands of ...
PaaSPlatform-as-a-ServiceNo need to care about operating system etc, candeploy your software directly, usually has goodmon...
IaaSInfrastructure-as-a-ServiceYou have to deal with all the nuts and boltsbutYou get full control over your serverall Vir...
Amazon S3Amazon Simple Storage ServiceSimilar services: nimbus.io, possibly others
CAP theoremConsistency / Availability / Partition tolerancePick two
CAP theoremConsistency / Availability / Partition tolerancePick twoStory of Remembrance, Inc
Optimizing and scaling upOptimizing - making the system less resourcehungryScaling up - adding resources to the system
Optimizing and scaling upKnow what you want to improve:page load time / throughput / server load / memoryusage
Optimizing and scaling upOptimize first, then scale upMeasure first, make changes afterIdentify the bottlenecks!
Things to do to make it betterOptimize database queriesOutsource / optimize content deliveryIntroduce caching
Examples from the big boys
Google MapReducePartition processing huge amounts of data (used insearch)                                   http://jcit.or...
Facebook BigPipeOptimize page loading speed for end usersFB loads page inblocks                             https://www.fa...
Twitter & memcached              http://www.slideshare.net/Blaine/scaling-twitter
Twitter & memcached              http://www.slideshare.net/Blaine/scaling-twitter
Twitter & memcachedTwitter does a LOT of caching: in 2007 they had- 600 tweets/second- 180 web servers- 1 DB serverCan be ...
Upcoming SlideShare
Loading in …5
×

System Architecture at DDVE

806 views
625 views

Published on

A very basic overview of different architectural concepts, buzzwords and issues regarding architecture of (distributed) systems.

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

No Downloads
Views
Total views
806
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

System Architecture at DDVE

  1. 1. System architecture DDVE 2012
  2. 2. A few principlesComponents involved in an internet applicationCloud computingOptimizing and scaling up
  3. 3. Principles of architectureDurability - should last for long in good conditionUtility - should be useful and fulfill its functionBeauty - should make people happy "Firmitas, Utilitas, Venustas" - Vitruvius, 1th century BC
  4. 4. Principles of software architecture
  5. 5. 1. ReliabilityProbability of error-free operation
  6. 6. 2. EfficiencyAbility to fulfill the task in the most optimum wayNot to be confused with performance
  7. 7. 3. UsabilityEase of use of the systemLearnability, Efficiency, Memorability, Errors,Satisfaction
  8. 8. 4. MaintainabilityAbility to adapt to changePortability (to a different environment)Transferrability (to another team)
  9. 9. Components involved in an internet application
  10. 10. ServerA computer program servicing requests fromother programs (clients)Server (hardware) - a computer dedicated torunning one or more such service
  11. 11. Database ServerOrganized collection of data together withmanagement softwareOracle, MySQL, PostgreSQL, HBase, Cassandra
  12. 12. Web ServerSoftware serving HTTP requestsThe engine behind websites, small or largeApache, IIS (Microsoft), nginx,
  13. 13. Load balancerStands in front of a cluster of web serversDistributes requests between cluster nodes to evenout the loadProvides failover when one node failsF5 BIG-IP, Cisco, Apache
  14. 14. Web AcceleratorFrees up backend server by caching static contentImproves load speeds by compressing pagesSquid, Varnish, ...
  15. 15. Sample architecture - 99designs.com 99designs.com
  16. 16. Cloud computing SaaS PaaS IaaS
  17. 17. SaaSSoftware-as-a-ServiceApplication hosted on the web, no installationnecessaryGMail, SalesForce, BaseCamp, thousands of others
  18. 18. PaaSPlatform-as-a-ServiceNo need to care about operating system etc, candeploy your software directly, usually has goodmonitoring toolsEngineYard, Heroku, AppFog, Azure Cloud, zone.ee
  19. 19. IaaSInfrastructure-as-a-ServiceYou have to deal with all the nuts and boltsbutYou get full control over your serverall Virtual Private Server providers (zone.ee,Amazon EC2)
  20. 20. Amazon S3Amazon Simple Storage ServiceSimilar services: nimbus.io, possibly others
  21. 21. CAP theoremConsistency / Availability / Partition tolerancePick two
  22. 22. CAP theoremConsistency / Availability / Partition tolerancePick twoStory of Remembrance, Inc
  23. 23. Optimizing and scaling upOptimizing - making the system less resourcehungryScaling up - adding resources to the system
  24. 24. Optimizing and scaling upKnow what you want to improve:page load time / throughput / server load / memoryusage
  25. 25. Optimizing and scaling upOptimize first, then scale upMeasure first, make changes afterIdentify the bottlenecks!
  26. 26. Things to do to make it betterOptimize database queriesOutsource / optimize content deliveryIntroduce caching
  27. 27. Examples from the big boys
  28. 28. Google MapReducePartition processing huge amounts of data (used insearch) http://jcit.org/web/files/csc548/fpgrowth.html
  29. 29. Facebook BigPipeOptimize page loading speed for end usersFB loads page inblocks https://www.facebook.com/note.php?note_id=389414033919
  30. 30. Twitter & memcached http://www.slideshare.net/Blaine/scaling-twitter
  31. 31. Twitter & memcached http://www.slideshare.net/Blaine/scaling-twitter
  32. 32. Twitter & memcachedTwitter does a LOT of caching: in 2007 they had- 600 tweets/second- 180 web servers- 1 DB serverCan be done if you mostly read and rarely writeThere are only two hard things in ComputerScience: cache invalidation and naming things. -- Phil Karlton

×