What Do Blueprints Do?
Blueprints create interfaces to your Terraform modules that enforce governance and simplify Terraform usage. As was shown in the image on the previous page, these interfaces can manifest themselves in two different ways depending on your preferences; either a form or an API-driven workflow. To keep things simple, this tutorial will focus on the form-based approach and demonstrate how forms can support self-service requests for cloud infrastructure.
Forms are great for automating routine one-off IaC creation tasks such as creating object storage, databases, and messaging queues. Instead of having your Terraform team handle the creation of these resources, non-cloud expert users are able to fill out these forms which themselves generate pull requests with working code against your IaC repos. Blueprints and their forms can be created to handle the creation of any Terraform payloads - here’s what a Blueprint form to create an AWS S3 Bucket, might look like:
As you can see, a user only has a couple of options for inputs that they can enter in this form, an environment, and a name. This user experience is very simple and users are not burdened by any of the implementation details of the actual Terraform code that lies beneath the form.
Under the form UI, however, this Blueprint is incredibly powerful and is backed by both KMS and S3 modules. These modules are used by the Blueprint to generate a KMS-encrypted S3 bucket with different bucket policies and tags that are dynamically added depending on the environment selected.
By design, the person using this form has no idea this is happening - the Blueprint creator has decided to abstract away that complexity. The Blueprint creator wants to make sure that users have no way to mess up tagging standards or accidentally make the bucket public. The Blueprint creator has complete control of what is exposed to the end-user and can mask or abstract away any implementation details as they see fit. When the user goes to fill out the form, here is what might be generated:
Put yourself in the shoes of someone who’s not a cloud expert for a moment. Without having to know anything about AWS, S3, KMS, or Terraform, you’re able to present these non-Terraform experts with the right interface to allow them to do their jobs and create cloud resources responsibly in a self-service fashion. If you use Blueprints, you can ensure Terraform is used to create all cloud resources without your Terraform team becoming bottlenecks.
Because Blueprints use your existing Terraform modules and have no opinions about how your code makes it to the cloud, they work out of the box with all of your existing pipelines, processes, and tools.
Ok, now that we’ve explained what Blueprints are and how they work at a high level, let’s get started making our first Blueprint in AutoCloud. We’ll start by creating a free account.