ServerlessConf Paris : How to monitor Serverless applications and Lambda functions ?
The leading global conference devoted to the serverless trend, Serverlessconf is a community conference that aims to share experiences about developing applications for so-called serverless architectures. Serverlessconf will take place in Paris on 14 and 15 February. Today we choose to present you one of the inspiring speakers that will join ServerlessConf, Kassandra Perch, to talk about observability and monitoring for Serverless functions.
Kassandra is a Developer Relations Engineer by day, and a robotics designer, programmer, and author by night. They have a passion for serverless and IoT, and they love teaching and learning from other developers.
What is you experience with Serverless?
I’ve been working mostly with observability and monitoring on AWS Lambda. At IOpipe, we build tools to make AWS Lambda functions more observable, allowing you to see more what’s going on around the execution of Lambdas. IOpipe is built on AWS Lambda functions, so we definitely leverage a lot of technologies that we monitor day to day. I work on two layers of Serverless: I work with Serverless by writing functions and teaching other people about Serverless, and I also work in the tools area, and help others to see what’s going on in their Lambda functions.
Why do we need better observability and monitoring for functions?
Serverless is such a new technology, and tools are just starting to catch up. We need more observability because we have a higher level of abstraction when we move to serverless. Architectures become more and more abstract as time goes on, it starts with Platform as a Service, where you no longer need the hardware, to Infrastructure as a Service, where you no longer need to worry about spinning up your own containers, and now Serverless where you don’t need to worry about runtimes, or getting machines set up, you just write a function and send it. With those layers of abstraction, the benefits are back and forth, you also have the added challenge of less observability upfront, and that is why those tools are critical : we need to bring back the observability that we lose with abstraction.
Is there some performance lost because of abstraction?
I don’t think so, because platform providers for Serverless can focus so much on performance, and make sure code runs quickly in those environments, you can see performance gains. But it really depends on the provider, sometimes there can be trouble, but a lot of providers are taking great lengths to make sure that their infrastructure is optimized to run your code.
What tools do we have to monitor Serverless functions?
Right now it’s a mix of platform specific developers tools, for instance Azure Function DevTools, and AWS Cloudwatch and X-Ray. Then we have third party tools, like IOpipe, or Serverless Framework, building services around these providers to help bolster the environment. Third party tools are building up around this, and they’re waiting for serverless providers to catch up, even if they will always exist in tandem.
Are the providers tools enough for what is needed to do?
It depends; third-party tools are getting there, and providers are working to keep up. AWS is a close second, but at the same time different applications will have different needs, and to expect service providers to create tools for each need would be too much to ask. That’s why third-party tools will also exist in tandem with service provider tools.
How is the serverless ecosystem evolving, compared to last year?
It’s definitely progressing with providers supporting third-party tools, we’re starting to see an explosion of growth; A lot of people are starting to develop in serverless and realize they need these tools to continue their work, and they help by figuring out what features are needed.
What will you present at ServerlessConf?
My talk is about what makes a serverless application healthy. We are just now getting to the point where we know “this is when i need to be warned about how my serverless application is performing”, but what does it mean to have a healthy serverless application? What do I need to look at to know everything is running as planned, as opposed to the reactionary “Oh no, something is down!”. There will be some live demo with Cloudwatch, X Ray, IOpipe.
Is Serverless a real game changer?
Yes, it leads forward, it’s another tool, it’s going to change the way we do certain tasks and the way we do subsets of applications. It’s such a huge thing that I think it will be around for quite a long time. It makes things so much easier for developers, and at every new level of abstraction it gets more and more popular, because it’s more user friendly.
What does it change for Ops?
It makes their job different, not harder or easier (see the post 5 things to know about Lambda). Do we even need ops in a serverless world ? Yes, we absolutely do, there is still a deployment stage, there is still things to be monitored and observed. That is a subject I will address in my talk as well.