Leading European cloud-based payroll solution PayFit needed to introduce efficiencies by overhauling their approach to managing infrastructure. We spoke to senior platform engineer Kévin Lemele about what prompted the company’s decision to adopt a specialized infrastructure-as-code (IaC) management platform and why they chose Spacelift.
Before PayFit discovered Spacelift, the team followed a less-than-ideal developer approach to managing their infrastructure. They used the continuous integration and delivery (CI/CD) platform CircleCI, hosting their Terraform state on AWS S3 buckets. “It was pretty standard stuff, nothing too fancy,” recalls senior software engineer Kévin Lemele. The main reason they started exploring alternative infrastructure solutions was to improve the orchestration of the codebase and improve the user experience for the developers.
“It’s much easier for our maintainers to have a single space that’s already managing Terraform modules and policy and everything, rather than doing all the groundwork to make it work with our previous CI,” explains Kévin.
When their current approach to managing infrastructure started to show its limitations, the PayFit team began exploring alternatives. “We did evaluate Terraform Cloud and env0. Then we watched a tutorial explanation from Cloud Posse, and that’s how we discovered Spacelift,” says Kévin. Their experience with the platform started with a free product trial, which they used to investigate whether it catered to the specific requirements that other alternatives did not cover satisfactorily.
PayFit’s workflow for Terraform needed multiple concurrent runs due to the services’ IaC distribution. Spacelift offered the attraction of parallel runs. “We manage multiple environments and also multiple services, so we had multiple runners and only paid by the minute. It was much easier for us to be able to run them in parallel and not have to wait for each to finish, as with other products.” PayFit also needed to ensure Spacelift would work with the AWS Serverless Application Model (SAM), a CloudFormation extension that the team used to deploy some of their stack. Following the trial, the team concluded that Spacelift offered the most comprehensive solution for their needs.
Onboarding to Spacelift was a largely customer-led process for PayFit. Given the number of PayFit engineers working at any given time, it was important that they could be self-sufficient while using the platform. “We wanted to be really sure at our end that we could understand it all just by using the documentation and the UX. We cannot support developers 24 hours a day, so they need to be able to understand themselves how the tool works with the documentation and with the UI,” explains Kévin.
In this respect, Spacelift shone. “For documentation, Spacelift is one of the best we have seen because everything is written, so it’s really, really good.” And when the team did encounter edge cases not covered by the documentation, support was readily available. “We have a Slack channel with Spacelift, and it’s pretty efficient. When we have a question, we have an acknowledgment in less than 24 hours and an answer in less than 48. We are really happy with the support.”
PayFit is currently migrating its system to use Spacelift more broadly, but for the already migrated services, managing infrastructure is a far more granular and streamlined process. “Each piece of Terraform code is hosted in the same repository as the service, whereas before it was by domains. It’s also much easier for the developers to synchronize releases between the infrastructure code and the developer code. Before, we were managing the steps to do that, but right now Spacelift does that for us, by default or via policy” Kévin points out.
This ease of use makes the platform very popular with PayFit’s developers. “They really love it! The tool is easy to understand and makes their lives easier — they are more autonomous with it. So yeah, it’s really good from the developer perspective.” And from the company’s point of view, the experience has transformed their approach to infrastructure. “This new way of managing Terraform helps us improve collaboration and makes the developer autonomous,” concludes Kévin.