Refactored - Top Rated Cloud Training

View Original

AZ900 - DevOps Services

We looked at Azure's other solutions and services in the previous posts, including Internet of Things (IoT), Machine Learning, and Serverless services. This post will look at DevOps and Continuous Integration and Continuous Deployment (CI/CD) services.

Microsoft has a set of tools to help implement DevOps processes and develop solutions using agile practices.

Azure DevOps

Azure DevOps is a suite of services that can be used for various stages of the development lifecycle.

  • Azure Repos is a source-code repository where software development and DevOps engineering can publish code for review and collaboration in a centralized manner.

  • Azure Boards can be used for project management using agile tools like Kanban boards to track work items and issues.

  • Azure Pipelines is a tool used for CI/CD pipeline automation

  • Azure Artifacts can host build artifacts from compiling source code. Further development or testing pipeline steps can then utilize these artifacts to build and test the final application.

  • The Azure Test Plans service can be used in CI/CD pipelines to supply automated software tests before release.

GitHub

In 2018 Microsoft purchased GitHub, a popular code repository for open-source software. Git is a decentralized source-code tool, of which GitHub is one hosted implementation. GitHub provides a range of services that can be run from an on-premises server or the cloud.

  • Source-code repository including the ability to perform code reviews

  • Kanban Boards for project management

  • Issue tracking, allowing for issues with the code to be reported, discussed and tracked.

  • Wiki for production of collaborative documentation

  • Automation tooling including CI/CD pipelines (GitHub Actions)

  • GitHub Actions enables the automation of workflows using event triggers. These can be used to build software deployment pipelines.

There are quite a few similarities between GitHub and Azure DevOps and their service offerings. Especially when comparing services like GitHub Actions and Azure Pipelines or Azure Repos and GitHub Repos. GitHub has a history of supporting open-source projects using public repositories. GitHub focused on building a community of individual developers collaborating on software. Whereas Azure DevOps is more focused on enterprise development processes with feature-rich planning tools and access controls.

Using these services aren't mutually exclusive. Nothing stops you from mixing Azure DevOps and Github services to get the most effective set of services for your workflows and processes.

Azure DevTest Labs

Azure DevTest Labs provides a method of building, configuring and tearing down virtual machines in an automated manner. This gives development teams the ability to perform tests across various environments. ARM templates can be used to deploy environments. Using these pre-created labs can save a lot of time for development teams. DevTest Labs allow anything that can be deployed via an ARM template to be provisioned.

Once any tests have been completed, the DevTest Labs can be shut down and deprovisioned to stop running costs. As these costs need to be managed, the number of labs and how long they can run can be specified to ensure you stay within your operational budgets.

Summary

In the post, we looked at the services Microsoft offers within Azure DevOps and GitHub, where there are similarities and how they can help Development teams implement DevOps practices and workflows.

— Matt Boyd