Author: Ben Rady
Publisher: Pragmatic Bookshelf
Reviewer: Ian Elliot
Serverless single page apps - is this even possible?
This is a frustrating book because it clearly has something to say, but it fails to say it clearly enough. You might well be wondering what a serverless app could be? My first thought was that it was the sort of self hosting app that you can create using Node.js or the latest versions of ASP.NET. This is not what the book is about. In, fact it is quite difficult to find out exactly what the book is about.
The idea seems to be that you make use of cloud servers that offer specific micro-services to build a complete system. The book does say repeatedly that there are other suppliers, but it really only discusses using Amazon AWS.
Chapter 1 is where you would expect to find the first introduction to the grand idea and to an extent this is what you get, but it is difficult to extract. The problem is that an example is used, the example that runs though the book. In Chapter 1 we get to deploy a very simple HTML page using Amazon S3. This is an interesting idea, but how it all works is lost to the reader because a script is used to set everything up. You are expected to learn how to do the job by simply typing commands at the command prompt.
This means you don't have any real idea what is going on unless you follow the steps and view the script. Reading the chapter doesn't really get you anywhere at all. This is technology presented as a magic trick and as the trick seems to be quite good it is all the more irritating that the details of what is going on aren't made clear.
The next few chapters could be in any book on developing a single page web site - routing, view, model testing and so on. Again enough to make it difficult to follow the big idea that the book is supposed to be explaining.
Chapter 5 dives into using Amazon Cognito which is an authentication system. We also have a look at fetching a Google identity which does widen the consideration outside of Amazon. Chapter 5 is about using DynamoDB as your database - again nothing really special except someone else is hosting your database. Is this a serverless architecture?
The next topic is Amazon's Lambda, which is Amazon's version of IFTTT. You can make things happen in response to simple inputs. Chapter 7 is about serverless security - and is basically a discussion of how to keep your AWS account secure, how to avoid injection attacks and cross site scripting etc.
The final chapter is about scaling up and we have a look at monitoring and analyzing web traffic with a bit of discussion of how much things cost.
There were parts of this book that were interesting and I like the emphasis on deployment first. I guess you could say that this is the "Hello World" approach to web development. The idea of using off the shelf services from cloud providers like Amazon to put together a system is also interesting, but it simply isn't explored sufficiently. It is difficult to believe that there is a coherent alternative to Amazon's collection of services and its APIs. This means that the book would have been better titled something like "Using Amazon to build a web system". However that doesn't really cover this topic adequately, either.
Overall the book is best summed up as a good idea poorly explained. If you are thinking of taking a similar approach to a project, or are just interesting in seeing if you can find ways of making the idea work, then the book might be of some use.
To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.