Can APM Really Handle Serverless? - Part 1
October 27, 2020

Chris Farrell
Instana

Share this

I remember the moment I heard about Serverless technology. On a bus back to the hotel at a conference, I overheard a CTO telling one of her developers about this "new" thing called Lambda. She said (and I'm paraphrasing): "so, the code is there, but it's not running anywhere — until you need it, then it appears, executes and disappears again."

I literally (YES, literally) got goosebumps. I had thought containers were cool, but this? O-M-G!!!

That night I had visions of millions of pieces of code just waiting in the wings for its time to be executed. Of course, the reality of today is that Serverless is a big part of modern application strategy, but not executing every workload like one might think.

There are three key reasons for that:

1. Architecting a serverless function into your operating applications isn't (or wasn't) the easiest thing in the world to do.

2. While the idea of serverless workload execution promises minimal cloud operating costs, the reality of serverless platform pricing is that sometimes it might be more.

3. The monitoring and performance management tools relied upon by IT shops around the globe couldn't handle serverless,

Now, you might be thinking "but wait. Many application monitoring tools struggled for years with containers, but that technology took off like a rocket."

And you would be right. That's one of the reasons I asked myself this important question: Can APM tools Manage Serverless Workloads?

And the answer is "No, not really."

No, don't go searching the web for serverless monitoring to look for a lack of functional claims. Every monitoring solution in the world claims support for monitoring serverless platforms (at least one of them).

What I mean by my answer is that the "APM" solutions we've come to love over the last 2 decades can't handle Serverless Functions or deliver the same performance and operational details that they deliver for other architectural constructs — including App Servers, Frameworks, Cloud, even Containers. And the reason is that they're methodologies for collecting performance data simply won't operate with the same characteristics as it would in persistent code.

To fully understand the nuanced differences between running an agent and capturing data from an API as it relates to monitoring, let's look at some of the operational costs of running serverless code.

Let's first look at what I call the Unicorn of Serverless application functionality — a seldomly called stateless functional piece of work — calculating a payment would be a good example. The inputs are the loan amount, the number of payments and the annual interest rate — the outputs are the interest payment and full payment. The function is called seldomly, requires very few resources to run (meaning little setup) and operates statelessly.

The Unicorn function can be loaded onto a serverless platform such as Lambda with zero permanent persistence (saves money). And a cold start doesn't hurt performance, so it can literally open up and shut down when you need it (also saving money). Now that we've established the perfect way to operate a serverless workload from a financial efficiency perspective, let's consider the three prerequisites:

■ Seldomly called — in the realm of efficient development, services that are never called are either deprecated or rolled into other functionality to make storage and operations as efficient as possible. Thus, a meaningful piece of code that is seldomly called is not really a thing anymore.

■ Requires few resources — again, in the realm of meaningful functions, the need for resources (memory, storage, I/O, etc.) is usually directly related to how important a piece of code is. Which maps back to the same decision point as seldomly called — a function that requires few resources is unlikely to operate on its own, instead being part of a shared service with active listeners, triggers, etc.

■ Is stateless — this is perhaps the least likely of scenarios to be present in today's microservice applications. Even plain old informational websites contain state of users — history, cache, setup, preferences, etc. The odds of having any kind of critical application service that doesn't have a personalized aspect to the workload is rare.

That's why the Unicorn Serverless operation is a rarity, and why cost isn't necessarily less anymore. Since (almost) every function requires some level of resources to use and/or a state — or access to state through a known memory location, two things become a concern.

First is performance — if you have to spin up resource libraries every time you want to run your piece of code, that can have a significant overhead, depending on how complex and resource intensive your piece of code is. I'm going to come back to this in a minute or two, so remember how just setting up your libraries can cause a relative performance impact of 50 — 500%.

Given the performance conundrum, the solution is to use functionality in the serverless platforms, like Lambda, to keep a warm pulse of libraries running so that there's no performance impact. This is referred to as a warm start serverless function.

Now, while this may address the performance issue, naturally it begins to detract from our cost savings. It's one thing to only pay for CPU cycles when you need to run the function — quite another when you're still ALWAYS paying for something, just a little less than you normally would.

Go to: Can APM Really Handle Serverless? - Part 2

Chris Farrell is Observability and APM Strategist at Instana
Share this

The Latest

September 27, 2022

Users have high expectations around applications — quick loading times, look and feel visually advanced, with feature-rich content, video streaming, and multimedia capabilities — all of these devour network bandwidth. With millions of users accessing applications and mobile apps from multiple devices, most companies today generate seemingly unmanageable volumes of data and traffic on their networks ...

September 26, 2022

In Italy, it is customary to treat wine as part of the meal ... Too often, testing is treated with the same reverence as the post-meal task of loading the dishwasher, when it should be treated like an elegant wine pairing ...

September 23, 2022

In order to properly sort through all monitoring noise and identify true problems, their causes, and to prioritize them for response by the IT team, they have created and built a revolutionary new system using a meta-cognitive model ...

September 22, 2022

As we shift further into a digital-first world, where having a reliable online experience becomes more essential, Site Reliability Engineers remain in-demand among organizations of all sizes ... This diverse set of skills and values can be difficult to interview for. In this blog, we'll get you started with some example questions and processes to find your ideal SRE ...

September 21, 2022

US government agencies are bringing more of their employees back into the office and implementing hybrid work schedules, but federal workers are worried that their agencies' IT architectures aren't built to handle the "new normal." They fear that the reactive, manual methods used by the current systems in dealing with user, IT architecture and application problems will degrade the user experience and negatively affect productivity. In fact, according to a recent survey, many federal employees are concerned that they won't work as effectively back in the office as they did at home ...

September 20, 2022

Users today expect a seamless, uninterrupted experience when interacting with their web and mobile apps. Their expectations have continued to grow in tandem with their appetite for new features and consistent updates. Mobile apps have responded by increasing their release cadence by up to 40%, releasing a new full version of their app every 4-5 days, as determined in this year's SmartBear State of Software Quality | Application Stability Index report ...

September 19, 2022

In this second part of the blog series, we look at how adopting AIOps capabilities can drive business value for an organization ...

September 16, 2022

ITOPS and DevOps is in the midst of a surge of innovation. New devices and new systems are appearing at an unprecedented rate. There are many drivers of this phenomenon, from virtualization and containerization of applications and services to the need for improved security and the proliferation of 5G and IOT devices. The interconnectedness and the interdependencies of these technologies also greatly increase systems complexity and therefore increase the sheer volume of things that need to be integrated, monitored, and maintained ...

September 15, 2022

IT talent acquisition challenges are now heavily influencing technology investment decisions, according to new research from Salesforce's MuleSoft. The 2022 IT Leaders Pulse Report reveals that almost three quarters (73%) of senior IT leaders agree that acquiring IT talent has never been harder, and nearly all (98%) respondents say attracting IT talent influences their organization's technology investment choices ...

September 14, 2022

The findings of the 2022 Observability Forecast offer a detailed view of how this practice is shaping engineering and the technologies of the future. Here are 10 key takeaways from the forecast ...