Last week, I was able to attend the HashiConf 2017 event in my hometown of Austin, Texas. HashiCorp has a significant following of loyal fans for their platforms and the show reflected their enthusiasm for the HashiCorp clean and functional design aesthetic. I count the RackN team in that list – we embedded Consul deeply into Digital Rebar v2 and recently announced a cutting edge bare metal Terraform integration (demo video) with Digital Rebar Provision (v3).
Overall, the show was impressively executed. It was a comfortable size to connect with attendees and most of the attendees were users instead of vendors. The announcements at the show were also notable. HashiCorp announced enterprise versions of all their popular platforms including Consul, Vault, Nomad and Terraform. For their enterprise versions include a cross-cutting service, Sentinel, that provides a policy engine to help enforce corporate governance.
Since all the tools are open source, creating an enterprise version can cause angst in the community. I felt that they handled the introduction well and the additions were well received. Typically, governance controls are a good demarcation for Enterprise features.
I was particularly impressed with the breadth and depth of Terraform use discussed at the event. Terraform is enjoying broad adoption as a cluster builder so it was not surprising to see it featured on many talks. The primary benefits highlighted were cloud portability and infrastructure as code.
This was surprising to me because Terraform plans are not actually cloud agnostic – they have to be coded to match the resources exposed by the target.
When I asked people about this the answer was simple: the Terraform format itself provides sufficient abstraction. The benefit of having a single tool and format for multiple infrastructure created very effective portability.
Except the lack of cloud abstractions also drove a messy pattern that I saw in multiple sessions. Many companies have written custom (“soon to be open sourced”™) Terraform plan generators in their own custom markup languages. That’s right – there’s an emerging, snowflaked Terraform generator pattern. I completely understand the motivation to build this layer; however, it strikes me as an anti-pattern.
Infrastructure portability (aka hybrid) is a both universal goal and frighteningly complex. Clearly, Terraform is a step in the right direction, but it’s only a step. At HashiConf, I enjoyed watching companies trying take that next step with varying degrees of success. Let’s get some popcorn and see how it turns out!
Until then, check out our Digital Rebar Terraform provider. It will make your physical infrastructure “cloud equivalent” so you can run similar plans between cloud and metal.
For more information on the Digital Rebar Terraform provider, listen to this recent podcast.