This chapter features a look behind the architectures that provide web applications. Before we examine the more recent cloud-based architectures, we will outline several technologies that have emerged to serve dynamic web content. We will then see how these technologies have been integrated into common architectures. Afterwards, we go to load-balancing, an established and important mechanism for scalability in web architectures. We will then learn about the infrastructure and services provided by popular cloud vendors.
Based on that, we will come up with our own generic architectural model for scalable web applications as an important contribution of this chapter. The model is the foundation for our further considerations, focusing on concurrency. A separation into the different architectural components does not just provide a clearer scalability path for each component. It also helps us to reason about particular concurrency challenges inherent to the distinct components.