Before the idea of CI infrastructure — the forerunner of CodeBuild — was first mentioned at AWS re:Invent in 2011, AWS users typically either ran Jenkins directly on EC2 or used an external SaaS CI service. The problem was that Jenkins was "a server you had to install." You had to manage the server, plugins conflicted, and when the build queue backed up you had to upgrade to a bigger instance. When CodeBuild was officially released in 2016, AWS took a different approach — spin up the build environment itself as a container, and throw it away when the build finishes. And "how do we build this" was to be captured in a single file called buildspec.yml.