Ask HN: What’s most challenging in development for AWS Lambda (and serverless)?
Lately, I’ve been working on a serverless development kit for Go. The goal is to make the serverless development experience as smooth as the local. Write, build, run - that’s all.
While working on it, we found these things the hardest in serverless: * complex setup and deployment procedures * hard to debug * need to change thinking about the system architecture * management tools (AWS console) made for admins, instead developers
Have you been playing with serverless? How was your experience? What’s been hardest?
7 comments
[ 3.9 ms ] story [ 31.2 ms ] threadI've mainly written simple Lambdas in Python and for that it is easy to "get things done" with the AWS Management Console.
In some sense, when things "get hard" with Lambdas you probably shouldn't be using Lambdas anymore. The tough issues you address can best be addressed by having opinionated answers to them, but if those opinions don't jive with the rest of the systems somebody uses you can take your tool out of the running for some users.
Perhaps the most central idea in AWS architecture is how you keep track of connection information. (e.g. credentials to talk to Dynamo DB or SES or whatever) Life can be sweet if you have a good answer for this, but if you don't you are going to suffer, get hacked, etc.
I think Lambdas can be, or better, soon will be suitable for almost all use cases. We are just missing proper tools and good design patterns. Those must to be opinionated.
Using the API Gateway is optional now but is was a pain to configure for simple cases.
AWS in general is painful to manually configure for simple project. Automation improves the situation but again is a waste of time for very simple projects.
Admittedly, I'm a fan of serverless. I believe serverless will soon become a dominant form of cloud computing. I think it is just a matter of immaturity of the platforms and lack of tools. While I can't do much about the platforms, I can try to build better tools.
That's what my team and I are doing with Mantil https://github.com/mantil-io/mantil
The dev cycle can be super fast. I have never before built stuff so quickly. Using "serverless deploy function -f functionName" means I can push my code changes into the cloud in 3 seconds for testing purposes so need to even setup local testing environments which can get very complex and be totally inaccurate compared to the environment that exists in AWS