3 ms·
I'm curious, maybe I missed it, but why Terraform instead of AWS SAM? I find AWS SAM and CloudFormation very easy to work with and the TF is filled with AWS spe
by throwaway2016a 5y ago
I'm curious, maybe I missed it, but why Terraform instead of AWS SAM? I find AWS SAM and CloudFormation very easy to work with and the TF is filled with AWS specific clauses so vendor lock-in is the same.
But I'm sure Terraform has some points for it too. I'm curious what people's thoughts are.
- digianarchist 5y agoDoes AWS SAM handle alias and weighted invocations well? My main complaint with Terraform is that it really starts to break down when trying to provision canary deployments with aliases and weights.
- throwaway2016a 5y agoI haven't tried myself. But this example is using AWS SAM https://aws.amazon.com/blogs/compute/performing-canary-deployments-for-service-integrations-with-amazon-api-gateway/ https://aws.amazon.com/blogs/compute/performing-canary-deplo... But it does seem to require human input in the Console. I'm not sure if that is a requirement or they just did it that way for the tutorial.
- ianic 5y ago(Author here) I have a great experience with Hashicorp tools and great respect for both the company and the founders. I was using Consul, Nomad, Packer, and Terraform for years in previous projects. So I chose Terraform in this serverless world also mostly because of my experience and trust in the tool. AWS SAM, Serverless, AWS CDK, ... are all valid tools. Just don't use AWS Console for changing infrastructure; your clicks are hard to share ;). Here in Mantil we are using mostly Terraform but also the CloudFormation and AWS SDK for operations where they fit better. In the article I was trying to highlight the difference between two approaches; one imperative (build infrastructure line by line) the other declarative (describe desired end state).
- throwaway2016a 5y agoThanks for the thoughtful reply. I greatly prefer declarative vs imperative. But since SAM is also declarative, I was just curious why TerraForm. Use what you know and what you already have in you stack!