Organization around the world are focusing on digitalizing systems of engagement and systems of innovation with a focus to improve the customer experience. DevOps is the approach that will help to create, connect and orchestrate all these digital components to work in tandem. DevOps enables organizations to fail fast and fail cheap, in other words it enables faster release cycles by taking advantage of faster agile development cycles, faster cloud and virtualized provisioning of core infrastructure or platforms, increased collaboration between stakeholders and consumers, application developers and operations engineers and tools and processes.

Azure DevOps introduced new ways to plan smarter with enhanced collaboration and achieve faster product delivery, backed by modern development services. Key features offered by Azure DevOps:

· Azure Boards

· Azure Repository

· Azure Artifacts

· Azure Pipelines

· Azure Test Plans

Developers can integrate code into a shared repository by automatically verifying the build, unit tests and package the solution using Continuous Integration, whenever there are new updates to code is submitted to repository. Continuous Integration helps to automate the build process when development of a solution by the project team and when development cycles are undergoing continuous changes.

Image 001: Start with creating new project

Create an Azure Board: With the Azure Boards, we can manage our software projects. It provides a large set of capabilities including native support for Scrum & Kanban, customizable dashboards and integrated reporting. The Azure DevOps Marketplace offers a wide variety of extensions to customize or enhance the default experience.

Image 002: Create an Azure Board

When we create a project, we must choose a process or process template: A process defines the building blocks of the work item tracking system and supports the Inheritance process model for Azure Boards. This model supports customization of projects through a WYSIWYG user interface. A process template defines the building blocks of the work item tracking system as well as other sub-systems you access through Azure Boards or an on-premises Azure DevOps Server or Team Foundation Server (TFS). It supports Hosted XML and On-premises XML process models which support customization of projects through the modification and import of XML definition files.

The default processes are designed to meet the needs of most teams. If our team has unusual needs and connects to an on-premises server, we can customize a process and then create the project. Or we can create a project from a process and then customize the project.

Create an Azure Repo: Azure Repos is a set of version control tools that we can use to manage our code. Azure Repos provides two types of version control:

Git: Distributed version control

Team Foundation Version Control: Centralized version control

We can set up and manage subscriptions to receive notifications in our channel whenever code is pushed/checked in and whenever a pull request is created, updated or a merge is attempted. Create a complete local copy of an existing Git repository by cloning it. By default, Git assigns the origin to the remote repo we clone from.

Image 003: Create and clone an Azure Repo

Create an Azure Artifact: With Azure Artifacts we can create and share Maven, NPM and NuGet package feeds from public and private sources with teams of any size. We can add fully integrated package management to our continuous integration/continuous delivery (CI/CD) pipelines with a single click. Azure Artifacts is the new home of the Packages page under the Build and release page group in the previous navigation UX of Azure DevOps Services and TFS. Azure Artifacts is billed on a consumption basis and is free up until 2 GB of storage.

Image 004: Create an Azure Artifact

Create an Azure Pipeline: Azure Pipelines is a cloud service that can be used to automatically build and test our code project and make it available to other users. It works with just about any language or project type. We can use many languages with Azure Pipelines, such as Python, Java, JavaScript, PHP, Ruby, C#, C++ and Go. Azure Pipelines integrates with GitHub, GitHub Enterprise, Azure Repos Git & TFVC, Bitbucket Cloud and Subversion. We can use Azure Pipelines with most application types, such as Java, JavaScript, Node.js, Python, .NET, C++, Go, PHP and XCode. To use Azure Pipelines, we need:

An organization in Azure DevOps.

To have source code stored in a version control system.

Image 005: Create an Azure Pipeline

The key concepts and components that are used in Azure Pipelines: When we build or deployment runs, the system begins one or more jobs. An agent is installable software that runs one job at a time. Approvals define a set of validations required before a deployment can be performed. Manual approval is a common check performed to control deployments to production environments. An artifact is a collection of files or packages published by a run. Artifacts are made available to subsequent tasks, such as distribution or deployment. A deployment group is a set of deployment target machines that have agents installed. A deployment group is just another grouping of agents, like an agent pool. An environment is a collection of resources, where we deploy our application. It can contain one or more virtual machines, containers, web apps or any service that’s used to host the application being developed. A stage contains one or more jobs. Each job runs on an agent. A job represents an execution boundary of a set of steps. All of the steps run together on the same agent.

Image 006: Key Features & Concepts (Image retrieved from: https://docs.microsoft.com/en-in/azure/devops/pipelines/get-started/key-pipelines-concepts?view=azure-devops)

A run represents one execution of a pipeline. It collects the logs associated with running the steps and the results of running tests. A stage is a logical boundary in the pipeline. It can be used to mark separation of concerns. Each stage contains one or more jobs. A task is the building block for defining automation in a pipeline. A task is packaged script or procedure that has been abstracted with a set of inputs. A trigger is something that’s set up to tell the pipeline when to run. We can configure a pipeline to run upon a push to a repository, at scheduled times, or upon the completion of another build. All of these actions are known as triggers.

Image 007: CI Vs CD

Create an Azure Test Plans: Azure DevOps and TFS provide large and powerful tools everyone in the team can use to drive quality and collaboration throughout the development process. The easy-to-use, browser-based test management solution provides all the capabilities required for planned manual testing, user acceptance testing (UAT), exploratory testing and gathering feedback from stakeholders.

Image 008: Create an Azure Test Plan

Manual testing by organizing tests into test plans and test suites by designated testers and test leads. User Acceptance Testing carried out by designated user acceptance testers to verify the value delivered meets customer requirements, while reusing the test artifacts created by engineering teams. Exploratory Testing carried out by development teams, including developers, testers, UX teams, product owners and more, by exploring the software systems without using test plans or test suites. Stakeholder Testing carried out by stakeholders outside the development team, such as users from marketing and sales divisions.

Azure DevOps Services is the cloud offering that provides a scalable, reliable and globally available hosted service. It’s backed by a 99.9% SLA, monitored by our 24/7 operations team and available in local data centers around the world.

Azure DevOps Services are widely available and secure, to setup cloud native deployment pipelines for application in any language.

Thanks

Senior Cloud Consultant | Cloud Enthusiast | Helping Customers in Adopting Cloud Technology

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store