How to implement feature flags and filters in .NET apps? A step-by-step guide
Along with improved DevOps expertise comes a better performance of delivery teams. And when many deployments take pl...
Azure DevOps has come a long way since on-premises TFS, has a strong customer base, and has an established place in the Enterprise world.
GitHub is the world’s darling and the go-to service for most Open Source projects and initiatives, but comes from a completely different place and focus (more on code, Open Source, less Enterprise).
Both tools let you deliver for the cloud. Both have their good and bad sides. Both have different philosophies and workflows.
What will the future bring in this area? I don’t know, but directions are getting clear. Here’s my take and how I look at it for Predica and our customers, with actionable hints for those who are using one of them or planning to do it soon.
First, a disclaimer. I’m an MVP and Predica is well established Microsoft partner, but none of the things covered in the article are internal knowledge or based on NDA-restricted materials. Even if I had access to such knowledge, I can’t share it here. I’m sure you understand.
With that… let’s begin.
First of all, why did Microsoft buy GitHub when they had Azure DevOps already? Again – my point of view with no insider knowledge.
You don’t have to have a crystal ball and special powers to see that Open Source has been thriving in recent years. Microsoft saw it as well and instead of fighting with it (remember Steve B.?), decided to embrace it (go Satya, go!)
GitHub grew on the Open Source growth trend and the community around it. Microsoft has a choice – try to convince all GitHub users that Azure DevOps is a better choice or take GitHub and make it grown-up with Enterprise features.
Apply your common sense here – which of those two tasks is easier (even with the pile of cash paid for GitHub)?
Besides that, GitHub is a great sensing machine for Microsoft to know what people are working on and developing, and what are the tools and projects out there. It wasn’t the main reason but nonetheless, it is a great asset for them.
So they hopped on the opportunity and grabbed it before the competition did (one for Microsoft, zero for competition).
What is the driving force in this shift? Open source is still growing. A year ago, almost to the day, I wrote about Microsoft embracing open source officially and wholeheartedly. Key points:
What’s the main takeaway? Open source is not going anywhere. In fact, it will only be growing in importance.
GitHub is a darling of Open Source communities but is used also by many enterprises. It has a great set of features especially around source control but also delivering CI/CD capabilities and integrations.
GitHub has a minimalistic user interface, well-known to all developers, especially in the Open Source community. Minimalistic doesn’t mean “simple” – it takes a while to adjust to it but it also provides a lot of integration points, used by the community to build tools around it.
With GitHub, you can craft a more customized workflow for your team if you spend time on it.
To deliver a full set of features for the entire product development lifecycle, together with requirements management and support, you will most likely need some 3rd party tools and work on integration between them and your enterprise environment.
GitHub’s important, non-technical feature is its familiarity among the developer community and the community around it. It might be an important factor in attracting people to work on your projects. Familiarity doesn’t mean that there is no learning curve for new users.
For sharing your work in an open source way and learning new things, GitHub is the place to go. If you want to attract the best talent or build a community around your projects, it’s where you want to be.
Sometimes called “the jack of all trades”, Azure DevOps provides fully unified and stacked on top of each other set of services for development workflow. Azure DevOps has the advantage of being designed as a whole set of services with integration with the Microsoft stack from the beginning.
You will find it extremely easy to manage in a Microsoft-based environment, starting from license management, security, and access control, through integration with collaboration tools like Microsoft Teams, to reporting and analytical tools like Power BI.
Being designed as a whole set of tools, it delivers the best experience when used as a whole and central point of development efforts. Its interface is focused on a browser experience but it also delivers for developers a familiar experience of work with source code in Git-style.
My favorite part of Azure DevOps are Azure DevOps Boards and Backlog management features focused on end-to-end product development, from the requirement to deployed feature and support.
Deploy and configure Azure infrastructure using Azure DevOps
Being an established enterprise tool doesn’t mean that there is no community around it. You will find a vibrant community working with Azure DevOps and sharing its use and examples among Azure users.
Check out this article by Thomas Naunheim on enforcing Conditional Access with Azure DevOps. It shows Azure DevOps usage outside of the realm of pure code development to manage Azure AD environment using it.
I’ve decided to use a picture instead of a written verdict. As they say – sometimes a picture is worth a thousand words. Here is a picture from Microsoft’s DevOps Dojo (specific Microsoft offering) article:
What we see here is GitHub all the way around, and it is also my current judgment that in the long term, GitHub is a solution to focus on from Microsoft’s tools for development and delivering CI/CD pipeline to the cloud.
Why lean this way? Again – no insider knowledge, observing the environment and where the focus is:
When you look at the whole landscape, even if Azure DevOps is not an abandoned ship (not at all – more on this in a moment), GitHub is where innovation is happening, and where the center of DevOps gravity is shifting in (not only) Microsoft’s ecosystem.
Does it mean you should abandon Azure DevOps and switch to GitHub right away? Is it a “run away and scream for your life” moment of ADO?
Not at all.
First of all – DON’T PANIC. Azure DevOps (ADO) is not going away anytime soon and will get plenty of love. It is one of the undervalued things about Microsoft – its long-term commitment to the lifecycle of its software and providing new features and support for its customers.
If you are an existing Azure DevOps user:
Special note for Azure DevOps Server users (on-premises version of ADO) – I would strongly consider, if it is possible in your situation (I know it isn’t always feasible), starting to move towards GitHub or Azure DevOps online service.
If you are entering the space and you haven’t chosen the tooling for your DevOps practice yet, do your due diligence and map the required functions to the tools you already have and what Azure DevOps and GitHub provide:
For a completely fresh implementation, if some product delivery management tools are already in place, I would lean toward GitHub as a first choice, but Azure DevOps is a great option as well and is a future-proof choice for years ahead (in terms of support and being sprinkled with product group love).
As in many cases, the truly great solution might be in the middle. Azure DevOps provides a great set of features and integration between them.
One of those integrations is GitHub, so you may use Azure DevOps collaboration tools and GitHub for code repository and CI/CD delivery, getting the best out of both worlds.
In between Azure DevOps and GitHub? Not sure which one to choose? Check out our free guide with recommendations.
THE BRIGHT FUTURE
So, what’s the answer to the question?
Should you go with one or the other?
Which one is better?
Microsoft began to integrate GitHub within Azure DevOps, rather than the other way around. Whichever name sticks, it looks like at least the features are here to stay. Still, for many businesses, and likely for Microsoft itself, maintaining two similar tools is not sustainable in the long run.
We could go into a detailed comparison but you’ll find plenty of that on the internet. If you’d like more help deciding which direction to go in, here are some useful sources:
In my view – Open Source is the future, and this is why eventually, GitHub will be the frontrunner. With that being said, Azure DevOps is being actively developed and it will last for a while yet (see the Azure DevOps feature timeline).
If you have a different opinion – don’t be afraid to share it! Let me know and I’ll post it your thoughts here next time, so we can keep the discussion going.
Read similar articles