You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Our current toolchain for Infrastructure as Code (IaC) is serverless-framework.
Serverless is not ideal and we have been struggling with it for years. We have also created a number of forks and are sitting on an older version of serverless framework.
As we begin our research for adding multicloud support (adding Azure and Google Cloud and its own native Linux environment for Cloudpal), we should consider Terraform, which seems to have become more popular than serverless-framework.
Converting multi-template serverless into Terraform
We use multiple interconnected yml templates, so need to figure out how to import multi-template serverless info Terraform format
Use open source Terraform modules
Modules group complex resources and there is a ton of open source modules. Let's not reinvent the wheel. Specific example: could use it for Lambda in VPC, see for starters: https://transcend.io/blog/opinion-a-case-for-using-terraform-open-source
Other potential use case for TF modules Is adding the Application Firewall.
Migrate customer resources
we have a number of functions performed by so called custom resources in serverless-framework. Need to map them to Terraform.
Redo imported terraform for ease of maintenance and best practices
Terraform may be a leader in declarative IaC, but a new movement has emerged, where IaC is defined in a imperative language like Typescript.
Examples are:
CDK for Cloudformation - product by AWS, supports half a dozen languages
CDK for Terraform - also supports half a dozen languages
see this talk: https://youtu.be/7h8UXqPoOcY
Perhaps for the multi-cloud configs CDK could be easier to manage than the declarative HCL
Pulumi
SST
The text was updated successfully, but these errors were encountered:
Problem
Our current toolchain for Infrastructure as Code (IaC) is serverless-framework.
Serverless is not ideal and we have been struggling with it for years. We have also created a number of forks and are sitting on an older version of serverless framework.
As we begin our research for adding multicloud support (adding Azure and Google Cloud and its own native Linux environment for Cloudpal), we should consider Terraform, which seems to have become more popular than serverless-framework.
Things to consider
Initial migration from serverless yml to Terraform HCL language (they also support json, should we choose to use it) can probably be automated. See for starters:
https://stackoverflow.com/questions/60905099/best-way-to-convert-cloudformation-serverless-template-into-terraform
Converting multi-template serverless into Terraform
We use multiple interconnected yml templates, so need to figure out how to import multi-template serverless info Terraform format
Use open source Terraform modules
Modules group complex resources and there is a ton of open source modules. Let's not reinvent the wheel. Specific example: could use it for Lambda in VPC, see for starters:
https://transcend.io/blog/opinion-a-case-for-using-terraform-open-source
Other potential use case for TF modules Is adding the Application Firewall.
Migrate customer resources
we have a number of functions performed by so called custom resources in serverless-framework. Need to map them to Terraform.
Redo imported terraform for ease of maintenance and best practices
Good best practices talk:
https://youtu.be/WkPIrfW7JWA
Build for multi-cloud
Here is one example how to do it, perhaps on the higher complexity side:
https://www.silect.is/blog/multi-cloud-vpn-terraform/
Localstack
We use serverless in conjunction with localstack for development on dev machines with full AWS simulation (only for the services we use). We will need to research how this will work with Terraform for example, see this for starters:
https://dev.to/mrwormhole/localstack-with-terraform-and-docker-for-running-aws-locally-3a6d
Alternatives to Terraform
Terraform may be a leader in declarative IaC, but a new movement has emerged, where IaC is defined in a imperative language like Typescript.
Examples are:
see this talk: https://youtu.be/7h8UXqPoOcY
Perhaps for the multi-cloud configs CDK could be easier to manage than the declarative HCL
The text was updated successfully, but these errors were encountered: