Introduction to Serverless Computing
Cloud migration has enabled software companies to outsource their old-school, in-house servers to cloud providers thanks to an infrastructure-as-a-service approach. After that, IT admins and operations people continued to manage the provisioning, patching, and securing of their cloud servers.
Eventually, cloud providers came up with a new cloud execution model where they fully manage the provisioning and the allocation of these servers. In this model, called function-as-a-service or serverless, cloud vendors run your applications in a stateless, ephemeral container when triggered by an event.
There are many different event triggers, such as a direct API call, a message written to a queue, a signal sent by an IoT device, and so on. FaaS arose as a business model thanks to its pay-as-you-go billing method. With this, cloud providers charge their customers only for the time the function is running. This is particularly useful for companies that have unpredictable traffic because they can scale automatically, and they don't pay for idle resources.
AWS announced its Lambda service as a FaaS solution back in November 2014. Azure and Google Cloud Functions followed in early 2016 and March 2017 respectively.
However, in exchange for the pay-as-you-go service and simplicity in operations, software developers lost the ability to monitor their serverless applications. This is due to developers uploading their code onto cloud platforms that do not provide access and control of the cloud-based environment. This Refcard looks into challenges of monitoring and observability within serverless architectures and explains how a monitoring system for a serverless architecture can be implemented.