HN user

emrahsamdan

9 karma
Posts11
Comments14
View on HN

There are thousands, if not millions, of developers, now using serverless to build real-life customer-facing applications. As in the whole new tech, it gets adopted for non mission critical apps first between 2016-2018. Starting with 2019, more and more companies adopted the technology and the Cloud providers, especially AWS, invested heavily to improve the integrations and remove the roadblockers. See how Lego has moved the whole e-commerce app into serverless. https://medium.com/lego-engineering/accelerating-with-server...

I also strongly believe that severless is an overloaded term and everyone understands something different from it. Some people consider this only as a FaaS but I think that it's any cloud service, that can auto-scale to infinity, scales to zero, pay-per-use and managed. I frankly believe Serverless should be regarded as a paradigm rather than a technology advancement. here's a very nice blog about it: https://ben11kehoe.medium.com/serverless-is-a-state-of-mind-...

Serverless as a term mixed up with FaaS. In 2022, Serverless is more general as it can be defined anything that autoscales to infinity and scales to zero when not used and pay per use. Amazon DynamoDB is also serverless in that sense for example.

You are right about lack of observability tools for AWS Lambda. Thundra was born because of same maddening at our side. You have very solid questions that we are enthusiastic to tell more and more:

1) Automatic instrumentation is what creates no code change. Once you add Thundra to your environment variables, you can change the monitoring settings with annotation or additional environment variables with no code change for Java. For Node.js and Go, You simply wrap your functions with our agents. With manual instrumentation on the other hand, you can also add code blocks to inspect your variables.

You can check our codes here: https://github.com/thundra-io. We are open to share more, if you want any further questions.

2) Zero overhead is one of other strong points of us. You need to switch to async. monitoring for this. This means you need to add "our" lambda to your environment variables (Please check for it: https://github.com/thundra-io/serverless-plugin-thundra-moni...). Then this lambda sends logs of your function to us. Overhead of sending and retrying for failed logs will not happen. Only overhead can occur because of make your code to gather more logs for our lambda to read. But this is truly negligible.