Introducing Remote Debugging for Serverless Applications
Shift to serverless is more like a cultural one rather than technical. Either with greenfield projects or migrating existing applications, software teams feel the lack of their existing habits and tools. The most pronounced problem is by far debugging. See the figure below from the survey by Serveless Inc. last year. Serverless means by default abstraction of underlying infrastructure and abilities related to it. Developers in normal conditions cannot run their processes and cannot debug their serverless applications either on their IDE or the ID provided by cloud vendors. Our interviews with companies at every scale reveal that lack of enough level of debugging refrains them from adopting serverless.
There are many efforts in the community for addressing this pain. For example; you can use AWS SAM’s local invoke capability and debug the application locally in your VS Code application. In this way, a local simulated execution environment is created in the developer’s computer that will enable you to debug in a simulated environment. The problem with this approach is it creates a so-called Lambda environment in which you cannot simulate the permission issues.
We thought that debugging should simulate the real AWS environment with real permissions and resources. For this reason, we are proud to pre-announce our support for native remote debugging for the AWS Lambda function for Java and Node.js runtime. In this case, you can debug your function line by line on your IDE (We are supporting VSCode IDE with a plugin). You can see the values of the local variable and the whole stack of your function.
In order to take advantage of this gem, you need to reach out to us via email@example.com. To see how debugging works, you can watch the following video: