Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Azure DevOps Explained
Azure DevOps Explained

Azure DevOps Explained: Get started with Azure DevOps and develop your DevOps practices

Arrow left icon
Profile Icon Sjoukje Zaal Profile Icon Stefano Demiliani Profile Icon Amit Malik
Arrow right icon
£23.99 £26.99
eBook Dec 2020 438 pages 1st Edition
eBook
£23.99 £26.99
Paperback
£29.99
Paperback
£32.99
Subscription
Free Trial
Renews at $19.99p/m
Arrow left icon
Profile Icon Sjoukje Zaal Profile Icon Stefano Demiliani Profile Icon Amit Malik
Arrow right icon
£23.99 £26.99
eBook Dec 2020 438 pages 1st Edition
eBook
£23.99 £26.99
Paperback
£29.99
Paperback
£32.99
Subscription
Free Trial
Renews at $19.99p/m
eBook
£23.99 £26.99
Paperback
£29.99
Paperback
£32.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Table of content icon View table of contents Preview book icon Preview Book

Azure DevOps Explained

Join our book community on Discord

https://packt.link/cloudanddevops

To embark on a journey through the transformative landscape of DevOps, this chapter lays the foundation by presenting a comprehensive introduction to the fundamental principles of Azure DevOps. The chapter delves into project management using Azure DevOps, setting the stage for the practical situations that will unfold in subsequent sections of this book. Additionally, the chapter will acquaint you with DevOps by giving an overview of its various principles. Subsequently, we will delve into the key concepts of Azure DevOps and explore its service landscape. Finally, we will introduce the scenarios utilized 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!

Introducing DevOps

DevOps is a forward-thinking IT approach that aims to enhance collaboration between software developers and operations professionals. At its core, DevOps seeks to merge software development (Dev) and IT operations (Ops) to shorten the system development life cycle. DevOps introduces the frequent delivery of features, fixes, and updates closely aligned with business objectives.

DevOps builds up on the belief that maintaining separate development and operations teams creates bottlenecks, inefficiencies, and a slower response to market changes. DevOps breaks down these barriers and fosters a culture of continuous improvement. It encourages developers and operations staff to work together throughout the project lifecycle, from design to production support.

DevOps embodies a mindset emphasizing constant communication, collaboration, integration, and automation. These elements enhance workflow, productivity, and product quality. DevOps aims to bring together human resources, processes, and technology to provide customers with value in an efficient, reliable, and sustainable manner.For a long time, development and operations had been divided into isolated organizational sections, and both had 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, both teams worked mostly separately on their projects. However, they heavily depended on each other because there was no cross-platform knowledge across the different teams.

This fits nicely with the Waterfall Methodology used for most projects. The Waterfall Methodology is based on the Software Development Life Cycle (SDLC), which clearly defines software creation processes. It breaks down project deliverables into linear sequential phases, where each phase depends on the deliverables of the previous phase.

The sequence of events in the Waterfall Methodology predicts a systematic, phase-by-phase development process where each stage must be completed before the next begins, ensuring a clear progression from the conception of an idea to the deployment of a fully operational system. This method anticipates a straightforward project flow with minimal changes once the project is underway. The sequence of events in the Waterfall Methodology predicts a systematic, phase-by-phase development process where each stage must be completed before the next begins, ensuring a clear progression from the conception of an idea to the deployment of a fully operational system. This method anticipates a straightforward project flow with minimal changes once the project is underway.

This sequence of events may look as following:

Figure 1.1 – Waterfall Methodology

The Waterfall Methodology is well suited for projects in the following circumstances:

  • Early Agreement on Deliverables: Customers and developers reach a consensus on the deliverables at an early stage, with minimal alterations required throughout the development process.
  • Parallel Design for Integration: To achieve integration with external systems, it is necessary to design multiple software components simultaneously, which in turn requires the early completion of design documents.
  • Concurrent Project Engagement: Team members, including business analysts and developers, often work on multiple projects simultaneously.
  • Limited Customer Engagement on Small Deliverables: In the case of smaller deliverables, customer participation is limited, as it is not feasible to break down the requirements phase.

However, customers may not exactly know what their requirements are before they see working software. This can result in changing the requirements, thus leading to redesign, reimplementation, and re-verification. This can dramatically increasethe costs of the project.

As a response to this circumstance, Agile and DevOps were introduced in the year 2009 and have gradually gained dominance in the realm of software development. They have become the preferred alternatives to the Waterfall Methodology for most existing projects.

DevOps is a natural extension of Agile and continuous delivery approaches, and it stands for development and operations. It is a practice that merges development, IT operations, and quality assurance into one single, continuous set of processes.

The following diagram illustrates the various parts that DevOps consists of:

Figure 1.2 – DevOps methodology

Agile methodology is a collaborative and iterative approach to software development that involves key stakeholders, such as developers, administrators, testers, and a representative of the end-user’s interests, referred to as the “customer.” The term “customer” includes external clients and internal departments or users in an organization who will use the application. Instead of following rigid schedules and predefined tasks at the project’s outset, this collective team delivers applications in functional components. The development process is divided into smaller, more manageable intervals called sprints, each with a predetermined duration and a set of deliverables. These deliverables are determined and prioritized collaboratively at the beginning of each sprint based on their business value, ensuring alignment with the needs of the “customer” or end-user, whether internal or external. The process is dynamic, with deliverables reviewed and adjusted through daily builds and end-of-sprint demonstrations, promoting continuous improvement and adaptability to changing requirements.

Adopting the DevOps methodology yields several distinct advantages, particularly in the context of enhancing collaboration, efficiency, and overall project success:

  • Enhanced Collaboration and Ownership: Promoting active stakeholder involvement and cooperation is essential for a successful project. In a DevOps setting, this is accomplished by implementing continuous integration and delivery. This approach encourages close collaboration between developers, operations personnel, and external and internal stakeholders, enabling them to streamline processes and enhance the product’s quality. By engaging stakeholders directly throughout the project lifecycle, a more profound sense of ownership is fostered, leading to increased collaboration and improved outcomes.
  • Early and Continuous Feedback: The DevOps practice of continuous delivery allows for the early release of product versions, enabling stakeholders to provide feedback sooner. This early visibility into the product’s development stages allows for timely adjustments, ensuring that the final product more accurately reflects user needs and preferences.
  • Business and Value Orientation: DevOps emphasizes a culture and practice that integrates development and operations teams, thereby focusing efforts on business outcomes and delivering value. This closer collaboration leads to a better understanding of customer needs and a more targeted approach to addressing them.
  • Rapid Delivery of Initial Product Version: The principles of DevOps facilitate the rapid development and deployment of an initial product version, which serves as a foundation for further iterations. This ability to quickly release a base version not only accelerates time to market but also supports a more agile response to market and customer demands.

Now that we have covered a very brief introduction to DevOps, we are going to look at the different DevOps principles.

Understanding DevOps principles

The DevOps encompasses a range of interpretations, each shedding light on the importances of optimizing the flow of software and IT project delivery. Among these interpretations, one stands out for its clarity and all-encompassing scope: DevOps refers to a collection of methodologies that automate the processes between software development and IT teams, empowering them to construct, test, and release software more swiftly and with greater reliability. This approach cultivates a collaborative culture, where the traditionally separate roles of development and operations merge, facilitating continuous integration, continuous delivery, and prompt feedback. This perspective not only captures the essence of DevOps but also emphasizes its objective of enhancing product quality and hastening delivery through teamwork and technological innovation.

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

In today’s rapidly evolving technological landscape, software development projects must embrace short cycles and feedback loops to keep up with the need for rapid adaptation and innovation. A key aspect of this is involving end users and real customers directly in the development team, ensuring that the software not only meets their expectations but surpasses them. This approach allows for immediate feedback and adjustments, significantly reducing the time it takes to go from concept to deployment. DevOps teams and organizations are therefore encouraged to continually invest in products and services that not only maximize client satisfaction but also maintain agility. This agility enables them to quickly pivot and adjust their strategy in response to changing market demands or feedback, ensuring that they stay competitive and relevant. The core principle behind this approach is to foster a cycle of continuous improvement, where feedback directly informs the development process, resulting in the creation of products that are closely aligned with user needs and market trends.

Principle 2 – Embrace a continuous product mindset

Organizations need to act more like product companies. They should focus more on building working products that are sold to real customers. This engineering mindset needs to be shared by all employees. This is required to realize those products. This means that they should let go of the approach where each unit focuses on a particular role with its own scoped responsibility.

Principle 3 – End-to-end responsibility

In traditional software development models, there’s a clear division where development teams create software and services, which are then passed on to operations teams for deployment and ongoing maintenance. However, the DevOps approach transforms this process by ensuring that the teams who develop the software are also responsible for its maintenance and support post-delivery. This accountability extends through the entire lifecycle of the product, up to its end of life. This shift not only heightens the team’s sense of ownership but also significantly enhances the quality of the output, as the same team oversees development, deployment, and maintenance, ensuring a more integrated and quality-focused approach.

Principle 4 – Cross-functional autonomous teams

Organizations that embrace vertical and fully autonomous teams empower them to operate independently throughout the product lifecycle. For these teams to function effectively without dependency, members must possess a diverse and comprehensive skill set. It is essential for team members to have T-shaped profiles, which combine deep expertise in their primary area with a broad understanding of complementary disciplines. This approach moves beyond the traditional focus on narrow specialization. Essential skills for each team member include development, requirement analysis, testing, and administration, ensuring a versatile and adaptable team capable of handling various aspects of the project lifecycle.

Principle 5 – Continuous improvement

Another part of end-to-end responsibility is that, for organizations, it is important to adapt to changes continuously. There can be several changing circumstances, such as new technology that has been released, changing customer requirements, and so on. Continuous improvement is a strong focus in DevOps when it comes to optimizing for speed and costs, minimizing waste, and eas of delivery, and to continuously improve the software and services that are being built and released. An important activity to embed inside these cycles is experimentation. This will allow teams to develop a way of learning from their failures, which is essential to continuous improvement.

Principle 6 – Automate everything

To fully adopt and embed a continuous improvement culture inside an organization, most organizations have a lot of waste and tech debt to eliminate. To achieve high cycle rates, and to process instant feedback from customers and end users as soon as possible, it is imperative to automate everything. This means that not only the software development process should be automated using continuous delivery (which includes continuous development and integration), but also the whole infrastructure landscape needs to be automated. The infrastructure also needs to be ready for new ways of working. In this sense, automation is synonymous with the drive to renew the way the team delivers their services to their customers.

In this section, we have covered the six principles that are important when adopting or migrating to a DevOps way of working. In the next few sections, we are going to look at what Azure DevOps has to offer as a tool that supports teams so that they can work in a DevOps-oriented manner.

Principle 7 – Failure as a Learning Opportunity

At its essence, this principle is founded on the understanding that the journey towards innovation is not linear and is filled with obstacles. It acknowledges that breakthroughs often arise not when everything goes as planned, but rather when unforeseen outcomes prompt a reassessment of assumptions, processes, and strategies. This principle draws from the expansive theoretical realm of experiential learning, which suggests that the most profound insights often emerge from reflecting on experiences, particularly those that deviate from our expectations. In the context of DevOps, this principle manifests in practices that promote continuous experimentation, feedback, and iteration. DevOps, by its very nature, blurs the boundaries between development, operations, and quality assurance, thus fostering an environment conducive to interdisciplinary learning and innovation. When a deployment fails or a new feature fails to meet user expectations, the integrated DevOps team is encouraged to thoroughly analyze the failure, comprehend its underlying causes, and extract valuable insights that can shape future endeavors. This approach not only expedites the pace of improvement but also cultivates a culture where fear of failure does not impede creativity.

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

Azure DevOps, evolved from Visual Studio Team Services (VSTS), is Microsoft’s comprehensive suite of development and operations services. This SaaS solution, complemented by an on-premises version known as Azure DevOps Server, supports the entire application lifecycle from planning to deployment. It offers a broad range of tools for project management, code collaboration, continuous integration, and continuous delivery, making it an essential platform for DevOps teams aiming to streamline their workflows and accelerate software delivery.

The term Azure DevOps might cause confusion, as it is sometimes mistakenly referred to as “Azure” or “DevOps.” It is important to note that Azure DevOps is distinct from Azure, Microsoft’s cloud computing service, and specifically focuses on facilitating DevOps practices. Offering flexibility, Azure DevOps integrates seamlessly with various Microsoft and third-party tools, allowing teams to customize their development toolchains. Whether for small projects or complex systems, Azure DevOps delivers the scalability and versatility required for modern software development services.

Most DevOps teams rely on several tools and build custom toolchains for each phase in the application life cycle.

Azure DevOps Application Lifecycle

The following diagram shows the phases that are defined in the application life cycle:

Figure 1.3 – Application life cycle phases

In the following sections, we will explain these phases and the corresponding Microsoft tooling and products in more detail.

  1. Plan: During the planning phase, teams can leverage Azure Boards, a service within Azure DevOps that provides tools for work tracking, including boards and backlogs. This enables the definition, tracking, and organization of work that needs to be completed. Teams can outline their tasks using Azure Boards to create a visual representation of their workflow and priorities. Additionally, for those integrating with GitHub, an issue can be raised to suggest innovative ideas or track bugs. These issues can then be systematically organized and assigned within teams, ensuring clear communication and task management. Azure Boards is designed to facilitate agile project management, allowing teams to efficiently plan, execute, and monitor their work throughout the software development lifecycle.
  2. Develop: The development phase is facilitated by a variety of integrated development environments (IDEs) and editors, among which Visual Studio Code and Visual Studio are prominent examples used by .NET developers. Visual Studio Code serves as a cross-platform editor, offering versatility across different operating systems, whereas Visual Studio provides a comprehensive development environment, available for Windows and Mac users. Beyond these, developers have the freedom to choose from a wide array of IDEs that best suit their project’s needs and their personal preferences.

