qatsi: (wally)
[personal profile] qatsi
Book Review: AWS Lambda in Action, by Danilo Poccia
At work we do regard Amazon as a cloud services provider with a sideline of a bookstore. There's a push at work to adopt cloud services in general, including where appropriate the "serverless" model. Of course it's not actually sans server, it's rather that you, as the developer, don't control or manage the server.

I find myself wryly amused by the idea that lambda functions are anything new. I can't really see the difference between them and a stateless EJB in the JavaEE world. They are packaged and accessed differently, and there's a different cost model associated with them, but at a high level, it's just a piece of business functionality exposed for access somewhere on the network.

As for the book, well, it seems like a good but limited basic introduction to the AWS Lambda service. There seems to be an irony fail when the author explains that the benefit of serverless is that the developer doesn't have to worry about infrastructure, then immediately goes on to pebbledash the pages with reams of CloudFormation scripts (which, erm, provision and configure the infrastructure).

Another weak point, for me at least, is that code examples are limited to JavaScript and Python. These are clear and for the most part comprehensible even though I'm only moderately familiar with the former and not at all with the latter, but it would have been nice to have a Java example here or there. Given there are concerns about things like JVM startup time, and that Java servlets were a solution to the slow startup of CGI scripts in the early years of the web, it would be useful to have seen a discussion about whether this is a problem and either how to address it, or to explain how it's been overcome.

The examples in the book focus partly on authentication services, and partly on an image-sharing application, with integration points between the two. It's a good and realistic choice of applications, but the experience is a bit disjointed - perhaps that's inherent in the nature of Lambdas and would more positively be expressed as "decoupled". In the later sections on management of secrets I found it hard to swallow the example using hard-coded but encrypted passwords. Although I got the idea that AWS permissions would enable the code to decrypt the password at run-time, I still didn't like the idea that it could be hard-coded into the application. When you need to change that, it should be simple and quick to do so. Even just holding the encrypted data in a protected file on S3 would have made more sense with little additional complexity in the code. In the final sections, the book talks about receiving events from a MongoDB feed, but shies away from actually going into any detail, which leaves the reader a bit deflated.

On the plus side, there is quite a lot of discussion about how Lambdas can be used in conjunction with other AWS services, and this seems quite clear and sensible, although at the cost for the developer of encouraging vendor tie-in. The discussion on Lambda pricing and its consequences is also useful, though obviously subject to change. Overall, I did find this book useful, but not compelling.

Profile

qatsi: (Default)
qatsi

May 2025

S M T W T F S
    123
45678910
11 121314151617
1819 2021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags