Introduction
Almost everything runs in the cloud now. Music and television stream from the cloud, documents are stored and edited in the cloud, and cars’ navigation systems use the cloud to calculate the route to a destination. Today, we can’t imagine using a personal computer that isn’t connected to the internet. Put a smartphone in airplane mode and it suddenly does much less because it doesn’t have cloud access.
Most applications either run in the cloud or on a device that connects to applications running in the cloud, but many of the applications running in the cloud don’t run as well as they could because they were never designed for the cloud. We begin with Cloud Applications (Chapter 1), which will explore why we architect applications differently to deploy them to the cloud.
Before we get to that, let’s consider the phases of adopting the cloud, some newer application development techniques, and how the cloud can help, as well as the many aspects of managing a cloud application through its full lifecycle—bearing in mind that many of these phases, techniques, and aspects, while important, go beyond how to architect the application and therefore are beyond the scope of this book. We will begin by reviewing how computer hardware architecture has evolved and how application architecture has changed along with it, leading us to today’s cloud platform hardware and cloud-native applications. Then, we will review the pattern format used to structure most of the content in this ...