For automating testing and building processes, Azure DevOps introduces Azure Pipelines, enabling the creation of automated builds to compile the source code efficiently. Furthermore, code collaboration and sharing among teams are streamlined through Azure DevOps and GitHub, providing robust platforms for version control and project management. This diverse toolkit ensures that developers can maintain productivity and flexibility, adapting their workflow to the specific demands of their projects.

  1. Deliver: The deliver phase encompasses deploying applications and services to their intended environments, which may include cloud platforms, on-premises infrastructures, and also target devices for desktop or mobile applications. Azure Pipelines facilitates the automation of code deployment across various environments, including any Azure service, on-premises setups, and even to desktop or mobile platforms. For provisioning and managing infrastructure, Azure Resource Manager templates or Terraform can be employed to efficiently prepare environments for your applications, whether they are cloud-based, desktop, or mobile. Additionally, Azure DevOps Pipelines offer the flexibility to integrate with external tools like Jenkins and Spinnaker, enhancing the deployment process with powerful automation and orchestration capabilities. This approach ensures that delivery is seamless and adaptable, catering to the diverse needs of modern software development projects.
  2. Operate: In the operational phase, establishing comprehensive monitoring and alerting systems is crucial to ensure the health and performance of your applications and services across the entire technology stack. “Full stack” monitoring means tracking the functionality and efficiency of all components, from the user interface down to the backend databases and infrastructure, to identify and resolve issues promptly.

While Azure DevOps facilitates continuous integration and delivery, it’s important to note that its use is not limited to Azure-hosted applications. Developers can deploy applications to a variety of environments, including non-Azure cloud services, on-premises servers, and even to desktop or mobile platforms.

After explaining the fundamental stages of Plan, Develop, Deliver, and Operate, it is essential to comprehend how these phases align with broader development methodologies, specifically Continuous Integration/Continuous Delivery (CI/CD), Agile development support, Version control, and Infrastructure as Code. These methodologies are not merely extra procedures but rather essential components of the DevOps lifecycle, improving effectiveness, cooperation, and the quality of the product.

Continuous integration and continuous delivery (CI/CD)

In the Azure DevOps environment, IT professionals can automate all aspects of the DevOps process through Continuous Integration (CI) and Continuous Delivery (CD), with the option for Continuous Deployment as an additional step. These practices serve as the foundation for modern software development, ensuring efficiency, reliability, and speed in the delivery of applications.

Continuous Integration (CI) is a technique employed during the application development phase. It involves automatically building and testing code whenever a change is made to the main branch, ensuring seamless integration of new code changes with the existing codebase. This practice’s objective is to quickly identify and resolve integration errors, thereby maintaining software quality and enabling development teams to deliver software at a faster and more dependable pace.

When modifications are made to the primary branch, now called “main” to align with updated industry terminology, they undergo automatic validation. This validation process involves compiling the code to identify any errors and conducting automated tests to ensure that the changes do not disrupt or degrade the application. Once the validation is successful, the code can be built and optionally packaged into a deployable artifact. This artifact represents a version of the code that can be transferred to different environments for further testing or release.

Continuous Delivery (CD) builds upon Continuous Integration (CI) by automating the deployment of applications to specific environments, such as test or staging environments. CD streamlines the necessary steps for deploying a build artifact to these environments, allowing teams to verify that their application can be deployed at any given time. However, unlike Continuous Deployment, Continuous Delivery does not automatically deploy the application to production. Instead, it prepares all the required deployment steps so that the release to production can be easily triggered manually, for example, by pressing a button. This approach grants teams’ greater control over the timing and manner of changes being released.

Continuous Deployment is an extension of Continuous Delivery that automates the deployment of applications to production without the need for manual intervention. With Continuous Deployment, any change that successfully passes through all stages of the production pipeline is automatically released to customers. This allows for a quick feedback loop with end users. Continuous Deployment is particularly beneficial for teams that have confidence in their testing and release processes and want to speed up the release cycle even more.

In summary, Continuous Integration involves automatically building and testing code with each commit to ensure that the software is always ready for release. Continuous Delivery automates the process leading up to the release but still requires manual triggering for deployment. Continuous Deployment takes it a step further by automatically deploying every change to production, eliminating the need for manual intervention in the release process.

Agile development support

Azure DevOps enhances the effectiveness of Agile development approaches by providing a wide range of capabilities for planning, monitoring, and reporting. This results in more streamlined release cycles and complete transparency throughout the software development process. It is important to note that while Azure DevOps can also be used for project management, its main strength lies in supporting Agile practices. Azure Boards, which will be further discussed later, is a crucial tool for managing sprints, including tasks like backlog management and the allocation and monitoring of work items. Moreover, the platform offers advanced analytics, reporting features, and the ability to create personalized dashboards for tracking development progress.

Version control

A version control system, also known as a source control system, is an essential tool for multi-developer projects. It allows developers to collaborate on the code and track changes. The history of all the code files is also maintained in the version control system. This makes it easy to go back to a different version of the code files in case of errors or bugs.

Azure DevOps supports two diverse types of source control: Git (distributed) and Team Foundation Version Control (TFVC). With Git, each developer has a copy of the source repository on their development machine. All branch and history information are included inside the source repository. Each developer works directly with their copy of the repository and all the changes are shared between the local and source repositories as a separate step. Changes can be committed on the local filesystem, and version control operations can be executed without a network connection. Branches can be created easily on the dev machine and later, they can be merged, published, or disposed of by the developer separately. With TFVC, developers have only one version of each file on their local dev machines. All the others, as well as the historical data, are maintained only on the server. The branches are created on the server as well.

Infrastructure as Code

Teams can utilize Azure DevOps for managing infrastructure tasks, streamlining the handling of components like networks, virtual machines, and load balancers. By employing version control features like those used for source code, teams can effectively manage infrastructure elements. This integration enables the adoption of Infrastructure as Code (IaC) practices, with languages such as ARM Templates, Bicep, CloudFormation, and Terraform, which ensure consistent and repeatable environment deployments.

Incorporating IaC with continuous delivery practices enables the automatic creation of identical environments with each deployment. This approach eliminates the need for manual configuration and deployment of individual environment settings and infrastructure, which is time-consuming and prone to errors. Without IaC, the result is the development of unique “snowflake” environments with irreproducible configurations, leading to inconsistencies and deployment challenges. By utilizing IaC, teams can avoid these issues, ensuring consistency across all deployment environments and reducing deployment-related problems.

Configuration Management

Configuration Management involves the supervision and upkeep of all the vital components and artifacts necessary for a project. Its main goal is to ensure these elements are stored, accessible, and uniquely identifiable systematically. This process allows for the tracking and modification of various elements, including source code, documentation, and executable binaries. Essentially, Configuration Management serves as the definitive repository for these configuration items, guaranteeing their integrity and traceability throughout the entire project lifecycle.

Azure DevOps empowers teams to effectively manage and synchronize resource configurations across their entire infrastructure. It enables the implementation of configuration changes, the enforcement of desired states, and the automatic rectification of any discrepancies or issues that may arise. While Azure DevOps provides a comprehensive suite of tools for efficient configuration management, it seamlessly integrates with external tools like Azure Automation to enhance its capabilities. However, it is important to note that although tools such as Chef, Puppet, and Ansible can be used alongside Azure services, they are independent entities and not directly affiliated with Azure or Azure DevOps. This integration allows for a more robust and flexible approach to configuration management.

Monitoring

Azure Monitor offers comprehensive and continuous monitoring for your entire technology stack, providing valuable insights into the well-being of both your infrastructure and applications. It seamlessly integrates with popular dashboards like Grafana and Kibana, as well as the Azure portal, allowing you to have a unified view of your system’s health. This powerful tool supports the monitoring of application availability, performance, and usage metrics, and can be used in various hosting environments, including on-premises and Azure cloud services.

It’s important to note that Azure Monitor is not the only application performance management (APM) tool available in the Azure ecosystem. However, its deep integration with Azure services makes it stand out. While focusing on Azure Monitor in the context of Azure DevOps doesn’t mean you can’t use other APM tools, it emphasizes the seamless connectivity and valuable insights that Azure Monitor provides for applications developed and deployed in Azure or elsewhere.

Azure Monitor provides support for various programming languages and frameworks, such as .NET, Java, and Node.js. This ensures compatibility with the most widely used technologies in modern development environments. The ability to integrate monitoring directly into the DevOps lifecycle is essential, as it offers real-time feedback on performance problems and operational health within Azure DevOps workflows. This integration plays a crucial role in enabling a more agile and responsive DevOps process. It allows teams to swiftly identify and resolve issues as part of their continuous integration and deployment (CI/CD) pipelines.

Discovering Azure DevOps services

In this section, we will delve into the wide range of Azure DevOps services, which are intended to assist teams throughout the entirety of delivering business value to customers. Azure DevOps serves a diverse audience, with its offerings customized to meet the requirements of different roles within a project team.

