What's changed: Initial version (topic 2.13, subtopics 2.13.1–2.13.4)
7.4Typical System Architectures
Learn the recurring reference architectures: the components of LAMP and LAPP (Linux + Apache + MySQL/MariaDB or PostgreSQL + PHP/Perl/Python); the three-tier web model (the roles of the web server, application server, and database server); redundant designs combining a load balancer with HA configuration, database replication, and scale-out; speeding things up with a proxy server, cache, and CDN; and asynchronous data processing via a message queue.
The HA, scalability, and cloud building blocks from earlier sections combine, in real web services, into a handful of recurring patterns. This section centers on the LAMP/LAPP stack and the three-tier web model that LinuC has long emphasized, and rounds up the standard combinations used to make them redundant and fast.
7.4.1LAMP/LAPP and the three-tier web model
- LAMP stands for Linux (OS) + Apache (web server) + MySQL/MariaDB (database) + PHP/Perl/Python (application language). LAPP swaps the database to PostgreSQL (Linux + Apache + PostgreSQL + PHP/Perl/Python); the web server is still Apache. The only difference is the database (MySQL/MariaDB vs PostgreSQL). Both are proven, all-open-source reference stacks.
- The three-tier web model splits processing into a web tier (serving static content, accepting requests), an application tier (running business logic), and a database tier (persisting data). The chief benefit: each tier can scale and be made redundant independently (e.g., scale out only the web tier, or scale up only the DB tier onto beefier hardware).
Continue reading — free sign-up
You're reading the free preview. Sign up free to read this section in full, plus every chapter (including 4+) and all questions.

