What is (Azure) DevOps?
Software companies face a daily challenge of proving themselves in what is a competitive and changing market. Software not only needs to be released on the market more quickly but also needs to be continually adapted to ensure that it meets the needs of its end users. The key is a streamlined method of working. Clear communication. Clearer processes. And short lead times. But how can these improvements be achieved?
What is DevOps?
The Definition of DevOps
DevOps is a portmanteau, composed of Dev for development and Ops for operations. In a nutshell, DevOps is about the cooperation between software development and production management – between the developers and the operational teams.
Based on this, it would not be unreasonable to think that DevOps is a software development method, but although it is related to and influenced by different software development methods, there is more to DevOps than that.
DevOps is based on the basic principles of Agile: the focus on individuals, interactions, and cooperation. The most significant difference is that DevOps continues this direction through the whole organization instead of only within the development process. DevOps can therefore be most accurately described as a culture within an organization that rests upon three pillars, namely tools, processes, and people.
Through human and cultural aspects, DevOps enables people and teams to work and cooperate more effectively and eliminates the boundary between previously isolated disciplines and different teams. It brings people, processes, and technologies together, making it possible to continuously deliver value to the end user.
What is the DevOps Model?
To apply the definition to practice, we will explain more about the DevOps model, or the DevOps lifecycle, below. The lifecycle comprises eight phases: plan, code, build, test, release, deploy, operate, and monitor. The phases are cycled through continuously by interdisciplinary teams in order to be able to deliver new software quickly.
These eight phases can be subdivided into a number of important and undoubtedly familiar development steps.
1. Continuous Development (Plan and Code)
In this phase, activities are continuously identified and monitored visually (e.g., with Kanban and Agile). Consequently, all stakeholders have a clear picture of the team’s capacities and tasks can be easily distributed and prioritized.
The software for delivery is split into multiple sprints or short development cycles. Code is shared with the aid of a version control system such as Git.
2. Continuous Integration (Build and Test)
In this phase, new code is tested for bugs. The quality assurance (QA) team safeguards the quality of the software and tests its capability of satisfying the requirements in different test environments. The validated code can then be safely and continuously integrated with the master branch. Testing for bugs early on allows them to be rectified quickly and easily.
3. Continuous Deployment (Release and Deploy)
Once the new version of the software has been tested and validated, it can be transferred to the production environment. This begins with implementation of the new code on the servers and results in the ultimate production or deployment. This way, end users have direct access to new functions.
4. Continuous Monitoring (Operate and Monitor)
Once the new software goes live, the operations team can use monitoring to obtain information about the performance and usage patterns of the app. The operations team monitors the occurrence of bugs and other problems during usage of the software. Data are collected with an eye to future developments, which can in turn be picked up by the development team.
The Difference between DevOps and Azure DevOps
What is Azure DevOps?
As you know, Azure is Microsoft’s cloud computing platform – a collection of services offered by Microsoft from its data centers. One of those services is Azure DevOps (previously VSTS), an environment that incorporates a range of services designed to ensure easy integration of DevOps within your organization.
You can add to the Azure DevOps services with the tools of your choice. So, whether you’re a Java, Node, or .Net developer or work in Jenkins, Ansible, or Puppet, Azure DevOps allows you to set up your end-to-end DevOps chain yourself.
Azure DevOps Services
The following is a brief outline of the Azure DevOps services. You can opt to use them all or choose only the services that you need to complement your existing operational processes.
Allows you to plan, monitor, and discuss your teams’ activities.
Azure Pipelines comprises a CI/CD pipeline that works for virtually any activity, platform, and cloud. With the aid of a Git provider, you can carry out continuous development, testing, and implementation.
Azure Repos gives you an unlimited number of Git repositories in the cloud. Pull requests and advanced file management allow people and teams to work efficiently.
Azure Test Plans
Manual and exploratory test programs allow software to be both tested and released quickly and thoroughly.
Azure Artifacts allows you to share code easily with different teams and organizations. You can share packages and add them to your pipelines.
Lastly, Azure DevOps also offers an Extensions Marketplace, which contains more than one thousand extensions that you can add to your Azure DevOps environment, such as Slack, Jenkins, Docker, and Kubernetes.
In the following period we are going to write more about DevOps on Azure. Don´t want to miss this? Subscribe here to our Intercept Insights.