My Choice of Tools for Serverless Development

Serverless is a relatively new technology. But because of popularity, there are many tools you can use. Friday, March 1, 2019

Provider: AWS

AWS have provided Lambda (FaaS) since 2014. This is way ahead of two other major cloud providers: Microsoft and Google. Google Functions only came out of beta in 2018!!! AWS Lambda also has the shortest cold start, which is really important in any user-facing service. Lambda has more integration points and AWS Lambda owns 70% percent of the active serverless platform user base. That means a lot of community support, a lot of libraries, tools, tutorials, books, and so on.

AWS has a long history of managing legacy services. For example, SimpleDB was replaced by DynamoDB in 2012, but AWS still fully support it and has no plan to remove it. Google and Microsoft do not have such a straight record. Google is notorious for shouting down user-facing services without a lot of warning. Here is list of Google discontinued products and services. What about Microsoft? Do not get me started. I have been a .NET developer for 14 years. There has not been a year without a technical shift swiping a lot of things that they shipped only a few years ago and were not initially designed well. That's why I stick to AWS.

Language: Node.js/JavaScript/TypeScript

The Node.js platform and its language JavaScript is at its peak in popularity. Node.js is in most cases the first platform that is supported in any new service provided by any cloud provider. In Node.js, you can find most code samples and tutorials.

JavaScript is the language that runs in a browser where you can reuse your expertise, libraries, and code. For Node.js, you can also find an enormous number of modules for anything you can think of.

JavaScript is an interpreted language and has a lightweight runtime. This means a short cold start, the time for first execution of the function, and a lower memory footprint.

If you are building a serious thing, learn TypeScript. TypeScript gives types to JavaScript, which makes larger programs much easier to write and maintain. It is similar to C#, as it comes from the same author, Anders Hejlsberg.

Editor: Visual Studio Code

Visual Studio Code is a tool provided by Microsoft. It is free and open source. It does not have anything to do with the classic Visual Studio, only similar in name. It is new, written in JavaScript/TypeScript, and uses Electron as a shell. Because Microsoft is the creator of TypeScript, it also has a great support for TypeScript. It also has an enormous set of extensions. Visual Studio Code in currently very popular so it also has hordes of developers concentrating on it and writing new extensions for it.

Development & Deploy Tool: Serverless Framework

There are a lot of other similar tools, but Serverless Framework originates from the beginning of the serverless era and became the de facto tool to create, deploy, and test our serverless applications. It has a huge community and provides an enormous range of plugins for almost anything you need. It also supports most major FaaS providers.