Q&A

Microsoft Cloud Dev Advocate Laurent Bugnion Talks Event-Driven Applications in Azure

Event-driven architectures are said to provide many benefits such as real-time processing, cost reduction, easier scalability and improved customer experiences.

Microsoft says moving to an event-driven architecture requires a restructuring of how you think about your application.

"To adopt an event-first mindset, you should first consider what business processes could be optimized to deliver customer value," says a post on the company's Community Hub. "These business processes can then be distilled down to a workflow of events."

The company notes that while event-driven architecture is not a new paradigm, it has become popular for its real-time ability to ingest, process and react to events stemming from many different kinds of user- or machine-generated events, explaining that the proliferation of microservices and serverless computing has led to the architecture's ability to fully realize the benefit of its loosely coupled design to reach infinite scale without the need to manage infrastructure.

Event-Driven Architecture
[Click on image for larger view.] Event-Driven Architecture (source: Microsoft).

So how do you get started with it?

You delve into the nitty-gritty details of building event-driven web applications using Azure Functions and the Azure SignalR service. And, for real-world relevance, you use a production application called Timekeeper that Microsoft uses to run some of its live TV shows such as the Hello World daily show.

And who better to lead you through the step-by-step process than Laurent Bugnion, a cloud developer advocate at Microsoft.

He will do just that in an upcoming VSLive! event being held in Las Vegas March 19-24. In a March 21 intermediate-level presentation titled Event-driven Applications in Azure, Bugnion will use Timekeeper to teach devs:

  • How to use SignalR to create event-driven web applications with Web sockets
  • How to deploy and configure a Static Web App on Azure
  • How these technologies are used at Microsoft in a production setting

We caught up with Bugnion to learn more.

VisualStudioMagazine: How do Azure Functions and Azure SignalR work together in event-driven web applications?
Bugnion: Azure SignalR is available as a serverless, standalone service in Azure. This allows us to create a web-socket communication hub without having to run a web server on Azure or otherwise. Thanks to this, we can create an Azure Functions application to server as the gateway to the SignalR service, and have a completely serverless web sockets system running. For the front end, we can develop a static web application, a SPA (single page application) or other serverless applications to serve as the front end for the system.

How do web sockets fit into things?
Web sockets are the technology used by SignalR to send messages from a server to a client. Web sockets are fast and can handle very large numbers of messages per second. This allows SignalR powered applications to respond very fast to large-scale changes in the system observed.

What has been the most interesting development lately in Microsoft's event-driven web app space?
Event-driven is a fantastic way to run applications without having to constantly poll a server.

"Learning about event-based services changes the way that web applications are built, and is an important part of how the modern web works."

Laurent Bugnion, Principal Cloud Advocate for Microsoft Azure

Microsoft Azure offers many event-based services, such as Azure SignalR service for web-sockets based communication, Azure Service Bus for scheduling and massively scaling delivery of messages between services, the Notification Hub allowing the developer to send notifications to mobile devices, and more. Learning about event-based services changes the way that web applications are built, and is an important part of how the modern web works.

How has Microsoft eased the deployment and configuration of Static Web Apps on Azure?
Static web apps are probably my favorite service on Azure at the moment. Deploying changes to a Static Web App is extremely easy because a GitHub action is automatically created and configured to build and deploy changes from GitHub to Azure (other source control systems are also supported). Even better, when a Pull Request is created, a staging environment is automatically created in Azure Static web apps so changes can be tested without impacting the production system.

Inside the Session

What: Event-driven Applications in Azure

When: March 21, 8:00am - 9:15 am

Who: Laurent Bugnion, Principal Cloud Advocate for Microsoft Azure

Why: Learning about event-based services changes the way that web applications are built, and is an important part of how the modern web works.

Find out more about VSLive!, taking place March 19-24 in Las Vegas

How does Microsoft's internal Timekeeper application leverage all of the new tooling, that is, why is it a good example for developers to check out?
Timekeeper is an application using the aforementioned technologies (Azure SignalR service, web sockets, Azure Functions, Static Web App). The application uses web sockets to synchronize clocks (start, stop, pause, advance) between a host and multiple guests. This technology allows us to use a Blazor-based web interface running on any client (mobile phone, laptops, desktops and so on). The system is fast, responsive and easy to maintain and deploy. It also runs at very low costs. The code is open source and available (as well as a fully functional public version of the system) at https://timekeeper.cloud.

Bugnion also noted that in addition to this session, "I will have the pleasure to talk about Durable Azure Functions, another exciting serverless technology allowing you to create, run and manage workflows in code. Durable functions allow the developer to bypass some of the limitations of "classic" Azure functions, such as the timeout. Next to this, I will also give our audience tips and tricks for debugging applications in Visual Studio and in Azure. We will talk about monitoring, Application Insights, debugging in production and more. Can't wait to see everyone!"

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube