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