Software Development
A data network for insurance brokers and their property customers, Archipelago gives companies visibility into their data and tighter control over their business. Having investigated both Spacelift and Terraform by HashiCorp for their infrastructure-as-code (IaC) needs, they chose Spacelift to help them manage their Terraform more efficiently. Chris Schafer, a senior DevOps engineer at Archipelago, explains why.
Archipelago’s primary motivation for investigating IaC options like Spacelift and Terraform Cloud was to streamline the company’s cumbersome approach to managing Terraform. This involved manually applying their IaC code or using an in-house tool to deploy Terraform — something that was beginning to prove problematic. It wasn’t just the level of manual work involved in direct Terraform applications and having to manage changes between engineers. “We had a lot of issues with setup, access control, and coordination problems with state files,” recalls senior DevOps engineer Chris Schafer.
Archipelago considered both Spacelift and Hashicorp’s Terraform Cloud as possible solutions for their IaC management. “A team member mentioned Spacelift when we were looking at other options. We got a demo and developed a POC, which answered our questions from a technical and business perspective, and we generally had a sense for the level of effort to complete the deployment,” says Chris.
However, when it came to Terraform Cloud, the Archipelago team didn’t take their investigations as far. “We didn’t do demos or POCs with them. While we are a straight Terraform shop, we didn’t want to be limited to this platform alone for the long term.” The cost structure was another factor that influenced them, with the Spacelift pricing model more appropriate to their needs than the Resources Under Management (RUM) model HashiCorp used.
“We also liked the ability to use our Terraform with no cloud-specific changes required. Our code can still be manually applied.”
From the start, Archipelago appreciated the solid support and regular communication they received from Spacelift. They have a dedicated Slack channel, which Spacelift set up to ensure easy access to technical and customer support.
This support is helpful when the team finds Spacelift’s platform too flexible. Spacelift offers customers multiple options for approaching the tasks they wish to accomplish, whereas the Archipelago team would have preferred a more guided deployment model. “The flexibility is clearly required for your customer base, but in our case, it means we do a lot of ‘well, you could do it that way or this way.’ We ended up having to do a lot of research into the recommended or best ways for a given platform,” says Chris. That initial research may have slowed them down at the start, but he acknowledges that “this probably led to a deeper solution.”
Archipelago is still in the process of migrating to Spacelift, with its more complex stacks awaiting deployment. But they are seeing early wins already. “The primary win has been related to eliminating the manual process of direct Terraform applications and coordinating changes between engineers,” reveals Chris. “We have been able to lower the use of direct privileges for deployment without changing our ability to develop IaC.”
The company’s developers are still quite new to the platform, but several of them have discovered ways to use the platform to make complicated workflows easier to manage. “Our IaC-specific devs have found that even complicated migrations and upgrades work well in the framework and, typically, they have not had to use manual processes outside of the rare task via Spacelift,” says Chris.
Mere months after adopting the Spacelift platform, the Archipelago team is confident they made the right decision. “Spacelift is a solid and flexible pattern that will meet pretty much anyone’s needs,” Chris points out.
“It has allowed Archipelago to move toward automated CI/CD of our infrastructure code in a way that we aren’t blocked by having to develop our own code.” By liberating developers from repetitive tasks, the platform makes developers’ work lives much easier, more productive, and more interesting. “It allows us to concentrate on our unique infrastructure rather than rehashing this ourselves.”
Ultimately, it comes down to flexibility. “We don’t give up the ability to keep our code portable and directly executable when needed — whereas other tools expect you to follow a specialized pattern. At the same time, it gives us advanced features and multiple language options when we are ready to step into more complex patterns,” concludes Chris.