3. Principles of architecture
Durability - should last for long in good condition
Utility - should be useful and fulfill its function
Beauty - should make people happy
"Firmitas, Utilitas, Venustas" - Vitruvius, 1th century BC
10. Server
A computer program servicing requests from
other programs (clients)
Server (hardware) - a computer dedicated to
running one or more such service
12. Web Server
Software serving HTTP requests
The engine behind websites, small or large
Apache, IIS (Microsoft), nginx,
13. Load balancer
Stands in front of a cluster of web servers
Distributes requests between cluster nodes to even
out the load
Provides failover when one node fails
F5 BIG-IP, Cisco, Apache
14. Web Accelerator
Frees up backend server by caching static content
Improves load speeds by compressing pages
Squid, Varnish, ...
18. PaaS
Platform-as-a-Service
No need to care about operating system etc, can
deploy your software directly, usually has good
monitoring tools
EngineYard, Heroku, AppFog, Azure Cloud, zone.
ee
19. IaaS
Infrastructure-as-a-Service
You have to deal with all the nuts and bolts
but
You get full control over your server
all Virtual Private Server providers (zone.ee,
Amazon EC2)
32. Twitter & memcached
Twitter does a LOT of caching: in 2007 they had
- 600 tweets/second
- 180 web servers
- 1 DB server
Can be done if you mostly read and rarely write
There are only two hard things in Computer
Science: cache invalidation and naming things.
-- Phil Karlton