Azure DevOps
Author:Yeudy
Published:
What is DevOps?
The contraction of “Dev” and “Ops” refers to the substitution of siloed development and operations. The idea is to create multidisciplinary teams that now work together with shared and effective tools and procedures. Essential DevOps procedures include agile planning, continuous integration and value delivery, and application monitoring. DevOps is a constant journey.
Why is DevOps needed?
Prior to DevOps, the development and operations team worked in complete isolation. Testing and implementation were isolated activities performed after the creation of the design. Therefore, they were more time-consuming than actual construction cycles.
Without using DevOps, team members spend a large portion of their time testing, deploying, and designing instead of building the project.
Manual code deployment causes human error in production.
What does Azure DevOps provide?
Azure DevOps includes a range of services that span the entire development lifecycle.
Azure Boards – is an agile planning tool that can be used to track work items, visualizations, and reports.
Azure Pipelines: Comprises a language, platform, and containers that support cloud-agnostic CI/CD platform or Kubernetes.
Azure Repos – Provides private Git repositories hosted in the cloud.
Azure Artifacts: Provides integrated package management and supports Maven, npm, Python, and NuGet package sources from public or private sources.
Azure Test Plans – Provides an integrated planned and exploratory testing solution.
Planning
In the planning phase, DevOps teams ideate, define, and describe the features and capabilities of the applications and systems they plan to build. Teams track task progress at low and high levels of granularity, from single products to multiple product portfolios. Teams use the following DevOps practices to plan with agility and visibility:
- Create backlogs.
- Track bugs.
- Manage agile software development with scrum.
- Use Kanban boards.
- Visualize progress with dashboards.
Development
The development phase includes all aspects of developing software code. In this phase, DevOps teams do the following tasks:
- Select a development environment.
- Write, test, review, and integrate the code.
- Build the code into artifacts to deploy into various environments.
- Use version control, usually Git, to collaborate on code and work in parallel.
To innovate rapidly without sacrificing quality, stability, and productivity, DevOps teams:
- Use highly productive tools.
- Automate mundane and manual steps.
- Iterate in small increments through automated testing and continuous integration (CI).
Delivery
Delivery is the process of consistently and reliably deploying applications into production environments, ideally via continuous delivery (CD).
In the delivery phase, DevOps teams:
- Define a release management process with clear manual approval stages.
- Set automated gates to move applications between stages until final release to customers.
- Automate delivery processes to make them scalable, repeatable, controlled, and well-tested.
Delivery also includes deploying and configuring the delivery environment’s foundational infrastructure. DevOps teams use technologies like infrastructure as code (IaC), containers, and microservices to deliver fully-governed infrastructure environments.
Safe deployment practices can identify issues before they affect the customer experience. These practices help DevOps teams deliver frequently with ease, confidence, and peace of mind.
Operations
The operations phase involves maintaining, monitoring, and troubleshooting applications in production environments, including hybrid or public clouds like Azure. DevOps teams aim for system reliability, high availability, strong security, and zero downtime.
Automated delivery and safe deployment practices help teams identify and mitigate issues quickly when they occur. Maintaining vigilance requires rich telemetry, actionable alerting, and full visibility into applications and underlying systems.
Security best practices
When you’re working with information and data, particularly in a cloud-based solution like Azure DevOps Services, prioritizing security should always be your primary concern. While Microsoft maintains the security of the underlying cloud infrastructure, it’s your responsibility to configure security in Azure DevOps.
- Securing your Azure DevOps environment
- Restrict access through scoped permissions at the organization/collection, project, or object level
- Maintain tight control of administrators and security groups
- Scope service accounts and service connections
- Learn best practices for authenticating when integrating with Azure DevOps
- Secure specific product areas and associated services, like Azure Artifacts, Azure Boards, Azure Pipelines, Azure Repos, Azure Test Plans, and GitHub integrations.
- You can remove users, for more information, see Delete users from Azure DevOps.