The services known as Repositories (Repos), Pipelines, and Artifacts are primarily tailored to developers, offering a range of powerful tools for managing code and executing continuous integration/continuous deployment (CI/CD) processes. On the other hand, Boards are specifically designed to cater to the needs of the entire team, providing valuable assistance in project management and fostering collaboration through agile planning tools and tracking capabilities. For managers, Analytics and Delivery Plans prove to be particularly beneficial as they offer insights and oversight on project progress, team performance, and delivery timelines. Lastly, Test Plans are specifically created for testers and stakeholders, equipping them with a comprehensive suite of testing tools to ensure software quality and meet customer requirements.

We will now dive deeper into each one of these services.

Azure Boards

Azure Boards is an advanced project management solution, one of the features of the Azure DevOps suite. Its primary purpose is to support Agile software development methodologies. By acting as a centralized hub, it enables teams to efficiently plan, monitor, and engage in discussions regarding their tasks. This fosters collaboration and boosts overall productivity.

The following screenshot shows an example of an Azure Board:

Figure 1.4 – Azure Boards

Now, let’s delve into the essential functionalities and capabilities of this tool:

  • Agile Planning Tools: Azure Boards is equipped with tools that support Agile methodologies, making it easier for teams to adopt and implement practices such as Scrum and Kanban. These tools allow for flexible planning and tracking of work items, enabling teams to adapt to changes quickly.
  • Scrum and Kanban Support: It offers native support for both Scrum and Kanban, two of the most popular Agile methodologies. Teams can choose the framework that best fits their workflow, whether it’s the structured sprints of Scrum or the continuous flow of Kanban.
  • Customizable Dashboards: Teams can tailor dashboards to their needs, ensuring that relevant information is always in the proper place. This customization capability allows for the monitoring of progress and key metrics in real-time, facilitating data-driven decision-making.
  • Integrated Reporting: Azure Boards includes integrated reporting features, providing insights into project health, team productivity, and delivery timelines. These reports can help identify bottlenecks and areas for improvement.
  • Work Item Tracking: Teams can create and track various types of work items, including user stories, backlog items, tasks, features, and bugs. This functionality supports a comprehensive approach to managing all aspects of software development, from feature planning to bug tracking.

Azure Analytics

Azure Analytics is a robust feature that enables data analysis for your software development projects. It facilitates collecting, visualizing, and interpreting important metrics and trends from your Azure DevOps environment.

By utilizing this potent analytical tool, you can obtain profound insights into your team’s performance, recognize areas of improvement, and make informed decisions based on data analysis. With Azure DevOps Analytics, you can streamline your development processes, boost cooperation, and achieve project success by leveraging the potential of data. Your teams can create unique Dashboard views enriched by widgets based on analytics, such as burndown and burnup widgets. Further, you can leverage Power BI data connectors to support data import.

The following screenshot shows an example of an Azure Analytics Dashboard:

Figure 1.5 – Azure Analytics

Azure Delivery Plans

The Azure Delivery Plans feature is a highly beneficial tool that assists teams in visualizing and organizing their work delivery across various teams and projects. It offers an interactive timeline view of planned work, enabling teams to coordinate and align their efforts efficiently.

Delivery Plans help track in tracking dependencies, identifying potential conflicts, and ensuring a smooth delivery process. This collaborative tool promotes transparency, improves communication, and facilitates the coordination of complex projects, making it an indispensable component of successful project management within Azure DevOps.

The following screenshot shows an example of an Azure Delivery Plan:

Figure 1.6– Azure Delivery Plans

Azure Repos

Azure Repos offers support for hosting private Git repositories and for Team Foundation Version Control (TFVC). It provides a suite of version control tools designed to handle the source code management needs of any development project, regardless of size. In Git, changes are committed to the version control system, which then calculates the current state of the code based on these commits. This calculated state, often referred to as a “snapshot,” is represented as the directory structure of the repository with its files. The history of commits is immutable and saved permanently, allowing the state of the files to be restored to any previous version if necessary.

Git is the most widely used version control system among developers today. Azure Repos supports standard Git, enabling developers to work with their preferred tools and clients, including Git for Windows, Mac, and various third-party Git services. Additionally, it integrates seamlessly with a broad range of development tools, including but not limited to Visual Studio and Visual Studio Code, thus accommodating developers who use different Integrated Development Environments (IDEs).

The following screenshot shows an example of the commits you can push to a repo in Azure:

Figure 1.7 – Azure Repos

Azure Pipelines

