CI/CD and Azure DevOps

Artur Santos
Poatek
Published in
4 min readAug 9, 2023

--

Nowadays, we have more and more technologies and different cultures in the IT area, one of them being DevOps. There are a lot of platforms that help us to introduce and use DevOps. The example I’ll use here in this post is Azure DevOps.

Foremost, I’ve heard a phrase that made me think a lot: “DevOps is much more than tools, it is a culture!”. Most of the DevOps practices I’ve learned were day-to-day. Sometimes you forget this is a habit you introduce to your work routine, making that a culture.

Introducing Azure DevOps in this post, Azure is one of the most used platforms for the automatization process in development and delivery. The platform provides free and paid services with multiple options depending on your demand.

Azure has five tools to manage and automate processes: Azure Boards, Azure Repos, Azure Test Plan, Azure Artifacts, and Azure Pipelines. Throughout the post, I’ll focus on Azure Pipelines, but I’ll give you a quick resume about the other services now.

Azure Boards

The Azure Boards help you to organize and distribute work items for your team/organization. With this tool, you can create features, bugs, tasks, user stories, graphics, and queries. This solution is very applicable to track and discuss the entire development process. Generally very helpful for agile teams.

Azure Repos

Here we have where the teams store their code. Useful to maintain and manage the parallel development inside the teams/organization. With this tool, we can create branches, pull requests and make code changes inside the platform.

Azure Test Plan

This solution helps to organize and create tests, use cases, and the whole environment to track and monitor your application.

Azure Artifacts

Azure Artifacts allows us to use and share our NuGet and NPM packages with our team. The application helps developers to share their code and manage all their packages from one place.

Azure Pipelines

Azure Pipelines is a versatile tool that centralizes continuous integration and continuous delivery (CI/CD) processes. It helps automate the building, testing, and deployment of code changes. Some key points about Azure Pipelines:

  1. Continuous Integration (CI): Developers commit code changes to a shared repository, triggering automated builds and tests. This ensures the code is integrated regularly and issues are identified early.
  2. Continuous Delivery (CD): Once code passes the CI process, Azure Pipelines can automatically deploy it to different environments (development, staging, production). This ensures that the tested code is ready for deployment at any time.
  3. Flexibility: Azure Pipelines supports a wide range of programming languages, platforms, and deployment targets. It can be used for applications ranging from simple websites to complex microservices architectures.
  4. YAML-based Configuration: Pipelines are defined using YAML, allowing version-controlled, code-like pipeline configurations. This enhances collaboration and enables changes to pipelines to be reviewed and tracked like code changes.
  5. Parallelization and Scaling: Pipelines can be set up to run jobs in parallel, speeding up the overall build and test process. Additionally, it can scale to handle large projects and distributed teams.
  6. Integration: Azure Pipelines integrates seamlessly with Azure services, as well as other popular platforms and tools, enabling end-to-end automation and visibility.
  7. Pipeline Templates: To promote consistency and reusability, you can create pipeline templates that define common stages, tasks, and configurations, reducing duplication of effort.
  8. Deployment Strategies: Azure Pipelines supports various deployment strategies like blue-green deployments, canary releases, and feature flags, enabling teams to choose the strategy that best fits their needs.
  9. Monitoring and Reporting: Azure Pipelines provides insights into the pipeline’s health and performance through logs, metrics, and reports. This helps teams identify bottlenecks and areas for improvement.

DevOps always has a continuous delivery pipeline. Being efficient, this pipeline automates software delivery tasks as much as possible, from software development to deployment. This pipeline provides transparent communication between the various teams managing these tasks.

For more information about how to use the tool, look at the documentation here.

References

  1. Azure DevOps Documentation: https://azure.microsoft.com/pt-br/products/devops
  2. Course “Azure Pipelines — CI/CD, Docker e Kubernetes no Azure DevOps”: https://www.udemy.com/course/azurepipelines/

--

--