This chapter introduces the first topics of this book: DevOps principles and Azure DevOps project management. In this chapter, we are going start by introducing DevOps and provide an overview of the different DevOps principles. Then, we are going to cover the key concepts of Azure DevOps and the different services that Azure DevOps offers. Finally, we are going to introduce the scenario that we will be using throughout this book.
The following topics will be covered in this chapter:
- Introducing DevOps
- Understanding DevOps principles
- Introducing Azure DevOps key concepts
- Discovering Azure DevOps services
- Introducing the scenarios
Let's get started!
For a long time, development and operations had been divided into isolated modules with both separate concerns and responsibilities. Developers wrote the code and made sure that it worked on their development systems, while the system administrators were responsible for the actual deployment and integration in the organization's IT infrastructure.
As there was limited communication between these two isolated modules, both teams worked mostly separated on their projects. However, they heavily depended on each other because there was no cross-platform knowledge across the different teams.
This fitted in nicely with the Waterfall Methodology that was used for most projects. The Waterfall Methodology is based on the Software Development Life Cycle (SDLC), which has clearly defined processes for creating software. The Waterfall Methodology is a breakdown of project deliverables into linear sequential phases, where each phase depends on the deliverables of the...
Understanding DevOps principles
There are a lot of different definitions when it comes to DevOps. Most of them are good at explaining the different aspects of finding the right flow in delivering software and IT projects. In the upcoming sections, we will highlight six DevOps principles that we think are essential when adopting a DevOps way of working.
Principle 1 – Customer-centric action
Nowadays, it is important that software development projects have short cycles and feedback loops, with end users and real customers integrated into the team. To fully meet the customers' requirements, all activity around building software and products must involve these clients. DevOps teams and organizations must continuously invest in products and services that will allow clients to receive the maximum outcome, while also being as lean as possible to continuously innovate and change the chosen strategy when it is no longer working.
Principle 2 – Create with the end...
Introducing Azure DevOps key concepts
Azure DevOps provides a wide variety of services for DevOps teams so that they can plan, work, collaborate on code development, and build and deploy software and services. Most DevOps teams rely on several tools and build custom toolchains for each phase in the application life cycle.
The following diagram shows the phases that are defined in the application life cycle:
During the planning phase, teams can use Kanban boards and backlogs to define, track, and lay out the work that needs to be done in Azure Boards. They can also use GitHub for this. In GitHub, an issue can be created by suggesting a new idea or stating that a bug should be tracked. These issues can be organized and assigned to teams.
Discovering Azure DevOps services
In this section, we are going to introduce the different services that are offered by Azure DevOps. These services can be used to support teams throughout the whole life cycle of realizing business value for customers.
Azure Boards can be used to plan, track, and discuss work across teams using the Agile planning tools that are available. Using Azure Boards, teams can manage their software projects. It also offers a unique set of capabilities, including native support for Scrum and Kanban. You can also create customizable dashboards, and it offers integrated reporting and integration with Microsoft Teams and Slack.
You can create and track user stories, backlog items, tasks, features, and bugs that are associated with the project using Azure Boards.
The following screenshot shows an example of an Azure Board:
Introducing the scenarios
Throughout this book, we will use two different scenarios for our demos. We are going to use sample projects that can be generated and installed in your Azure DevOps environment by using the DevOps generator. For this book, we are going to install Tailwind Traders and Parts Unlimited. Tailwind Traders is an example retail company that showcases the future of intelligent application experiences, while Parts Unlimited is an example e-commerce website.
Creating the starter project
To create the scenario project, we are going to use the Azure DevOps demo generator, which will generate the sample project for us. These projects are free to use. Before you generate the project, you need to install two different Azure DevOps extensions from the marketplace, both of which are used by the Tailwind Traders project. These extensions are as follows:
In this chapter, we covered some of the basics of DevOps and covered the six different DevOps principles. Then, we covered the key concepts of Azure DevOps and the different solutions that Azure DevOps has to offer to support teams throughout each of the application life cycle phases. After that, we looked at the different features that Azure DevOps has to offer, and we introduced and created the two scenarios that we will use in the upcoming chapters of this book.
In the next chapter, we are going to cover how to manage projects with Azure Boards.
Check out the following links for more information about the topics that were covered in this chapter:
- Extension Marketplace: https://marketplace.visualstudio.com/azuredevops
- Azure Automation documentation: https://docs.microsoft.com/en-us/azure/automation/
- Azure DevOps demo generator: https://docs.microsoft.com/en-us/azure/devops/demo-gen/use-demo-generator-v2?view=azure-devops&viewFallbackFrom=vsts
- An overview of the Tailwind Traders reference apps for Azure: https://www.youtube.com/watch?v=EP-PME-1tq0