This post is the fourth in a multipart series exploring the basics of serverless. Check back each Monday for additional installments.
Serverless architectures are attracting attention for their ability to support faster development times alongside their potentially lower operational costs, due to a pay-only-for-the-compute-you-use model.
That means that companies implementing serverless do not need as great a visibility into the infrastructure that spins up the compute power. One of the key benefits of serverless architectures is that auto-scaling is enabled so that DevOps isn’t needed to keep a constant watch on when new server instances need to be provisioned.
The downside of this is that in many places, there is less visibility into what is happening if something is not operating as expected, or is generating higher costs than forecasted. Serverless can also move the focus closer to the application level, which brings a whole new set of application monitoring concerns.
So it is probably only natural that in the emerging serverless ecosystem, one of the first ecosystem blooms has begun to flourish around DevOps tooling. The Cloud Native Computing Foundation’s Serverless landscape identifies at least six DevOps tools, although there are also platform agnostic monitoring tools available that can provide visibility in serverless systems.
Here are a few of the most important tools you should know about for supporting an enterprise environment.
CloudZero bills itself as the first serverless intelligence platform built for a world where the cloud is viewed as the new computer and cloud providers such as Amazon Web Services (AWS) are the new OS, said Erik Peterson, CloudZero CEO and Founder. CloudZero’s platform enables engineers, architects, and DevOps teams to monitor and understand their serverless systems in real time and manage latency, errors and costs across one or hundreds of cloud accounts from one unified platform.
“The first problem we solve is identifying anomalous behavior, discovering what changed in a serverless system, and then knowing who or what made the change,” said Peterson.
At present, CloudZero is available for beta testing with a general release planned for later in 2018.
Dashbird is an AWS Lambda monitoring and debugging platform. Traditional application performance monitoring approaches usually send data via a remote API to collect logs, which are then used to create dashboards and alerts based on that data ingested. That’s not an approach that works for serverless, though, as the latency is too great. As a way around that, Dashboard deploys a flag for function retires to show when it was a retrial or when it was first invocated.
Perhaps one of the unexpected use cases for Dashbird has been its use as a debugging tool. One of the challenges of serverless is that there is no development staging, so developers must execute their functions to see how they run in the real world and then figure out what is going on if it does not perform as expected. Dashbird’s open source Serverless Offline plugin for use with the Serverless Framework can emulate Lambda operations and an API gateway to allow developers to create a development staging environment.
Epsagon helps companies and developers utilize serverless technologies without losing control of their applications, providing end-to-end visibility and visualization of the serverless architecture.
Epsagon also enables fast troubleshooting, significantly reducing system downtime. Developers have reduced their troubleshooting time by over 80 percent using their technology. Using distributed tracing and AI technologies, the company analyzes the application’s performance and bottlenecks, improving the end-user experience while keeping costs in mind.
Like other DevOps tools in the maturing serverless ecosystem, Epsagon is in beta release at the moment, with general availability (GA) planned for later in the year, according to Nitzan Shapira, co-founder and CEO of Epsagon.
Shapira says some of the early adopters include data analytic startups, finance, and mobile application developers. One current customer is an ad tech company. “They use serverless pipelines to analyze their data,” said Shapira. “They keep our transactions views page open all day long. They use Epsagon to troubleshoot critical issues in their system and do root cause analysis. They reported savings of two hours per day per developer using Epsagon.”
Honeycomb is a service that helps finds the critical issues that can’t be found through simple log analysis. It allows users to query and visualize millions of events in milliseconds, and see the raw data behind every result. It is agnostic about where the data comes from — no agent or plugins required. The API just takes a structured data blob with a write key, an approach that “makes it a very natural fit for stateless, serverless code snippets,” said Charity Majors, CEO of Honeycomb.
Majors says a novel DevOps use case that serverless architects are using Honeycomb for is the new tracing feature. “Traces are just an event like any other, so you can pass the trace ID along to your serverless functions and see a waterfall graph of wherever your time and work is actually being spent,” she said. With Honeycomb, she noted, you have the ability to flip back and forth between breadth-first exploration, to a depth-first inspection of traces, and then expand back out to breadth. For example, you can narrow down a bug until you find an instance of it, then trace that instance, then zoom back out to see everything else that is impacted by that bug.
IOpipe offers a serverless DevOps tool that focuses on what co-founder and Chief Technology Officer Erica Windisch calls “Application Ops.” She says that in serverless environments, it is more important to look at what is happening in applications each time a function is called.
IOpipe has been built to provide a suite of monitoring and debugging tools that allow deeper insight into what is happening when each Lambda function of a serverless workflow is called. With IOpipe, you can be working in a code editor and add the IOpipe serverless framework plugin or use our decorator in your application. Then you can have IOpipe open in another window and have information fed into that.
Stackery‘s serverless toolkit helps professional development teams accelerate their software delivery to ship production-ready serverless applications on AWS Lambda. With its flagship software already in general availability, Taggart is now working on the mission-critical needs of serverless, focusing around collaboration, governance, and standardization.
“We’re currently making some significant enhancements to our CLI and the developer workflow. We’re creating the most efficient professional serverless development cycle on the market and are releasing these updates throughout the next 30 days,” said Stackery CEO Nate Taggart, whose DevOps tooling has previously been covered on The New Stack.
He points to recent work with one enterprise customer who was struggling with a challenge that Taggart sees frequently: the need to create a standardized and repeatable release process within a serverless architecture.
“They tried working with AWS SAM, CloudFormation, and the serverless framework, but had a tough time managing environments, automating releases, configuring IAM, and running their testing requirements,” he said. The company selected Stackery for the environmental management, IAM policy automation, and centralized release cycle, he said.
“Now, every developer on the team can quickly stand up a new instance of the application in an isolated environment. This has enabled them to accelerate their development cycle and automate their testing and release on every accepted pull request,” Taggart said.
Thundra is an observability solution designed for serverless architectures. Some of Thundra’s key capabilities include:
- Automated instrumentation: Thundra does not require users to add manual instrumentation and log statements into their code to collect data. Code is automatically instrumented to collect the relevant data to gain full visibility and resolve issues quickly.
- Full observability: Thundra collects and provides a unified view metrics, logs and traces in context to enable rapid problem resolution.
- Zero overhead: Thundra supports asynchronous data collection (as well as synchronous) to ensure there is no impact on the application.
- Intelligent sampling: Thundra supports configurable intelligent sampling to ensure the data required to identify and troubleshoot problems is collected while keeping costs at bay.
While Thundra is in early release with a GA planned for later this year, early adopters are already finding value from the tool.
“One of the early adopters (a global financial company) needed a solution to ensure they can provide the same level of visibility to their developers as they move to serverless architectures,” said Serkan Özal, Cofounder and Head of Development at Thundra. “Since their existing APM tools do not work in serverless architectures, they have adopted Thundra as their observability solution for serverless applications.”
DevOps Tooling in a Maturing Serverless Ecosystem
While serverless is far from a mature technology market, it is advancing rapidly and DevOps makes sense as the early frontrunner for ecosystem players to stake their claims. Serverless takes away some visibility as infrastructure decisions are handed over to cloud providers to manage.
That brings some risk that needs to be managed at an application level. And, as Nitzan Shapira, from Epsagon, explains, to serverless models as a whole: “The most difficult thing to understand is the different resources, queues, databases, and triggers and how they are all part of the one system now.”
Stackery is a sponsor of The New Stack.