Agile planning and lean project management

Commonly used in software teams, agile development is a delivery approach that relates to lean manufacturing. The development is completed in short, incremental sprints. Although it is different to DevOps, the two approaches are not mutually exclusive – agile practices and tools can help drive efficiencies within the development team, contributing to the overall DevOps culture.

Version control

With a team working together, version control is a crucial part of accurate, efficient software development. A version control system – such as Git– takes a snapshot of your files, letting you permanently go back to any version at any time. With a version control system, you can be confident that you won’t run into conflicts with the changes you’re working on.

Continuous integration

Continuous integration is the process of automating builds and testing that occur as the code is completed and committed to the system. Once the code has been committed, it will follow an automated process that provides validation – and will only commit tested and validated code into the main source code, which is often referred to as the master branch, main or trunk. Continuous integration automates this process, which leads to significant efficiencies. Any bugs are identified early on, prior to merging any code with the master branch.

Continuous Delivery

Continuous delivery is the fundamental practice that occurs within DevOps enabling the delivery of fast, reliable software. While the process is similar to the overarching concept of DevOps, continuous delivery is the framework where every component of code is tested, validated and committed as they are completed, resulting in the ability to deliver software at any time. Continuous integration is a process that is a component of continuous delivery.

Infrastructure as code

Whether on premises or in the cloud, the provisioning and configuration of resources is a key part of environment operations. Through process automation and the use of tools that provide a declarative definition of infrastructure – for example, text-based definition files – teams can deploy and configure resources in a reliable, repeatable way. The text-based definition files can be managed as code with version control, allowing for easy rollback, recreation and teardown of complex environments. Technologies such as Terraform or Ansible are common solutions for the implementation of infrastructure as code.

Monitoring and logging

The scope of DevOps goes beyond development, maintaining responsibility for the software through delivery, including software performance. The entire process of DevOps creates a feedback loop, ultimately providing data points that can both help improve a future project and validate the decision to deploy the software. Monitoring and logging are key components that support validated learning, which then supports the overall initiative to consistently strive towards greater efficiency in the software development and delivery process.

Validated Learning

Throughout the lifecycle, feedback and telemetry data is gathered to help inform decisions for the next cycle. This information is referred to as validated learning. Validated learning helps provide insight into new ways to reduce the amount of time per cycle. The gathered data is then used to find ways to increase automation, improve processes and prepare for deployment more quickly and efficiently.


Source: https://azure.microsoft.com/en-au/overview/devops-tutorial/#fundamentals

  • No labels