Reading AWS Serverless in Action (2)

This is the second instalment of my posts about AWS Serverless in Action; the first one is here.

We are now on chapter 2 and at last we get to do some “real work”. We get to build a working serverless application, in this case one that allows you to upload videos and have them transcoded to different formats. As a computer vision engineer that’s a facility that makes a lot of sense but I can see that many people might wonder why this particular domain – it’s a bit niche. It makes sense, I think, because it allows a very simple application to be put together from just 3 services:

  • S3
  • Lambda
  • Media Convert

Pretty much any AWS application is going to use S3 storage at some point and Lambda is very much the core service for serverless. But just on their own it’s difficult to come up with a compelling first application. Media Convert is a very simple and self-contained service that can be spun up pretty quickly.

So that all makes sense as far as I’m concerned. For me the important part of this chapter was the focus on the frameworks that can be used to deploy serverless applications. The chapter mentions 3 (Serverless Application Model, Serverless Framework and Chalice) and settles on Serverless Framework. That’s interesting to me as I have been aware of a couple of these (SAM and Serverless Framework) but haven’t yet felt compelled to use them in my own applications yet.

Many non-Serverless AWS practitioners will be familiar with and use Infrastructure as Code tools like Terraform or AWS’s Cloud Formation. When you first get to work with AWS most people will use the console or maybe the command line to create resources but will quickly realise that more control and repeatability can be had from scripting tools. What I want to know from chapter 2 and indeed the whole book is why I should move to a serverless-oriented framework in preference for tools I already know how to use.

Whilst the example application in chapter 2 is quite lightweight, you can at least see Serverless Framework in action. What seems clear to me is that where your serverless application is going to involve a lot of small functions (and that’s kind of the point of serverless) then you need good support for writing and deploying the source code for each Lambda function. When using CloudFormation I’ve tended to have my own little function packaging scripts that include and zip package dependencies and push to S3. The zip is then referenced in the Cloud Formation. Severless Framework automates a lot of this for you. Sounds good.

One last thought. The focus of the chapter so far as programming languages is concerned is Javascript and node.js/npm. At least where AWS Lambda is concerned Node.js and Python are the 2 primary frameworks. I’m pretty comfortable with both these languages but if pushed I probably plump for python. Will the book be just focussed on Node or will we see some Python as well. Time will tell…

Leave a comment