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
£32.99
Paperback 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
£32.99
Paperback 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 Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
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

Shipping Address

Billing Address

Shipping Methods
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
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

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 : 9781800563513
Concepts :
Tools :

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
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

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : Dec 11, 2020
Length: 438 pages
Edition : 1st
Language : English
ISBN-13 : 9781800563513
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

What is the digital copy I get with my Print order? Chevron down icon Chevron up icon

When you buy any Print edition of our Books, you can redeem (for free) the eBook edition of the Print Book you’ve purchased. This gives you instant access to your book when you make an order via PDF, EPUB or our online Reader experience.

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
Modal Close icon
Modal Close icon