Azure, Amazon Web Services Ramp Up with Dev Tools for Serverless Computing

Amazon and Microsoft are anticipating the serverless computing space to heat up, with support and developer tools.

The notion of a serverless compute architecture could gain some momentum in the next year, as two companies have recently introduced capabilities to simplify the development of apps on top of the nascent technology. At the Amazon re:Invent confab a week ago, Amazon said it added a small but key feature of its Amazon Web Service Lambda serverless computing platform: support for C# and .NET Core. That announcement follows Microsoft making Azure Functions generally available in mid-November.

Serverless computing isn't quite what the name implies, but more of a shift of server-based workloads to the cloud, where computing resources can be provisioned and managed in a virtualized, pay-as-you-go model. It might sound familiar and that's because it works much like a mix of the platform/infrastructuree/software-as-a-service offerings that were popular a couple years ago. (Serverless computing, in fact, has also been called function-as-a-service, but the two terms aren't really interchangeable.) In short, costs and abstraction of infrastructure management are primary benefits to developers, but latency, resource allocations, and other environmental computing variables are issues that inhibit its widespread use.

Amazon took an early jump into the serverless computing segment when it announced its Lambda service in 2014, and only this year have Google, IBM, and Microsoft followed suit with offerings of their own.

Amazon Lambda initially supported Node.js out the gate, then Python and Java. During re:Invent a week ago, the company announced that developers would be able to create Lambda functions via native C# and .NET Core support.

".NET developers can now build Lambda functions and serverless applications with the C# language and .NET tools that they know and love," writes Bryan Liston, a developer advocate for Amazon Web Services, in a blog post. "With tooling support in Visual Studio, Yeoman, and the dotnet CLI, you can easily deploy individual Lambda functions or entire serverless applications written in C# to Lambda and Amazon API Gateway."

The support is built into AWS Toolkit for Visual Studio, which comes with two ready-made templates, one for starting a simple C# Lambda function, and another for building an AWS serverless app. The .NET CLI opens up the functions beyond Windows targets; all that's needed is to specify tool dependencies when using the Amazon.Lambda.Tools Nuget package.

Prior to Amazon's news, Microsoft in mid-November debuted its serverless compute offering, Azure Functions, as well as a preview of specific Visual Studio tooling to streamline development of Azure Functions from within the IDE. The Visual Studio Tools for Azure Functions preview provides for creation of new functions using C# and JavaScript (with F#, Node.js, Python, PHP, batch tools, and Bash currently in preview).

Microsoft touts Azure Functions as part and parcel of Azure's PaaS solutions portfolio, used primarily for event-driven, pay-as-you-go computing at scale. "Developers can leverage Azure Functions to build HTTP-based API endpoints accessible by a wide range of applications, mobile and IoT devices," writes Nir Mashkowski, Principal Group Program Manager for Azure App Service, in a blog post from March that detailed the preview. "Azure Functions is scale-based and on-demand, so you pay only for the resources you consume."

Because of its event-driven nature, one area where the company believes Azure Functions can shine is in supporting continuous deployment and continuous integration scenarios, where Azure Functions projects or code written in various programming languages can be used to trigger or schedule processes. Code can even be deployed right inside of Visual Studio Team Services or through Github. (A developer reference for supported triggers and bindings, as well as creating custom ones, is here.)

Functions can also be created, run, and debugged locally on a Windows machine using the Azure Functions CLI, which is in beta. The CLI also integrates with Visual Studio code, which means it also supports JavaScript Functions for NodeJS. Next in the plan is to provide support for Mac and Linux. A binding extensibility framework is also planned for a preview launch next year.

A good overview of Azure Functions support and pricing is in this Microsoft Azure document.

About the Author

Michael Domingo is a long-time software publishing veteran, having started up and managed several developer publications for the Clipper compiler, Microsoft Access, and Visual Basic. He's also managed IT pubs for 1105 Media, including Microsoft Certified Professional Magazine and Virtualization Review before landing his current gig as Visual Studio Magazine Editor in Chief. Besides his publishing life, he's a professional photographer, whose work can be found by Googling domingophoto.

comments powered by Disqus


Subscribe on YouTube