Tolga Talks Tech is a weekly video series in which Onica’s CTO Tolga Tarhan tackles technical topics related to AWS and cloud computing. This week, Tolga discusses Terraform vs. AWS CloudFormation vs. Serverless with Troy Ready, Lead Platform Engineer at Onica. For more videos in this series, click here.
One of the tools that your team has built is called Runway, and we’ve talked about this tool in the past. Runway supports both AWS CloudFormation and Terraform. Why did we choose to support more than one tool?
It supports not just AWS CloudFormation and Terraform, but also tools like serverless framework. It’s really about using the right tool for the right job.
What’s an example of where we would select Terraform vs AWS CloudFormation in a project?
The easy answer – there are things that Terraform supports that AWS CloudFormation doesn’t. The nature of how its community supported, means that often when an AWS service is announced, the Terraform community wants support for those services before the AWS CloudFormation team is able to add support.
Are there other reasons to pick one over the other?
It gets really into preference there. It’s a debate around the syntax for declaring resourcing and native module support vs a lot of teams like AWS CloudFormation, which in its nature is a managed service – a lot of elements that you do not bring on as a team to support yourself.
In Terraform you have a command line tool you have to maintain, and in AWS CloudFormation it’s a managed service. So what does that look like? What’s the difference for teams?
Our goal with Runway is to make it very similar. All the considerations that you need to have on the Terraform side, and managing it yourself, with the right tool like Runway, it takes care of that. The experience is similar, though like you said with CloudFormation, it’s handled out of the box. You don’t have to think about it as much. We work to bridge that gap so it’s kind of similar.
Can teams mix and match some Terraform, some CloudFormation? Have we done that before?
Yes, a lot! We have our teams here, that serverless is the best thing to use for sort of that cloud native development work. The easy, early iteration around developing Lambda functions and deploying them and then pairing that with something like Terraform which is really good for Cognito user pools or other early infrastructure stuff. So that’s sort of, a little bit of serverless and some Terraform or some CloudFormation – mix and match. It all works together and is very natural and it is very liberating for our developers and users in the community, to be able to have that flexibility.
You made some serverless framework. Runway also supports serverless framework. How did that come to be and what’s the purpose?
It really spun out of our cloud native development team here at Onica. It is the best tool for that sort of iteration. Other tools like Terraform have support for deploying a Lambda function, but that’s not the same functionality that serverless brings in terms of packaging, testing. All of that lifecycle of development – it’s just better at that than really any other tool out there. So that’s why we added support, and then it pairs well with the other things to complement it.
Want to know more about AWS CloudFormation? Read our CloudFormation Nested Stacks – The Easy Way blog to learn about how to deploy your infrastructure in a modular fashion. Interested in Serverless? Learn more about cloud native development here.