First of all, let me get this straight: I’ve never been a big fan of Azure. I’m rather an AWS hardcore fan, love the way it’s built, its reliability, and the design focus on infrastructure.
But every once in a while, it’s good to open your chakras and try new things. I recently worked with a customer, a big company, to set up from scratch a software team. This company was in the process of migrating all its IT to Azure, and I felt it was appropriate to use Microsoft tools where possible, in order to keep complexity (billing, identity management etc) to a minimum.
In terms of DevOps, I usually set up my own stuff, but this time the mission was limited in time, so I couldn’t just write code and leave it there, I wanted to see how far we could go with Microsoft tools. So I created an Azure DevOps account, to see what it was about.
First of all, the design is not that great. You certainly don’t get a nice startup-feeling when you click on menus and see spinners, or sync issues (ex: you create a team user, and you have to refresh the web page to see it appear in the list).
But I have to say, from a pure functional standpoint, it’s interesting. Azure DevOps lets you manage git repositories (with imports from github), build and release pipelines (configured with .yml files) backed with Azure instances (the build tasks spin and kill the instances under the hood during build). This is basic stuff. But Azure DevOps also includes a basic tasks management system, and a basic functional testing plan section. Moreover, if you love Github and use it for issues etc, you can connect Azure DevOps build pipelines to Github repos hooks, and you can connect to all of Azure with your Github account (they have put a SSO in place)!
Now of course you can set this up with other tools, cherry pick the SaaS tools you prefer on each segment (hosted git, tickets management, tests management, CI tool etc). But what is really practical with Azure DevOps is that as your software team grows, you can really manage it all just with Azure accounts (or even Github accounts thanks to SSO!), with all ACL (access controls) and traceability stuff that you need in a corporate environment. This all-in-1 platform is good for administrative management, but also good for new software engineers on-boarding, for security, and for simplicity in general.
Another cool thing for folks working in AI / machine learning: for the build pipelines, you can use custom build agents (= VMs), which means potentially GPU instances, if you need to run unit tests on your neural networks at build time. You can even choose a self-hosted build agent, on-premise (which is important since GPU cloud instances tend to be very expensive). So no problem if you want to use Azure DevOps for continuous integration on machine learning models!
I have to say I have now a more positive view of the Azure ecosystem, I only tested a fraction of it but Azure DevOps is a simple, no-fuss platform to manage all aspects of a software team, with a very good Github integration, all under one SSO. Next time I set up a software team, I’ll seriously consider the Azure DevOps option.