Contents

IaaC & GCP:The ways of the world!

Idea

Recently I had the bright idea that even though I haven’t used IaaC properly yet, I can roll out my own better IaaC solution! Basially, Write TS code for managing infra instead of terraform files!

Conclusion

Saw AWS SST, inspired me to have something like that for LGF, looked more, and implementing seemed a pain. Best current solutions seems to be using terraform (hcl).

Existing Solutions

a. Google deployment manager

Pros

  • well integrated with [[GCP]]

Cons

  • gcp specific
  • yaml config, not a fan
  • no native lang bindings

b. Pulimi

Pros

  • multiple lang bindings
  • looks easy to use

Cons

  • bad support for gcp resources (looks good for aws)

c. AWS SST

Pros

  • great for aws sst

Cons

  • bad for gcp

d. Terraform CDKTF

Pros

  • seems to have better support than pulini for gcp resources
  • native bindings for multiple lang

Cons

  • tooling experience was painful and slow

e. Terraform (HCL config)

Pros

  • good support within GCP docs
  • seems to be the current mainstream standard in devOps
  • export from gcloud gcloud beta resource-config bulk-export --resource-format=terraform >> gcp_resources.tf

Cons

  • learning a new DSL is annoying
  • managing state is a pain, need to use gcp cloud storage buckets (recommended in gcp docs) or terraform managed service

Inspiration: https://github.com/serverless-stack/sst