Azure is constantly innovating and following their reasonably recent acquisition of GitHub, Microsoft has given us the almost inevitable result of integrated CI/CD with the world's favourite Version Control System. On top of that, their fantastic solution for real-time web functionality is now available as a service in Azure!
Let's investigate these awesome additions to the Azure developer's toolbelt...
to query a backend system and hope you got a timely response and that you didn't miss the change between server polls? Yeah, that wasn't much fun, was it?
Enter SignalR! SignalR's super power is to abstract those complexities, wrapping WebSockets, Server Sent Events, and Long Polling such that you don't need to implement each of those; you just use SignalR.
Unfortunately, up until now, setting up SignalR was kinda tricky: the infrastructure required to support the fantastic realtime functionality (i.e. web sockets and server sent events - SSEs) is out of many developers' comfort zones. This is where SignalR As a Service comes to save the day - in real-time!
I'm a huge fan of leaving the underlying complexity to someone else to manage; Infrastructure As A Service is nice, but Platform As A Service is better. Want to hand over even more complexity to someone else? Why not try Functions As A Service (FaaS, aka Serverless). As such, getting the realtime communication capabilities of SignalR but without complex setup is a massive win!
You can even run automated functional tests - in parallel - via Selenium tests on various test runners.
All of this has been possible before, but the Azure service abstracts the complexity of setting this all up behind a YAML file, such that the repo itself can contain its own deployment pipline! As such, anyone cloning the repo can have exactly the same build process as the original repo just by registering against their own Azure account.
Azure Pipelines gives us the capability to configure an automated CI/CD process for your projects - whether they're a Web App, a docker container, a VM, a NuGet package, an NPM Package.
An exercise for you, dear reader, to do over the festive period is to try setting both of these up and configure a real-time build dashboard, showing the current status of as many projects and builds as you can manage!
Have fun...and mash those share buttons to let us know how you get on!