Top critical review
3.0 out of 5 starsDecent but no cigar
Reviewed in the United States on April 17, 2021
I don't rightly know what to do with this one.
On one hand, it's obviously just an introductory material to the world of cloud functions and serverless and should be judged as such, meaning one shouldn't expect advanced topics and considerations within. Taken like that, Running Serverless is a resounding success - it starts from the simplest hello world example and proceeds to incrementally build a tiny website that, while still extremely simple, actually does something you may actually see in practice. Step by step, you are shown the basic concepts behind AWS Lambda and SAM and taught not to make typical rookie mistakes.
On the other hand, Gojko Adžić is a prominent voice in IT, and the book also promised to showcase emergent serverless patterns, best practices and pitfalls - on that aspect it, unfortunately, barely gets a passing grade. I know I can sometimes be a bit of a pedantic (yes, an understatement - I'm allowed a bit of poetic freedom so shush, you) but there's plenty of things that would have irked a lesser nitpicker as well. First, the frequent unguarded advice, much of which would present a horrible idea to most mid-sized to large systems - the absolute worst of these being the promotion of a pattern that breaks database encapsulation in order to cut operational costs without much discussion of the dangers and tradeoffs of doing so. Second, the claims made without any data or references to back them up; for instance, saying that an AWS system X is better than Y for such and such use case - maybe true but it would have been nice to see the arguments and data behind those assertions. Or saying that not loading an image into memory within your Lambda function saves money - true in some cases but probably not in all of them given the fact that AWS and other cloud providers use fairly coarse granularity for memory use - it used to be 64MB for AWS, meaning a function that uses 65MB costs the same as the one that uses 127MB. Granted, the final chapter does go back and review some of the recommendations but to me that felt too little, too late.
And finally, one more thing bothered me - among the listed drawbacks, dos and don'ts of Lambda, not a single mention was made of the fact that Lambdas tend to bind you to AWS almost completely, which makes building large, multi-provider, resilient systems harder since you can't just port the code over with just minor changes. And, perhaps more importantly given the cost-saving obsession of the book - being bound to AWS prevents you from cutting your costs by moving to another cloud provider, just like Zoom did with Oracle Cloud (for a reportedly 5-10x reduction of operational costs). Just sayin'.