I guess you all have heard of continuous integration / continuous delivery (CI/CD). In this post, I want to show to you a tool for CI/CD (and more): Azure DevOps. I want to focus on three most important parts of Azure DevOps: Boards, Repos and Pipelines.

Boards

That’s where you manage and track your work items. It supports different processes for Kanban, Scrum, etc. It’s pretty much what you expect it to be. One great feature is, that you can create a new branch for your work item directly from the board view - it’s integrated with your source code repository.

Repos

Repos is about your code. You can either create a private repository or use a GitHub repository. You can manage your files, browse the commit history or create pull requests.
You can also define policies. For example, you can disallow direct commits to the master branch. That way, you have to use pull requests. Another good idea is to enable build validation for the master branch. You don’t want anyone to pull something into master that doesn’t compile or doesn’t pass all the tests. If you want to enable build validation, you need a build pipeline.

Pipelines

Here you create and run your build and release pipelines. There are several predefined build agents that will work for many different project types, but you can also create self-hosted agents.
Pipelines together with Repos is the foundation for CI/CD. You can automatically build and deploy whenever your source code changes.

Conclusion

I love Azure DevOps - it’s a great tool. There are two aspects I like the most:

It’s integrated: I really like how Boards, Repos and Pipelines work together. As a developer, you need only one tool for managing your day to day work. When you’re ready to start a new work item, you go to Boards. You mark the work item as “in progress” and create a feature branch directly from the board. Once you’re finished, you create a pull request. Your team members can review the pull request in Repos and give you feedback. When the pull request is merged, it automatically triggers a build and a subsequent release. You can check whether the build and release were successful in Pipelines. If everything is okay, you can go back to Bords and start working on the next item.

It’s a service: I need to focus on software development - not on maintaining a server. Yes, there are scenarios where you can’t (or don’t want to) rely on a third-party service - point taken. But whenever it is an option, I go with the service. I don’t want to be bothered with hosting related details. That’s not my job. I just need it to work.

Do You Need to Host It Yourself?

There’s an on-premise version called Azure DevOps Server. It’s the latest version of Visual Studio Team Foundation Server with a new name.


Have you tried out Azure DevOps yet? What do you think about it? Do you prefer to host your own on-premise server?