What you should know about serverless, the universe and everything.

As with any new technology, the serverless ecosystem is evolving rapidly. Cloud providers are releasing new features and services on a monthly basis. As a new user, it can be quite overwhelming. So in this post, I’ll help you figure out who’s who in the serverless zoo — I will give an overview of services you should know when building serverless applications, discuss when you should (or shouldn’t) use them and list some common gotchas when using them.

Serverless was the top mentioned technology during AWS re:Invent 2019.

I will focus on the AWS serverless services since AWS is my cloud of choice. However, the offerings of other cloud providers are pretty similar to the ones we will discuss here, so you can use lists like AWS to GCP or AWS to Azure, which are like Rosetta stones for cloud providers, to get started with the cloud vendor of your choosing. …

Exploring AWS Lambda Runtime Libraries

Serverless development is simply the best. Double click, upload your code and you are done, right? Most people are more than happy to leave it at that. If you are not most people, and up for some Lambda exploration, this article is just for you.

In the previous article we got a shell to the Lambda container, downloaded Lambda runtime environment and discovered its components:

  • bootstrap.py — the python code wrapping our handler.
  • awslambda/runtime.so — a python-compatible shared object bootstrap.py uses it for, well, pretty much everything.
  • liblambda*.so — In his turn, runtime.so uses other shared objects. We will focus on liblambdaruntime.so, …

Image for post
Image for post
Diving deep down. Photo by Talia Cohen

This article is the first part of a two-piece series. The next part is right here!

AWS Lambda is an excellent environment for rapid and scalable development. As a developer, I love using it. The main advantage of Lambda is that you can focus solely on your code. No more thinking about web-servers, machines, scalability and other issues for which you REALLY don’t care. Upload your code, say the magic words (aka serverless invoke) and your code is executed. However, just because you CAN ignore those things doesn’t mean you have to, right?

I believe that knowing your environment can be a handy tool, and it can also be fun, so I decided to explore the Lambda environment. There are a few stories that review the specs of the Lambda environment but my ultimate goal was to analyze not just the container of the Lambda but also the code of Lambda itself. I wanted to fully understand the code in charge of executing my code. …


Gal Bashan

Software developer, security researcher. Serverless enthusiast @epsagon

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store