TL;DR
FaaS is about running back end code without
managing your own server systems or your own
server applications
applications that run in stateless compute
containers that are event-triggered,
ephemeral and fully managed by a 3rd party
● 2 overlapping areas: BaaS and PaaS
● run code without provisioning or managing
servers
● horizontal scaling is completely automatic,
elastic, and managed by the provider
● responds to triggers
Typical servers in business and enterprise data
centers deliver between 5 and 15 percent of
their maximum computing output on average
over the course of the year
● Reduced operational cost
● Good with irregular, high spike traffic that
cannot be handled by auto-scaling
● Promotes best coding practises
● Ugly hacks for keeping the function alive
● Vendor lock-in
● Unit testing is ok, integration... another story
● Repetition of logic
● Concurrent limit
● Logging, Monitoring and Debugging
FAAS is seen as a better choice for
event-driven apps with few event types per
application component,
while CONTAINERS are seen as a better choice
for synchronous-request driven components
with many entry points
This talk is divided in 2:
Introduction on What is Serverless,
Serverless logging with ELK, demo in NodeJS and GOlang
To summerize, this talk is about why I think that ELK is a good solution - not the only one… - for monitoring logs and metrics for Serverless
When we talk about serverless we are mainly talking about AWS’ Lambda, which is the more mature solution out there, released in 2014.
Other vendors are coming with similar solutions like:
Google Cloud Functions (Alpha)
Azure Functions
PL support:
Lambda: Python, Java (slow) and NodeJS
Google Cloud: NodeJS
Azure: Javascript, C#, Python, PHP
We’ll talk about Lambda
No offline testing
Concurrent limit is 100 functions, then queuing / throttling happens
There is the perception that VMs, Containers and Serverless are equivalent alternatives
Although they represent higher layers of abstraction
VM abstracts the hardware
Container the OS
Serverless the language runtime
They are suited for different use cases. This is about having more choices, not the next hot thing