
Foreword
If you ever want to see a man’s head explode, walk up to somebody whose job it is to manually configure and provision scores of servers inside a datacenter, and say the following: “Wow! It must be so easy, and so much fun, to keep track of what’s running on which machines.”
Or find a person who has spent years carrying a pager and responding to server outages and say, “Sounds like a stress-free job. At least it guarantees you get a good night’s sleep.”
The truth, of course, is that managing servers and other datacenter infrastructure has historically been difficult, tedious, and full of sleepless nights for the poor men and women charged with configuring all these machines and responding to failures whenever they strike. As companies started relying more heavily on information technology during the past 20 years, often housing one application per server (or, in recent years, virtual machine), the practice grew increasingly difficult. A few servers grew to dozens, dozens grew to hundreds, and hundreds sometimes grew to thousands.
Then the web blew up, fueled by incredibly popular services such as Google, Facebook, and Twitter. The mobile web, fueled by billions of smartphones, tablets, and other devices, followed shortly thereafter. Old ways of computing could no longer cut it in a world where millions of users might be on a site or app at any given time.