5 ms·
Honestly, I disagree with the "low barrier to entry" point on the basis of all the other points that follow. Yes, "Hello World" is easy. But a non-trivial distr
by llarsson 7y ago
Honestly, I disagree with the "low barrier to entry" point on the basis of all the other points that follow. Yes, "Hello World" is easy. But a non-trivial distributed system consisting of dozens or hundreds of these functions, where each function is defined and deployed on its own, with an automated deployment pipeline with rollback functionality... not to mention debugging functionality, etc, etc.
But sure, Hello World is easy.
- mjb 7y agoI work in this space, and the reason I do that is because I believe we can (and should!) make it fundamentally easier to build big distributed systems. Today's serverless offerings (including compute services like AWS Lambda, databases like Aurora Serverless, and others) do a great job of reducing complexity in some areas, but do still tend to add complexity in others. It's also "just one more thing to learn", especially if you are already familiar with server-based system operations. One trend in this space I'm super excited about is tools like pywren (from UC Berkeley) and gg (from Stanford), which show the way to building much higher level abstractions that allow non-experts to build and run pretty huge systems. I think we're going to be seeing a lot more of that, and the serverless infrastructure is a huge enabler there. Another trend is observability, and all the cool tools folks are building to see how systems work 'as built'. These tools can cut through a lot of complexity when debugging systems, and point very clearly to where problems are happening. This is an area where serverless is catching up to single-box tools, and will be for some time. Still, the core problem here is that distributed systems are still harder to debug than single-box systems, but I think that's entirely a reflection on immature tooling. I believe that the fundamental law here is that with the right abstractions distributed systems can be significantly easier to debug that single-box systems.