Azure Pipelines enables the automation of building, testing, and deploying code across various stages, facilitating its availability to users and deployment across diverse environments beyond the traditional Development, Testing, Acceptance, and Production (DTAP) pipeline. This includes the utilization of ephemeral environments, which offer temporary, dynamic testing configurations. It encompasses Continuous Integration/Continuous Delivery (CI/CD), a methodology that automates the process of software delivery and ensures the continuous improvement of products.

Before leveraging Azure Pipelines, it’s essential to store your code in a version control system. Azure Pipelines supports integration with numerous version control systems, including Azure Repos, Git, Team Foundation Version Control (TFVC), GitHub, GitHub Enterprise, Subversion, Bitbucket Cloud, and now Bitbucket Server. Azure Pipelines is versatile, catering to a broad spectrum of development projects. It is compatible with various programming languages and platforms, such as Java, JavaScript, Node.js, Python, .NET, C++, Go, PHP, and XCode, and it can facilitate the building of desktop and mobile applications.

Furthermore, Azure Pipelines allows for deployment to multiple target environments, which can range from virtual machines and Azure services to any on-premises or cloud platform. However, it is important to note that container registries are used for storing container images rather than hosting applications. Azure Pipelines provides the flexibility to work with any project or application, supporting a wide array of deployment targets to meet the needs of diverse software development practices.

Azure Pipelines Library offers a centralized repository for managing configuration data crucial for your deployment processes. In the library, values are stored in the form of variables, by simply mapping key, or the variable name, to the value. Variables can be stored as plain text, as encrypted text, or the variable value source can come from the Azure Key Vault, by linking the library to the specific Azure Key Vault Resources. Library facilitates pipeline configurations that dictate the flow of the continuous integration and delivery (CI/CD) processes, infrastructure configurations which define the underlying resources required for your application, and application runtime configurations that specify the environment variables and settings necessary for your application to run properly. By leveraging the Azure Pipelines Library, you can ensure consistent, reliable management of these configurations across different environments, streamlining the deployment and operational workflows for your projects.

The following screenshot shows an example of a run for an Azure Pipeline:

Figure 1.8 – Azure Pipelines

Azure DevOps Test Plans

Azure DevOps Test Plans enhance code quality through a combination of structured and exploratory testing approaches. This tool facilitates various testing strategies, including planned manual testing, exploratory testing, user acceptance testing (UAT), and the collection of feedback from stakeholders. In planned manual testing, test cases are organized into test plans and suites by test leads and testers. Testing can be initiated directly from Kanban boards or what is commonly referred to in the UI as the “Boards” or “Work” sections.

User Acceptance Testing (UAT) is crucial for verifying the software’s fulfillment of customer requirements, typically conducted by end-users or clients to ensure the solution meets their needs before it is deployed into production. Exploratory testing encourages the entire DevOps team, including engineers, developers, product owners, and testers, to actively engage in testing without predefined plans or suites, promoting creativity and spontaneous discovery of issues.

Feedback gathering from stakeholders, conducted by teams outside of development such as marketing or sales, is facilitated through Azure DevOps, allowing developers to seek input on user stories and features directly. Stakeholders can respond to these requests, ensuring valuable insights are integrated into the development process.

It is important to note that Azure DevOps Test Plans is a premium feature. While a “Basic” Azure DevOps license offers read-only access to Test Plans, actively using the service for testing requires a “Basic + Test Plans” license, costing around $52 per user per month. This pricing structure is significant for organizations considering the comprehensive testing capabilities Azure DevOps Test Plans provides, balancing cost against the value of advanced testing features and stakeholder engagement in the software development lifecycle.

The following screenshot shows an example of an Azure DevOps Test Plan:

Figure 1.9 – Azure Test Plan

Azure Artifacts

Azure Artifacts enables the creation, sharing, and management of NuGet, Cargo, npm, Python, Maven, and Universal packages within Azure DevOps. It allows for the packaging of code into reusable components that can be consumed by both source code and CI/CD pipelines. With Azure Artifacts, you have the flexibility to establish multiple feeds, which serve as repositories for your packages. These feeds can be configured as either private or public, providing you with control over access and distribution. This capability ensures that your development teams can easily organize their packages and regulate who can view or consume them, enhancing collaboration and efficiency in software development processes.

The following screenshot shows an example of a feed in Azure Artifacts:

Figure 1.10 – Azure Artifacts

Extension Marketplace

You can install extensions for Azure DevOps from the Visual Studio Marketplace. These extensions are simple add-ons that can be used to customize and extend your team’s experience with Azure DevOps. They can help by extending the planning and tracking of work items, code testing and tracking, pipeline build and release flows, and collaboration among team members. The extensions are created by Microsoft and the community.

The following screenshot shows some of the extensions that can be installed from the marketplace:

