The Serverless Framework offers one of the fastest and cheapest ways to produce scalable and modern backend applications. However, building these event based systems differs quite a lot from traditional applications both by development workflow and production infrastructure.
The main difficulty of developing these systems is the inability to test code locally and also the difficulty of orchestrating large number of functions to work together. It is also complicated to monitor the functions and have an overview of how each service is operating.
Here are some of the tools that help to maintain function based services and improve the development worflow.
Dashbird is a service made to monitor, debug and improve lambda functions.
It gives developers a real-time overview of all lambda executions and detects errored invocations in them. This allows users to easily to monitor traffic and ensure service quality.
The service also stores details and logs about every code execution which is perfect for later debugging. Lambda dashboard
In addition Dashbird offers powerful tools to process function logs, like searching and live tailing.
Setting up Dashbird takes about 5 minutes and requires no code changes. You can read more about setup here.
Dashbird is currently free of charge!
SumoLogic is a machine data analytics service for log management and time series metrics.
With SumoLogic, developers can construct meaningful dashboards to monitor specific parts of the system that are especially important. SumoLogic is also lightning-fast for searching over large amounts of data.
SumoLogic dashboard to monitor integrations
To set up SumoLogic, you have to subscribe a lambda to CloudWatch log groups posts data to SumoLogic via a HTTP endpoint.
A more detailed instruction can be found here.
Be mindful that CloudWatch currently allows only one subscription per log group, meaning that no room if left for other subscriptions.
Sentry is a real-time error tracking service.
With Sentry, developers get notified instantly when errors occur in live environments. This is crucial for reacting quickly and ensuring customer satisfaction. Along with every report, sentry gathers stack-traces for faster and better debugging.
Sentry also analyzes the impact of each release, so it's easy to later see which release introduced which bugs.
Serverless has a lot of useful plugins to test code locally before deploying to a remote environment. This helps developers save time of unnecessary deploys.
Here are some of the plugins to use:
Working with serverless systems is great when you find the right tools that work for you. With these tools, you can fix errors faster and be more connected to your serverless applications.
PS! Write in the comments if you think anything is missing!
Taavi is a backend developer passionate about lambda based services.