Hacker News new | ask | show | jobs
by TobbenTM 1418 days ago
Kind of?

For my new projects nowadays, I'm pushing mainly serverless approaches using AWS Lambdas (behind API Gateways for stuff that needs to be reachable by HTTP).

I think this shifts the complexity from managing Kubernetes and its accompanying ten-thousand-yaml-files to infrastructure-as-code and the complexities of dealing with AWS. And I happen to prefer the latter, even though it's not infinitely better by any margin.

For the few things that needs to be always-online, or 3rd party self-hosted apps, I'm still on Kubernetes, or pure Docker if possible.

2 comments

How do you get over vendor lock-in, and the issue where it is often difficult to debug these solutions?

Also how is the cost of Lambda? I know for AWS the logic apps have a really high cost (but function apps seem to be reasonable)

Vendor lock-in is always omni-present, even if you are using Kubernetes. The only difference is that the vendor lock-in you get when you run Kubernetes is mainly with the infrastructure layer hosting the code, instead of the code entrypoints.

Not to mention any managed services you want to use, which also will lock you in. So I don't do anything extreme to avoid vendor lock-in, other than making my code general enough to only have a small surface area for the lambda entry point. As a practical example, all of my APIs hosted on Lambdas are ordinary ASP.Net apps that would work identically if hosted in Docker containers.

Pricing so far is one of the biggest benefits of doing serverless approaches. I'm down to paying a couple of dollars per month for something that I'd pay tenfold for if doing Kubernetes. Both the monetary sum of only paying for what you're using, and also not having to worry about cluster maintenance, scaling and management is a godsend.

infrastructure-as-code and the complexities of dealing with AWS

So cloudformation YAML? or CDK?

Not the OP, but I have had success with CDK. The main advantages for me have been discoverability with respect to resource properties, along with proper, higher-level abstractions pertaining to AWS infrastructure. https://aws.amazon.com/blogs/devops/leverage-l2-constructs-t...
Or terraform/terragrunt, Pulumi or one of the other options out there
Terraform only for me, have not experienced anything better.