Brief: Python Runtimes in Serverless Computing, 2018

Another year, another version

Arguably one of the most talked about cloud computing technologies are serverless functions.

Every major cloud computing platform worth its weight in salt has some version of a serverless service.

This summer Amazon and Google rolled out the latest Python 3.7 version for their serverless platforms.

Meanwhile, Azure released Python 3.6 runtime in August.

IBM did not deliver any other runtimes on their serverless platform other than Nodejs.

Amazon is the only platform which has Python 3.7 fully released. The other platforms have Python 3.x in Beta release.

The major differences between the serverless platforms apart from the ecosystem with which they sit, exists with their runtime architecture. Simply put, how the context is passed around to the function call.

Amazon’s Lambda stuck with their event/context data structure. The handler accepts two parameters which can access the current function’s request state.

On the other hand, Google adopted the use of Flask, the popular micro-framework, to handle the functions invocation. Leaning on the popular framework provides lots of built-in functionality. Google can leverage the package to attract developers already familiar with Flask and prevent a “reinvent-the-wheel” type situation from occurring.

Lastly, Azure has adopted its own model of context management. The main difference from the other two platforms is the ability to pass in multiple user defined parameters to the main function. Via json file, users define parameters passed into the functions invocation. This allows for more granular control over the runtime behavior of the function.

In 2018, there was forward progress in Python serverless platform development. It’s clear that the major platforms, Google, Amazon, and Microsoft all see Python as a premier runtime language for their respective services.