InfraCustomer's logo

How epilot Reduced Terraform Provider Creation and Maintenance Cost by 8X

epilot supports complex use cases for their clients, that means complex infrastructure provisioning. Fortunately Terraform makes their lives easier, and Speakeasy makes their Terraform easy.

Key Takeaways

8X reduction in expected cost of Terraform Provider ($220K cost saving)

Generated from OpenAPI specs for a minimal learning curve

No need to invest in hiring teams of specialist engineers — maintain focus on core product development

The Challenge: Sustainably Building Terraform Providers

Prior to Speakeasy, epilot’s Solutions Engineering team needed to work with each customer manually to set up their epilot instance.Viljami Kuosmanen, epilot’s Head of Engineering, realized that epilot setup could be automated via their existing APIs, and that a language for configuring infrastructure already existed — Terraform.

The only piece they were missing was a Terraform provider. Terraform providers allow Terraform code to interact with an API. In epilot’s case, they could create Terraform configuration files that communicate with the epilot Terraform provider (and ultimately, the epilot API), to automate the setup/configuration process. This would make setting up a new customer in epilot as easy as running a single command.

Workflow diagram showing Speakeasy's terraform generation

Viljami recognized that building an entire suite of Terraform providers would require significant creation and maintenance cost however: in fact, their initial budget estimate was $250K per year to hire a dedicated team of Go engineers.



The Solution: OpenAPI-based Terraform Generation with Speakeasy

epilot are huge advocates of the OpenAPI framework (opens in a new tab). Viljami himself is the maintainer of several OpenAPI-based tools such as the OpenAPI backend (opens in a new tab) project.

Internally, the epilot team uses their OpenAPI spec as the primary source of truth for their API development, automating as many workflows as possible.

All the epilot team had to do was add some simple annotations to their OpenAPI spec, describing the Terraform resources that they wanted to create:

openapi.yaml

/v1/permissions/roles/{roleId}:
get:
operationId: getRole
summary: getRole
x-speakeasy-entity-operation: Role#get
description: Get role by id
tags:
- Roles
parameters:
- name: roleId
x-speakeasy-match: id
in: path
required: true
schema:
$ref: '#/components/schemas/RoleId'
responses:
'200':
description: ok
content:
application/json:
schema:
$ref: '#/components/schemas/Role'
...
Role:
x-speakeasy-entity: Role
oneOf:
- $ref: '#/components/schemas/UserRole'
- $ref: '#/components/schemas/OrgRole'
- $ref: '#/components/schemas/ShareRole'
- $ref: '#/components/schemas/PartnerRole'

Now, whenever the epilot team updates their OpenAPI specs, Speakeasy’s Github workflow automatically regenerates their Terraform providers, runs a suite of tests, and then publishes a new version to the registry. No maintenance work required!



The Results: New Use Cases And New Customers

The proof is in the provider: epilot’s Registered Terraform Providers (opens in a new tab)

Snapshot of Epilot's Terraform provider github

Caption

Impact on Cost Savings

The money saved is obvious. Harder to quantify is the relief of removing a large chunk of work from the product roadmap as well as all the future work avoided by Speakeasy’s automated regeneration.

"Speakeasy's unique offering of high-quality SDKs including a Terraform provider, all generated from our existing API specs allowed us to take a huge leap in our own product go-to-market. We don't need to invest in hiring teams of specialist engineers — allowing us to focus on our core product."

Avatar

Viljami Kuosmanen, Head of Engineering at epilot

Through the use of OpenAPI and Speakeasy, epilot was able to automate the creation of Terraform Providers, resulting in a massive acceleration of their roadmap at a fraction of the expected cost.



Customer Showcase

We are trusted by companies of all sizes.

Two SDKs and a Terraform provider -- in just a few weeksDev Tools

Live SDKS

Python logo
Java logo
Terraform logo

Two SDKs and a Terraform provider -- in just a few weeks

Learn more
Three production-ready SDKs in < 2 weeks accelerates Codat's time-to-market by monthsFinTech

Live SDKS

C# logo
TypeScript logo
Python logo
Go logo

Three production-ready SDKs in < 2 weeks accelerates Codat's time-to-market by months

Learn more
See all customers