The uptick in popularity of serverless means there are more developers looking to familiarize themselves with its programming model. What follows are my favourite blog posts and conference talks on the subject so that any .NET developers looking to make the leap to serverless can get the knowledge they need to be effective.
To get the gist — and then some — of what the serverless movement is all about, I urge you to read this post on Martin Fowler’s blog, written by Mike Roberts. It explains the what, how, and why of serverless computing. It’s far and away the most complete definition of serverless available on the web today.
If you’d rather watch a talk that goes over much of the same content, grab your favourite hot beverage, sit back, and watch this presentation by Austen Collins, the founder and CEO of Serverless Inc.
Now that we’ve sorted serverless as a concept, let’s look at some introductory articles for the two most popular ways to write serverless functions with .NET: AWS Lambda and Azure Functions.
Anyone who’s worked with Amazon Web Services is likely already aware that the official documentation tends to be a bit on the terse side. Luckily, AWS has also created a GitHub page with a bunch of resources to get you up and running with .NET Core in Lambda. The page links to many great talks that are directly related to the development of .NET Lambdas and should be your first stop after reading the official docs.
Consider using this guide when you decide to write your first .NET Core Lambda function. Not only does it explain the step-by-step process, but it also goes over common problems you might run into along the way. There’s a great follow-up article which explains how to customize common features of Lambda for use with .NET Core.
There are dozens, if not hundreds, of talks, videos, and tutorials when it comes to Lambda. There isn’t nearly as much .NET-specific content, however, so hopefully the links above put you on the path to success with Lambda and .NET Core.
It almost goes without saying that, when it comes to .NET, there are many more blogs and talks dedicated to Microsoft’s serverless platform. That’s not entirely surprising since Microsoft still tends to own the whole stack when it comes to enterprise .NET development.
The first and best place to start learning about Azure’s serverless platform is without a doubt the official Docs pages. Microsoft have combined style and content to make it easy to learn about any topic, let alone Azure Functions. At times, there can be a step or two that are unclear, but for the most part, it’s spot on. Make sure to dig into the Concepts section, which spells out many details that will come in handy when creating your first functions.
I wrote an article on the basics of Azure Functions that focuses on the programming model and concepts that should be understood before writing your first function. It’s structured differently from the Docs pages, and I received good feedback on it. Azure Functions will continue to be my primary focus in 2019, so subscribe to the blog if you want to learn more about them.
One of the biggest advantages to developing on Azure is that Microsoft has made their cloud developer advocates highly available (har-har). If you get stuck or need advice, try reaching out to @AzureFunctions on Twitter. I’ve had discussions with a few CDAs over the last few months, and each time they put me on the path to solving the issue I was tackling.
The Azure Serverless Computing Cookbook is an amazing resource for step-by-step guides to using Azure Functions. It explains the process of developing functions, hooking into events, testing, monitoring, troubleshooting, and much more.
There are many great talks on Azure Functions, and most of the walkthroughs and samples are .NET-based. One of my favourites is Jeff Holan’s talk at NDC Oslo. On the build and release side of things, this video is a great intro to CI/CD for functions using Azure DevOps Services.
Still More To Explore
There’s obviously lots more that I could link to, but the above resources should give you the broad strokes of the process for developing, deploying, and running serverless .NET functions in the cloud, regardless of the product you choose to do it with.