Code
Everything as code is going to be our mantra. Some code will be declarative, for systems automation. Other code will be procedural, having an easily understood flow. Functions will be used in some cases, and objects in others. We will need places to write this code, keep this code, build artifacts from it, then deploy it. Our building blocks will rely on Terraform and we will install that software later in this chapter. We're using Terraform to define our environments because it is becoming a de facto standard—it's fairly easy to pick up, it's capable of targeting multiple cloud providers, and it's open source. We're not going to look at the Terraform resources (code) for all of the AWS components in this chapter, but as we build solutions in later chapters, we'll come across a lot of them.