CI/CD pipeline on Azure

Azure DevOps by Microsoft is one of the leading tools used for automating the code builds, automation tests and deployment to the desired environment. It also helps us in maintaining the version of the code using the Repos, and Continuous Integration (CI) methodology is achieved by allowing the developers to check in the code into the shared repository, which in turn gets verified by automated test cases and build sequence. Continuous Deployment (CD) is achieved through Azure Release Pipelines where the build packages (output of CI) are deployed to different environments like Stage, UAT or Production. The changes deployed can include the build or any configuration changes, error fixes etc.

Before we get into Azure Pipelines lets look into Azure DevOps & core features. 

What is Azure DevOps?
Azure DevOps was launched in October 2018. It’s a Software as a Service platform that comprises a complete set of tools that not just provides the DevOps capabilities, but also provides the abilities using which the complete lifecycle of the product development can be managed. 

One of the best parts about Azure DevOps is its flexibility as it can also integrate with other tools in the market for shared management of the process flow and orchestrates the complete DevOps toolchain. This helps in leveraging existing tools already being used within the organization. There are three main reasons why Azure DevOps has an upper hand when compared to other existing tools in the market.

Core features of Azure DevOps features
As already mentioned, Azure DevOps provides the ability for end-to-end management of the product development lifecycle, it comprises the below services.
  • Azure Boards – is a set of Agile tools that supports planning and complete tracking of the project development progress, defects raised, as well as other issues, i.e., complete project management can be done using Azure Boards. At the backend it has a native support for Scrum and Kanban for Agile. It provides dashboards with integrated reporting that are customizable and have the ability to scale as per business demands.
  • Azure Pipelines – being a DevOps tool, it definitely provides the Continuous Integration and Continuous Delivery (CI/CD), also known as CICD pipelines to support the build and release of the application from development to production. We will see this in action in the demo in the following sections.
  • Azure Repos – is a set of version control tools that can be used to manage codes and their different versions by the development team. It, therefore, helps in tracking the changes made in the code over the period of time with different versions. When the changes are made to the code, DevOps tool takes the snapshots of the files being checked-in so that these changes can be tracked. These snapshots are saved permanently. Additionally, it helps coordination and collaboration between teams working on the same project. Azure Repos provides two types of version control. They are:
    • Git: Distributed version control
    • Team Foundation Version Control: Centralized version control
  • Azure Artifacts – allows the teams to easily package the dependencies and other artifacts required for the application deployment and its functionality, thus making it easier to publish and consume the application. There can be different kinds of artifacts such as – Build Artifacts, Maven, Npm, Nuget, PyPI, Universal Packages, and Symbols
  • Azure Test Plans – are a set of rich and powerful tools to test your application that includes manual/exploratory testing and continuous testing. They are easy to use, and browser-based test management solution providing all the capabilities required for different testing methodologies

Now lets deep dive into Azure pipelines with CI/CD
We had discussed the core features of Azure DevOps. One of those features is Azure Pipelines. It aims at continuous Integration and Continuous Delivery to persistently build and test the code and finally ship a high-performing, high-quality product. These pipelines can be defined either from the user interface or by using YAML syntax.

The Azure CI/CD pipeline simplifies continuous integration and continuous delivery (CI/CD) in the application development process. You can start from the source stage with existing code on GitHub or on-premise containers. The Azure Repos can maintain a central repository, and the Azure pipelines maintain build and release pipelines for the given project. The Azure DevOps CI/CD process is a crucial process with all the required dev services.

Apart from continuous integration and continuous deployment with Azure DevOps, these pipelines are used to construct build-deploy-test workflows used mainly in continuous testing (CT). This tests the changes in a fast and scalable routine.

Advantages of Azure Pipelines
The Azure Pipelines can be multifactored, and in the Azure DevOps CI/CD practice, they provide various advantages:
  • Version Control Systems – Having the code into a version control system is the first step of building an Azure CI/CD pipeline. You can manage your source code in GitHub, Bitbucket, Subversion, or any other Git repository. It also supports Team Foundation Version Control (TFVC).
  • Programming Languages and Application Types – You can use different languages with Azure pipelines like Java, Ruby, C, C++, Python, PHP, Go, and JavaScript.
  • Deployment Targets – The applications with Azure CI/CD pipelines can be deployed to multiple target environments. This includes Virtual Machines, Containers, or any On-prem or Cloud Platform.
  • Pricing – It is free for public projects. But, for private projects, you can run up to 1800 minutes of pipeline jobs free per month.

Why should I use Azure Pipelines?
Implementing CI and CD pipelines help to ensure consistent and quality code that’s readily available to users.  And, Microsoft Azure cloud service Pipelines provides a quick, easy, and safe way to automate building your projects and making them available to users.
  • Use Azure Pipelines because it supports the following scenarios:
  • Works with any language or platform
  • Deploys to different types of targets at the same time
  • Integrates with Azure Deployments
  • Builds on Windows, Linux, or Mac machines
  • Integrates with GitHub
  • Works with open-source projects.

Azure DevOps with its set of tools helps in building the culture that brings together the application development teams, project managers, and other contributors like quality assurance, and operation teams to plan their work and collaborate together on application development. It enables these teams to coordinate and collaborate in order to produce high-quality, and reliable products. With DevOps, teams gain the ability to respond to customer needs quickly. It is, therefore, advisable for the organizations to adopt the DevOps culture at the earliest for delivering high-quality products with reduced time to market.

Prometix as a Microsoft Gold certified O365/Azure consultants (Sydney, Canberra, Melbourne & Perth) have delivered numerous Azure Data warehouse based solutions. If you need any assistance, please feel free to contact us via enquiries@prometix.com.au.

Comments

Popular posts from this blog

Microsoft Teams is the home for the modern workplace of the future

Data Governance with Azure Purview

Collaboration with SharePoint VS MS Teams