Our AI and Azure MVP Robin Osborne (that's him chugging coffee in the sidebar) has an avid interest - and deep experience - in Microsoft software development technologies and cloud computing platforms. He's been taking a look at some of the new features being unleashed on the Azure platform. Robin writes...
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...
Azure SignalR Service
Remember when you tried to build that web page that could automatically update when the underlying server data changed? Remember how hard that was to get right? Maybe you had your HTML page fire off some javascript via a
setInterval
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!
Azure Pipelines
Azure Pipelines is the Microsoft cloud answer to an automated CI/CD process, allowing you to easily code-define the path your code takes through automated build, package, test, and deployment gates. It supports projects built in loads of popular languages including .net, .net core, C++, Python, Javascript and NodeJs, PHP, Xcode (yeah, Xcode!), and more. It deploys to loads of popular hosting environments including Kubernetes, VMs, npm, NuGet, and more.
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.
By your powers combined
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.
Azure SignalR Service gives realtime web app functionality.
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!