Preface - eCommerce in the Cloud (2014)

eCommerce in the Cloud (2014)


Among all enterprise workloads, ecommerce is unique because of the extreme variability in traffic. The chart in Figure 1 shows the number of page views per second over the course of the month of November for a leading US retailer.[1]

November page views for a leading US retailer

Figure 1. November page views for a leading US retailer

The amount of hardware required varies substantially over the course of a month, day, or even hour, yet provisioning a production environment to 500% of annual peak for the entire year is common. A large US retailer recently sold $250 million online over a seven-day period, yet their CPU utilization, which is their bottleneck, never topped 15%.

Having spent my career deploying large ($1 billion+/year in annual revenue) ecommerce platforms and later building the technology under these platforms, I am always struck by the fear-driven inefficiencies and fashion-driven dogmatism that permeates every aspect of our trade. Aside from being wasteful, the real problem is distraction from your core business. We are at a juncture in history where a fundamental change is required. We can do better than the status quo.

Cloud computing, having matured over the past decade, is now to the point where it can finally be used for large-scale ecommerce. Cloud offers the promise to scale up and down dynamically to match your real-time needs. You pay for only what you need and you can use as much as you want. The cloud vendor deals with all of the work that goes into building infrastructure, platforms, or services, allowing you to focus on your core business. “It just makes so much sense,” is what most people say about the combination of ecommerce and cloud, yet “Are you crazy?” is what most people say when you actually propose its use.

In this book, I’ll show you how cloud computing, particularly public Infrastructure-as-a-Service, is evolutionary from a technology standpoint and revolutionary from a business standpoint. Using what you already know, I’ll show you how you can quickly and incrementally adopt cloud computing for any ecommerce platforms, whether packaged or custom and new or legacy. Cloud computing is firmly on the “right” side of history, and I hope you’ll join me in exploring how it can be applied to the most challenging of use cases: ecommerce.


Software-as-a-Service ecommerce offerings are not in the scope of this book.

Intended Audience

This book is for architects and aspiring architects who wish to learn more about cloud computing and how the top ecommerce vendors can leverage the cloud. While the first chapter focuses on the current state of ecommerce, the remainder of the book focuses on the architecture required to use the cloud for ecommerce. The principles contained within are also easily applied to other transactional web applications. If you can deploy a large-scale ecommerce platform in a cloud, you can deploy anything.

Contents of This Book

This book is organized into three parts.

In Part I, we’ll look at the current trends in ecommerce in Chapter 1 and the prevailing deployment architecture in Chapter 2.

In Part II, we’ll focus on cloud computing and its various incarnations. We’ll start out in Chapter 3 by discussing what cloud actually is, followed by how to auto-scale in Chapter 4, and how to automatically install and configure your software on the newly provisioned hardware in Chapter 5. Virtualization will be discussed in Chapter 6 and Content Delivery Networks in Chapter 7.

In Part III, we’ll discuss how to use cloud computing for ecommerce. We’ll start by discussing key architecture principles in Chapter 8, followed by security in Chapter 9, and then how to deploy to multiple geographically distant data centers in Chapter 10. In Chapter 11, we’ll discuss how to use a hybrid cloud. Chapter 12 discusses how to serve an entire platform from the cloud.

Conventions Used in This Book

The following typographical conventions are used in this book:


Indicates new terms, URLs, email addresses, filenames, and file extensions.

Constant width

Used for program listings, as well as within paragraphs to refer to program elements such as variable or function names, databases, data types, environment variables, statements, and keywords.

Constant width bold

Shows commands or other text that should be typed literally by the user.

Constant width italic

Shows text that should be replaced with user-supplied values or by values determined by context.


This element signifies a tip or suggestion.


This element signifies a general note.


This element indicates a warning or caution.

[1] Data courtesy of Akamai Technologies, 2013.