Figure 1.11 – Extension Marketplace

The services such as Azure Boards, Azure Analytics, Azure Delivery Plans, Azure Repos etc. that we introduced in the previous sections will be explained more thoroughly in the upcoming chapters of this book. In the next section, we will introduce the scenarios that will be used throughout this book.

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 Azure DevOps Demo 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:

Once the extensions have been installed inside your Azure DevOps organization, you can generate the sample project using the following steps:

  1. First, navigate to the following site: https://azuredevopsdemogenerator.azurewebsites.net/.
  2. Click the Sign-in button. If you don’t have an Azure account yet, you can sign up for a trial account by clicking the Get started for free button:

    Figure 1.12 – Azure DevOps demo generator
  3. Name the project Tailwind Traders, select an organization, and select a template by clicking the Choose template button. Select Tailwind Traders from the list and click Select Template.
  4. After filling in these details, the page should look as follows:

    Figure 1.13 – Creating a new project
  5. Click the Create Project button.
  6. With the project created, navigate to this link https://dev.azure.com/.
  7. Log in with your credentials and select the organization where you created the project. Select the Tailwind Traders project to see if anything has been generated.
  8. Repeat these steps to create the Parts Unlimited project in your DevOps environment.

For more information about the Tailwind Traders sample project, refer to the following site: https://github.com/Microsoft/TailwindTraders. For more information about the Parts Unlimited example, refer to the following link https://microsoft.github.io/PartsUnlimited/.

Summary

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 distinctive 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.

Further reading

Check out the following links for more information about the topics that were covered in this chapter:

Left arrow icon Right arrow icon
Download code icon Download Code

Key benefits

  • Improve your application development life cycle with Azure DevOps in a step-by-step manner
  • Apply continuous integration and continuous deployment to reduce application downtime
  • Work with real-world CI/CD scenarios curated by a team of renowned Microsoft MVPs and MCTs

Description

Developing applications for the cloud involves changing development methodologies and procedures. Continuous integration and continuous deployment (CI/CD) processes are a must today, but are often difficult to implement and adopt. Azure DevOps is a Microsoft Azure cloud service that enhances your application development life cycle and enables DevOps capabilities. Starting with a comprehensive product overview, this book helps you to understand Azure DevOps and apply DevOps techniques to your development projects. You'll find out how to adopt DevOps techniques for your development processes by using built-in Azure DevOps tools. Throughout the course of this book, you'll also discover how to manage a project with the help of project management techniques such as Agile and Scrum, and then progress toward development aspects such as source code management, build pipelines, code testing and artifacts, release pipelines, and GitHub integration. As you learn how to implement DevOps practices, this book will also provide you with real-world examples and scenarios of DevOps adoption. By the end of this DevOps book, you will have learned how to adopt and implement Azure DevOps features in your real-world development processes.

Who is this book for?

This book is for developers, solutions architects, and DevOps engineers interested in getting started with cloud DevOps practices on Azure. Prior understanding of Azure architecture and services is necessary. Some knowledge of DevOps principles and techniques will be useful.

What you will learn

  • Get to grips with Azure DevOps
  • Find out about project management with Azure Boards
  • Understand source code management with Azure Repos
  • Build and release pipelines
  • Run quality tests in build pipelines
  • Use artifacts and integrate Azure DevOps in the GitHub flow
  • Discover real-world CI/CD scenarios with Azure DevOps

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Dec 11, 2020
Length: 438 pages
Edition : 1st
Language : English
ISBN-13 : 9781800568655
Concepts :
Tools :

What do you get with eBook?

Product feature icon Instant access to your Digital eBook purchase
Product feature icon Download this book in EPUB and PDF formats
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Product feature icon AI Assistant (beta) to help accelerate your learning
OR
Modal Close icon
Payment Processing...
tick Completed

Billing Address

Product Details

Publication date : Dec 11, 2020
Length: 438 pages
Edition : 1st
Language : English
ISBN-13 : 9781800568655
Concepts :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Table of Contents

3 Chapters
Azure DevOps Explained, Second Edition: Accelerate your cloud-native software development with Azure DevOps for Cloud Excellence Chevron down icon Chevron up icon
1 Azure DevOps Overview Chevron down icon Chevron up icon
2 Managing Projects with Azure DevOps Boards Chevron down icon Chevron up icon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

How do I buy and download an eBook? Chevron down icon Chevron up icon

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Chevron down icon Chevron up icon

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Chevron down icon Chevron up icon
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Chevron down icon Chevron up icon

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Chevron down icon Chevron up icon
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Chevron down icon Chevron up icon

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.

Modal Close icon
Modal Close icon