When Amazon created its first cloud, well before anyone had coined the term “DevOps,” few if any could conceive of how expansive it would become. From its humble roots in Amazon Elastic Compute Cloud (EC2) in 2002 and Amazon Simple Storage Service (S3) in 2006, AWS has expanded to a collection of over 100 services in over 15 regions around the world. This growing platform of capabilities can be intimidating at first glance and many wonder where to even begin. While there have been scores of blog posts and wikis devoted to passing on the tribal wisdom learned through sometimes painful experiences, it has been difficult to find an entry point that meets the needs of the budding cloud practitioner.
But who exactly is a “cloud practitioner”? We’re entering a period where a working knowledge of cloud configuration and administration fundamentals are considered a requirement for a wide series of industries. We’re currently in an environment that goes well beyond a concept of self-service IT. We now assume that users will no longer be just consumers of information technology resources, but cocreators. A research scientist developing code to analyze genomic data now not only helps create the data schema but also configures the compute and storage resources necessary to support their analysis. An industrial engineer executing high-performance fluid dynamics calculations has to know how many virtual CPUs and memory to request to best optimize the performance of her application.
We are living in a time of changing infrastructure architectures, serverless applications, and containerization. It takes a complete change in mindset to move from asking how to best configure a rack with an exact number of servers, disks, and network switches to pondering what to do with a potentially unlimited number of configurations of CPUs/GPUs/FPGAs, memory, object, block, and file storage connected through high-speed network connections. The choices can sometimes be overwhelming. The broad expanses of vast computing resources enable us to do things few thought even possible less than a decade ago, and yet the lack of physical constraints can almost induce vertigo at times—like a pilot without a horizon, enveloped in an actual physical cloud, not a virtual computing one.
Boundaries help us to make sense of our surroundings; looking over the edge of the cliff lets us know where to stop; staying between the lines on the road helps us to drive safely. We learn how to best operate within our constraints even though we may occasionally try to push our limitations. We optimize our behavior based upon our limitations. But what do we do when those limitations, which have helped define us for so long, are now removed? How do we begin to think about operating in an era of cloud computing?
Mike and Federico have written a book that is approachable, yet not basic; plain spoken, but not simple; technical, but not overly complex. It addresses the needs of anyone looking to learn how to engage with AWS for the first time. It removes some of the intimidation from the alphabet soup of acronyms and new terminology that will be thrown at the new AWS user: EC2, S3, EBS, AMI, instance, IAM, ELB, RDS, Route 53, CloudWatch, CloudFormation, Glacier, and more. It is a welcome starting point for all who wish to learn more about the essentials of getting started using AWS and beginning their journey into the cloud.
—Ian Colle, General Manager for AWS Batch and HPC at Amazon Web Services, has a background in economics and philosophy as well as software engineering.