Hark: here is a strange tale of two Microsoft DevOps tools: Azure DevOps and GitHub. Who comes out on top in Azure DevOps vs GitHub? And how did Microsoft end up with twin DevOps tools anyhow? Let’s dig in!
Apr 14, 2019 A good README tells you everything you need to know to use the project and get involved. It sells the project — but concurrently respects a visitor’s time by letting them know if they need a different solution. When using your GitHub profile as part of an application, READMEs are important in a different way. Details on GitHub as a company, including corporate timeline, growth and usage, and core offerings. GitHub is where millions of developers gather every day to collaborate on open source software.
How did Microsoft end up with two DevOps tools?
Once upon a time, there was a Microsoft product called Team Foundation Server (TFS). The online version of TFS then became Visual Studio Online, which became Visual Studio Team Services, which is now Azure DevOps.
Microsoft bought Github in 2018, which is also a DevOps tool and shares a lot of the same features. I mean, what’s that about?
Microsoft bought GitHub to heighten its focus on open-source development and bring Microsoft’s developer tools to new audiences, and now they have two very mature and very popular DevOps tools. Let me explain some of the differences and similarities between Azure DevOps and Github — giving you a clearer understanding of why there are two, and where each fits in.
Developer tool basics: What is Azure DevOps? What is GitHub?
If you’re looking for a more elementary breakdown of Azure DevOps vs GitHub, below are some common questions you might have. Know the gist of what Azure DevOps and GitHub are and do? Jump ahead!
What is GitHub?
GitHub is one of the most well-known open-source project management tools. Git is a version control system. GitHub is a website — a platform where people share Git repositories online. (Repositories are basically snapshots of a version of a bit of code.)
What is Azure DevOps?
Azure DevOps is a collection of Azure developer services for building software. Azure DevOps includes the ability to do what most people use GitHub for, but it also comes with some other unique features. Azure DevOps is a fully integrated set of services that provide you with all the tools necessary for building and maintaining a backlog, hosting your source code repositories, implementing continuous integration, along with delivery and testing workflows for your products before releasing them. (Translation: It’s basically everything you need to make and launch a product.)
How do people use Azure DevOps?
Azure DevOps is used for planning and collaborating on code development and building and deploying applications. Compared to GitHub, Azure DevOps tends to be more preferred by enterprises. Like Github, it offers both public and private repositories.
How do people use GitHub?
GitHub is used by developers and companies to build, ship, and maintain software. It makes it possible to collaborate and share code and keep tabs of what’s changed along the way. (This process can make it easy to track down, say, when or how a bug was introduced.) Like Azure DevOps, it offers public and private repositories and tends to be the favorite of the developer community. Even Microsoft hosts most of its open-source projects on GitHub.
Is Azure DevOps an alternative to GitHub?
Azure DevOps could be seen as a bit of a GitHub alternative. It has repositories. But it also has other tools. It also integrates with GitHub, so there’s the possibility for a “why not both” type situation.
How do I learn Azure DevOps?
Whether you are a developer or not, working solo or in a team, ACG’s Introduction to Azure DevOps course can help you organize the way you plan, create and deliver software. This course will show you how Azure DevOps works, how to get started, and tips and tricks on how to get the most out of Azure Boards, Azure Repos, Azure Pipelines, Azure Test Plans, and Azure Artifacts.
How do I learn GitHub?
GitHub offers learning labs to help you get started. Their one-hour introduction to GitHub course is free and a good way to pick up the basics of how to GitHub.
Want to learn more about Azure certifications?
Check out our Azure Certifications and Learning Paths.
Azure DevOps and Github Comparison
Closed Source vs Open Source Management
- GitHub: Preferred by the community. Offers both public and private repositories.
- Azure DevOps: Preferred by the enterprise. Offers both public and private repositories.
- Which is better? Even Microsoft hosts most of their open-source projects on GitHub.
Traditionally GitHub has been one of the go-to places for open source communities and projects. Large, well-known projects such asBootstrap andNode.js are hosted on GitHub, and even most of the Microsoft code base for developer tools and languages is also available on GitHub as open-source. While public projects are free on GitHub, they also offer paid private repositories.
Microsoft Azure DevOps tool is more corporate in approach and while you can definitely host public projects, this is not what the platform is known for. A lot of enterprise-level companies use Azure DevOps as part of their approved product suite.
DevOps Continuous Integration and Deployment (CI/CD)
- GitHub: New and relatively unproven, but easy to use.
- Azure DevOps: Mature and feature-rich pipelines. Good integration with enterprise tooling.
- Which is better? Azure DevOps already has full integration with GitHub repositories, but GitHub Actions are neat and will improve a lot.
Continuous integration, or CI, is the process of continually merging any new code into the master/common code base and building it to make sure nothing is broken. “Fail early” is one of the mantras connected to CI, the thought being that the earlier you find bugs, the easier and cheaper they are to fix.
GitHub has a relatively new feature called “Actions”. These actions can “automate, customize, and execute your software development workflows right in your repository”, including setting up a CI process.
Azure DevOps has an entire section of the platform dedicated to CI.Pipelines is a mature and fully featured service to handle both your CI and CD, continuous delivery. In fact, a lot of the GitHub Actions functionality is built on the same platform as Azure DevOps.
DevOps Project Management
- GitHub: Good if all your stuff is within GitHub
- Azure DevOps: Mature and full-featured. Integrates with 1000+ extensions.
- Which is better? Azure DevOps is the choice here for any semi-serious project and beyond.
A big part of an effective process means having an effectiveDevOps project management tool to keep track of tasks and timelines, issues, and schedules. Both GitHub and Azure DevOps have tools to help project managers, but are they equal?
GitHub Projects is a lesser-known part of GitHub, which offers a good project management platform for code projects already in GitHub.
The Azure Boards, as the project management side of things is called in Azure DevOps, has its roots in TFS, and is a very mature product. As well as working seamlessly with other parts of Azure DevOps, Boards has over 1,000 extensions too for integrating with almost any other system you need to. Get notifications on Slack, hook into AWS services, or create automated documentation.
Code Repository
- GitHub: Spirit animal
- Azure DevOps: Third-favorite child
- Which is better? For hosting code repositories, nothing comes close to GitHub.
Ask almost any open source project where their code is hosted, and it will be GitHub. Code management is where GitHub has its roots. It is its spirit animal. Everything you could possibly do with pull requests, branching, code reviews, and everything else is here.
Azure DevOps has a good code repository offering too, but it isn’t a spirit animal. More like a third favorite child. It works very well, and it does almost everything you want for your projects.
On-Premises
- GitHub: GitHub Enterprise
- Azure DevOps: Azure DevOps Server
- Which is better? Either self-hosted version comes on 3872 floppy disks.
What if you don’t trust this new-fangled cloud stuff? You may have security concerns about hosting the code for your new Nicolas Cage image hosting service in the cloud. Good news! You can get a self-hosted version of both GitHub and Azure DevOps.
GitHub Enterprise is the offering from GitHub and provides all the features from GitHub.com. Similarly,Azure DevOps Server comes on 3872 floppy disks for your installation pleasure.
Reputation
- GitHub: GitHub has the community feels. Companies with open source projects on GitHub get free karma points.
- Azure DevOps: The scent of TFS still lingers. This is enterprise territory.
- Which is better? Microsoft is definitely looking to borrow some reputation points from GitHub.
Azure DevOps came from TFS, possibly one of the Microsoft products with the biggest love/hate division amongst users. Azure DevOps has inherited some of that division. Throughout the many changes and rebranding exercises has emerged a modern tool that is a far cry from the old TFS days, but the memory still lingers at times.
GitHub on the other hand is the default platform for a lot of DevOps tasks, especially anything to do with code management. Most companies will have a development stack that somewhere uses GitHub.
Want to learn more about DevOps Project Management? We have a course for that:Introduction to Azure DevOps and Project Management
FAQs: Comparing Azure DevOps and GitHub
Looking for a TL;DR version? Here are a few frequently asked questions about Azure DevOps and GitHub.
- What’s the difference between Azure DevOps and Github?
Both are used in software development and both offer compelling use cases depending on your needs. Historically, GitHub has been the go-to place for open source; Azure DevOps is more corporate and enterprise-focused, though it can also host public projects. - Is Azure DevOps or GitHub better for CI/CD?
Azure DevOps is more mature and integrates with GitHub repos; GitHub actions are new but promising. - Which is better for project management?
Both GitHub and Azure DevOps have tools to help project managers. The lesser-known GitHub projects offer good project management for projects already in GitHub. Azure Boards is a mature product with over 1,000 extensions for integrating with almost any other system imaginable. - Is Azure DevOps or GitHub better for CI/CD?
Azure DevOps is more mature and integrates with GitHub repos; GitHub actions are new but promising. - Which is better as a code repository?
Code management is at the heart of GitHub. But Azure DevOps has a good code repository offering too that does almost everything you want for your projects. But for hosting code repos, GitHub is the one to beat. - Is Azure DevOps or GitHub better for on-premises?
There are self-hosted versions of both GitHub and Azure DevOps: GitHub Enterprise and Azure DevOps Server. - Which has the better reputation?
Azure DevOps came from TFS, possibly one of the Microsoft products with the biggest love/hate division amongst users. That memory lingers, whether it’s fair or not. GitHub is the default platform for a lot of DevOps tasks.
OK. But really, which is better: Azure DevOps or GitHub?
All those comparisons are well and good, but being that the two products are so similar, why have two? Part of the reason is that GitHub was becoming both a huge repository of Microsoft code and also a competitor. The popularity of GitHub still endures today and now their audience also has access more directly to the, frankly, excellent developer tools that Microsoft produces.
So, which should you choose? The non-committal answer of course is “it depends.” What kind of project are you creating? Which DevOps features do you require? Which kind of systems do you need to connect and automate?
Hopefully, you at least now have an idea of where to start and which platform to try out first. They are both excellent in different ways.
Ready to dive deeper? A Cloud Guru has fresh, comprehensive Azure training, including an Azure DevOps course with Microsoft MVP Henry Been.
Recommended
Get more insights, news, and assorted awesomeness around all things cloud learning.
Simple, scalable state management.
Documentation for older unsupported V4/V5 can be found here, but be sure to read about current documentation first.
MobX is made possible by the generosity of the sponsors below, and many other individual backers. Sponsoring directly impacts the longevity of this project.
🥇Gold sponsors ($3000+ total contribution):
🥈Silver sponsors ($100+ pm):
🥉Bronze sponsors ($500+ total contributions):
Best Github Readme Profile
Introduction
Github Good Readme Guide
Anything that can be derived from the application state, should be. Automatically.
MobX is a battle tested library that makes state management simple and scalable by transparently applying functional reactive programming (TFRP).The philosophy behind MobX is simple:
Straightforward
Write minimalistic, boilerplate free code that captures your intent. Trying to update a record field? Use the good old JavaScript assignment. Updating data in an asynchronous process? No special tools are required, the reactivity system will detect all your changes and propagate them out to where they are being used.
Effortless optimal rendering
All changes to and uses of your data are tracked at runtime, building a dependency tree that captures all relations between state and output. This guarantees that computations depending on your state, like React components, run only when strictly needed. There is no need to manually optimize components with error-prone and sub-optimal techniques like memoization and selectors.
Architectural freedom
MobX is unopinionated and allows you to manage your application state outside of any UI framework. This makes your code decoupled, portable, and above all, easily testable.
A quick example
So what does code that uses MobX look like?
The observer
wrapper around the TimerView
React component, will automatically detect that renderingdepends on the timer.secondsPassed
observable, even though this relationship is not explicitly defined. The reactivity system will take care of re-rendering the component when precisely that field is updated in the future.
Every event (onClick
/ setInterval
) invokes an action (myTimer.increase
/ myTimer.reset
) that updates observable state (myTimer.secondsPassed
).Changes in the observable state are propagated precisely to all computations and side effects (TimerView
) that depend on the changes being made.
This conceptual picture can be applied to the above example, or any other application using MobX.
To learn about the core concepts of MobX using a larger example, check out The gist of MobX section, or take the 10 minute interactive introduction to MobX and React.The philosophy and benefits of the mental model provided by MobX are also described in great detail in the blog posts UI as an afterthought and How to decouple state and UI (a.k.a. you don’t need componentWillMount).
What others are saying...
Guise, #mobx isn't pubsub, or your grandpa's observer pattern. Nay, it is a carefully orchestrated observable dimensional portal fueled by the power cosmic. It doesn't do change detection, it's actually a level 20 psionic with soul knife, slashing your viewmodel into submission.
After using #mobx for lone projects for a few weeks, it feels awesome to introduce it to the team. Time: 1/2, Fun: 2X
Working with #mobx is basically a continuous loop of me going “this is way too simple, it definitely won’t work” only to be proven wrong
I have built big apps with MobX already and comparing to the one before that which was using Redux, it is simpler to read and much easier to reason about.
The #mobx is the way I always want things to be! It's really surprising simple and fast! Totally awesome! Don't miss it!
Further resources and documentation
The MobX book
Created by Pavan Podila and Michel Weststrate.
Videos
- Introduction to MobX & React in 2020 by Leigh Halliday, 17min.
- ReactNext 2016: Real World MobX by Michel Weststrate, 40min, slides.
- CityJS 2020: MobX, from mutable to immutable, to observable data by Michel Weststrate, 30min.
- OpenSourceNorth: Practical React with MobX (ES5) by Matt Ruby, 42min.
- HolyJS 2019: MobX and the unique symbiosis of predictability and speed by Michel Weststrate, 59min.
- React Amsterdam 2016: State Management Is Easy by Michel Weststrate, 20min, slides.
- {🚀} React Live 2019: Reinventing MobX by Max Gallo, 27min.
And an all around MobX awesome list.
Credits
MobX is inspired by reactive programming principles as found in the spreadsheets. It is inspired by MVVM frameworks like MeteorJS tracker, knockout and Vue.js, but MobX brings Transparent Functional Reactive Programming to the next level and provides a standalone implementation. It implements TFRP in a glitch-free, synchronous, predictable and efficient manner.
A ton of credits goes to Mendix, for providing the flexibility and support to maintain MobX and the chance to proof the philosophy of MobX in a real, complex, performance critical applications.