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 for Converge360.

comments powered by Disqus

Featured

  • Creating Reactive Applications in .NET

    In modern applications, data is being retrieved in asynchronous, real-time streams, as traditional pull requests where the clients asks for data from the server are becoming a thing of the past.

  • AI for GitHub Collaboration? Maybe Not So Much

    No doubt GitHub Copilot has been a boon for developers, but AI might not be the best tool for collaboration, according to developers weighing in on a recent social media post from the GitHub team.

  • Visual Studio 2022 Getting VS Code 'Command Palette' Equivalent

    As any Visual Studio Code user knows, the editor's command palette is a powerful tool for getting things done quickly, without having to navigate through menus and dialogs. Now, we learn how an equivalent is coming for Microsoft's flagship Visual Studio IDE, invoked by the same familiar Ctrl+Shift+P keyboard shortcut.

  • .NET 9 Preview 3: 'I've Been Waiting 9 Years for This API!'

    Microsoft's third preview of .NET 9 sees a lot of minor tweaks and fixes with no earth-shaking new functionality, but little things can be important to individual developers.

  • Data Anomaly Detection Using a Neural Autoencoder with C#

    Dr. James McCaffrey of Microsoft Research tackles the process of examining a set of source data to find data items that are different in some way from the majority of the source items.

Subscribe on YouTube