The 2021 DORA Report Gives a Veiled Nod to GitOps
The 2021 DORA report is out, and it continues its focus on the characteristics of top-performing DevOps teams. Here are the highlights from the report.
Join the DZone community and get the full member experience.Join For Free
The 2021 DORA report is out, and it continues its focus on the characteristics of top-performing DevOps teams. It's becoming an essential read for anyone interested in how companies are using DevOps. The findings show that GitOps principles are integral to top-performing teams. Here are the highlights from the report.
SRE and DevOps Are Complementary
SRE (site reliability engineering) started to gain traction around the same time as DevOps, and it has its origins in companies like Google and Facebook.
According to the report, SRE and DevOps are not competing practices. SRE and DevOps are both about how to automate and achieve operational excellence. Both SRE and DevOps aim to achieve the same goals, such as high-quality software, stable and resilient systems, and quick time to market. They both work to develop and maintain a culture of automation and continuous improvement.
"Teams with SRE practices spend more time writing code than teams that don’t practice SRE." — 2021 DORA report
Integrate Security Throughout the Software Supply Chain
As the SolarWinds hack demonstrates, there's a software supply chain security problem. Many businesses pay little attention to software supply chain security and are prime targets of hackers.
Security practices are often introduced at the end of the software development life cycle, resulting in an incomplete understanding of the security risks involved in the software supply chain.
The software supply chain includes development, build, test, installation, update, and retirement. Security practices and controls should be fully integrated into the entire software supply chain. This is the only way to ensure that all software has appropriate security.
Security should not rest on the shoulders of busy developers. Instead, the report encourages teams to "invite InfoSec early and often." The report also encourages teams to include security testing as a routine. This means to "integrate a security review into every phase."
This practice of making every stage of the process reviewable, auditable, versioned, and testing-friendly is a core tenet of GitOps. The collaborative nature of Git encourages peer review of code that has been committed. This is essential for teams that want to deliver high-quality software that is reliable.
A great way to quicken this process is to "build pre-approved code," according to the report. This again is central to the GitOps way of operating where code can be reused. In fact, the platform model that we have talked about a lot involves creating templates for resources and tools. This goes a step further than reusing code and even has implications at the infrastructure level.
These practices that GitOps enables, and in some cases, delivers out of the box, are what make for secure software.
The report noticed that elite teams use a "trunk-based development" approach. The core idea of trunk-based development is that the trunk of the source code tree is the main line of development. Each check-in to the trunk is immediately ready for integration with the existing codebase. The trunk never gets frozen. We have another name for this type of development — GitOps.
With GitOps, the main trunk is the central Git repository, and it is contributed to by other Git repositories that are edited by developers. GitOps follows the same principle of "merging" work from various development branches into a single repository.
The report recommends that teams "merge their work at least once a day." This high frequency of changes is typical of GitOps, where changes are merged asynchronously and multiple times a day.
Automating your deployments is necessary if you want to speed up the process of deploying new changes to your environment. Automating deployments allows you to build a pipeline that will allow you to move changes through your build and test environments, into production, and then into your customers' hands. The goal is to make deployments fast, consistent, and frictionless.
Database Change Management
The report gives importance to tracking changes in the system. For most development teams today, this database system is Git. It’s what development teams use to collaborate with, and all changes are version controlled in Git.
GitOps enables you to review the changes before you merge a pull request. With all changes versioned you have an automatic, ready-made audit trail to use for compliance.
The DORA report highlights the importance of leveraging today’s leading open-source tools over proprietary tooling.
"Closed source technologies limit your ability to transfer knowledge in and out of the organization. Open source technologies have a community around them." — 2021 DORA report
GitOps itself relies heavily on open-source tools. Beyond this, GitOps supports the entire range of CNCF tools such as Istio, Prometheus, Helm, and more.
Finally, one of the key areas that elite teams excel at is documentation. They have a high quality of internal documentation and are better able to implement technical practices. This includes having clear ownership, guidelines to update documentation, and including it as part of the development process.
Circling back to the start of how SRE teams function, a recent post by Tyler Treat talks about the idea of "productization of infrastructure and operations." This is the only way for the SRE team at Google to deal with the explosion of management duties once they migrated to the microservices model from the monolithic.
GitOps fosters and enables this kind of productization of infrastructure and operations, and facilitates the creation and maintenance of high-quality documentation. All of this is done in Git and is done automatically.
In conclusion, the 2021 DORA report is in close alignment with the core GitOps principles. It may not mention the word "GitOps" but all the ideas such as trunk-based development, database change management, deployment automation, and open source are integral to the GitOps approach. Read the report in its entirety to learn more.
Published at DZone with permission of Twain Taylor. See the original article here.
Opinions expressed by DZone contributors are their own.