From side project to professional tool: The story behind UpCloud’s Terraform Provider

Posted on 6 November 2024

Dive into the story behind UpCloud’s Terraform Provider with Ville Vesilehto, Lead Product Manager at UpCloud. Grab a coffee and get reading!

As someone who’s been involved with the UpCloud Terraform Provider from its inception to its current state, I want to share the journey of how a weekend project evolved into an essential tool for infrastructure automation. It’s a story that demonstrates the power of open source collaboration and the impact of well-designed SDKs.

The grassroots beginning

In 2017, I was heavily using HashiCorp’s Terraform with other cloud providers in my daily work, enjoying the benefits of infrastructure as code. However, when it came to UpCloud, I couldn’t leverage the same automated workflows I had grown accustomed to. Rather than maintain different processes for different providers, I decided to bridge this gap myself.

AD 4nXdEwlXy1yWAuIkCrhv3oQeRTBYYbWKNjFiYzLvduE YPw0rcgrs47 - From side project to professional tool: The story behind UpCloud's Terraform Provider

With the SDK handling the heavy lifting of API interactions, I could focus on mapping UpCloud’s cloud resources to Terraform resource schemas. I published the provider on my personal GitHub account, hoping it would help others automate their infrastructure deployment on UpCloud.

From community project to official solution

By mid-2018, the project had attracted attention from other developers who started contributing their own improvements. These contributions ranged from bug fixes to new features, showing that the provider was filling a real need in the community.

Seeing this growing adoption, UpCloud reached out about making the provider an official part of their developer tooling ecosystem. The company could provide resources and support while maintaining the open source nature of the project. They kept me involved with maintainer permissions, recognising the importance of continuity and community involvement.

AD 4nXdLusDmwdq5bqIAToUZ7JocgHyh xgaEuGue9S1zldXaz0tktC9M6A q GfEAeGICz4tOlFHeGSAsS8x15aIo4RnHscDg4Np - From side project to professional tool: The story behind UpCloud's Terraform Provider

The team then invested in expanding the ecosystem around the provider. While the original Go SDK had served us well, they developed a new, more comprehensive version that would serve as a foundation not just for the Terraform provider, but for a whole suite of developer tools. This reinforced my initial experience – a powerful SDK is a multiplier for developer productivity and innovation.

Coming full circle

In early 2021, my relationship with the project evolved in an unexpected way when I joined UpCloud as the Product Owner for the Developer Experience team. Now I found myself leading the development of the same tool I had started as a side project, along with other developer-facing tools and SDKs.

This transition gave me a unique perspective on both sides of the developer experience equation. As someone who had built tools using UpCloud’s SDK as an external developer, I understood firsthand the importance of well-designed APIs and comprehensive documentation. This experience continues to inform our approach to developer tooling.

Lessons learned

Looking back, several key insights stand out:

  1. 1. Good SDKs enable innovation: The availability of UpCloud’s initial Go SDK made it possible for me to create the Terraform provider. This has shaped our strategy of investing in robust SDKs to empower developers.
  2. 2. Community collaboration drives growth: The contributions from other developers significantly improved the provider, adding features I hadn’t originally envisioned.
  3. 3. Developer experience matters: Making it easy for developers to build on your platform creates a virtuous cycle of innovation and improvement.

Looking forward

Today, I have the privilege of working with a talented team to continue evolving the UpCloud Terraform Provider and our entire developer tooling ecosystem. We’re building on the foundation of those early days, maintaining the open source approach while ensuring professional support and reliability.

The SDK that made the initial provider possible has evolved into an even more powerful tool, enabling new generations of developers to build innovative solutions on top of UpCloud. We’re seeing history repeat itself as developers use our SDKs to create their own tools and integrations, just as I did back in 2017.

For those interested in contributing to or using the provider, you can find it in the official HashiCorp Terraform Registry and on project repository in GitHub. We continue to welcome community contributions, not only for our Terraform provider, but also Go SDK, UpCloud CLI, Crossplane Provider and many others, staying true to the open source principles that started this journey.

Try out today!

Start your free 14-day trial today and discover why thousands of businesses trust UpCloud

  • Risk-free trial
  • Optimized performance
  • Scalable infrastructure
  • Top-tier security
  • Global availability

Sign up

See also

UpCloud and Oiva Health's logo on black, promoting Cloudscape episode

Securing Healthcare Data in the Cloud: A Conversation with Oiva Health

Safeguard patient information in the cloud. Learn essential strategies for securing healthcare data, ensuring compliance with regulations like GDPR using European Cloud infrastructure.

Ines Pompeu dos Santos

Hallo Netherlands! Introducing NL-AMS1: Amsterdam Data Center.

Hallo Netherlands! Introducing NL-AMS1: Amsterdam Data Center

Amsterdam data center available Just a few weeks ago, we were very excited to launch our Singaporean data centre and today, we are just as […]

Jonathan Gabor

A blog post about the competitiveness of UpCloud's pricing.

How Competitive Is UpCloud’s Pricing?

Today we wanted to help compare cloud providers in Europe by sharing our findings on price comparison in Europe between several players. We’re very keen […]

Antti Vilpponen

Back to top