The 2020 State of DevOps report was recently released by Puppet and CircleCI. It has key findings and insights into the functioning of a wide range of DevOps teams. This year, the report highlights the importance of a 'platform model' when handling infrastructure. In this article, we look at the key takeaways from this report, and zero in on the aspects relating to GitOps. GitOps enables organizations to adopt this platform model along with a self-service developer experience and automation for operators.
The DevOps evolution model
The report surveyed people from organizations ranging from startups to the Fortune 500s, from countries around the world. It presents a DevOps evolution model which shows five stages of evolution from beginning DevOps adoption through to mastering it.
Source: The State of DevOps report 2020
Based on which stage they fall into, the report groups DevOps teams into three maturity levels - Low, mid, and high maturity.
Source: The State of DevOps report 2020
The platform model - what is it and why you want it
The key idea across the entire report this year is the 'platform model.' There are two different contexts that development and operations teams switch between - the application and the platform with the underlying infrastructure. The report notices that many top performing organizations have discrete teams that focus on these two contexts separately. The application team is involved with developing the business application and its features, while the platform team builds out the platform (infrastructure) that hosts these services and delivers them to the consumer.
The top benefit of adopting the platform model, according to the report, is the ability to enable self-service capabilities for application development teams. This would enable them to quickly create and provision the resources their code requires without having to have an Ops person do it for them. For the platform team, they can focus on continuously deploying as well as improving the platform independent of the application team.
As indicated in the DORA metrics, elite and high performing development teams are consistently scoring high on deployment frequency and short lead teams and operation teams on stability and availability through MTTR and decreased change failure rate. (Download our latest whitepaper: “How GitOps boosts business performance” to learn more.)
Other key benefits cited were:
- greater developer velocity which leads to increased innovation and business success,
- improved auditing capabilities especially for highly regulated industries
- better focus by avoiding context switching, and
- continuous improvement of infrastructure resulting in greater reliability overall.
While the benefits are alluring, there are challenges to adopting a platform model within organizations.
Challenges for teams to build platforms
The report found greater adoption of the platform model among organizations that are more evolved in DevOps practices. Only 8% of the low maturity organizations adopted the platform model, but 48% of high maturity organizations have adopted it.
Those who haven't adopted the platform model cited lack of time as the key obstacle. This is due to much of the work being done manually and not leveraging the power of automation.
Another challenge organizations face is the lack of standardization internally. They find it hard to build a platform that consistently meets the needs of all internal teams.
These hurdles become even more complex when DevOps teams embrace cloud native tooling such as Kubernetes across their organization. Requirements for most platforms go beyond a single cluster definition and call for clusters that are either sized differently, or that have completely different server definitions like a cluster group configured for machine learning versus another for a single web application. All of these platform configurations need to extend to production both on premise and across clouds.
GitOps to build self-service platforms
The report highlights which interfaces are most commonly used to enable self-service application development teams. The top interfaces are CI/CD tools, a ticketing system, GitOps, and raw APIs. There is a clear correlation between how DevOps-mature an organization is, and their adoption of these interfaces.
Source: The State of DevOps report 2020
GitOps is fascinating because of its potential to deliver many of the benefits of the platform model as described in the report. An important part of the GitOps approach is declaring the platform infrastructure and automating it using Git repositories. The platform is built, versioned, deployed, and managed using configuration in Git. Any changes are made to the repositories, and are automatically 'pulled' into production. Any configuration drift that occurs is automatically highlighted and corrected to the original desired state as described in the repository.
Weave Kubernetes Platform serves as the catalyst
The Weave Kubernetes Platform (WKP) provides a flexible GitOps framework and policy management to quickly and securely configure identical Kubernetes platforms on premise and in any cloud. GitOps in WKP also enables platform teams to automate the configuration and management of Kubernetes clusters. Operators create cluster configurations once and keep them as models versioned in Git. A model consists of a cluster definition, a set of components and team workspaces. Configuration models can then be checked out of Git and used as templates to replicate Kubernetes platforms wherever it is needed: from development all the way through to production and on multiple backends across clouds. This frees up time for the platform team to focus on improving the platform continuously, and delivers self-service resources for application teams. (We highly recommend a recent talk at Github Universe by the Axel Springer team “Managing test environments with GitOps and Actions”, a superb use case on utilizing model driven automation through GitOps and Github Actions for one of Europe’s biggest new sites.)
With WKP’s Multi-tenant Team Workspaces, operators enable GitOps across multiple namespaces on the same cluster aligned with various engineering teams. This approach significantly simplifies the management and portability of applications by allowing engineers to collaborate effectively across teams, clusters and repositories.
According to the report, the platform team needs to see application teams as internal customers. Enabling self-service capabilities for application teams is vital to achieving this goal. Mettle, a London-based financial services company provides its application teams with self-service using the GitOps model. In doing so, they were able to achieve a 50% gain in production speed, make 75% more deployments, and have their developers be 75% less focused on the platform.
The platform needs to see the platform itself as a product, not a project. This means having dedicated long term resources for platform management. Using the GitOps model, platform teams can take an iterative, continuous approach to platform management.
GitOps greatly improves governance and auditing capabilities of platform teams. As every change to the platform is versioned, it becomes second nature for teams to perform quick and effective diagnosis on day-to-day issues.
The 2020 State of DevOps report touches on a central issue that matters to every DevOps team - the platform model. It has a bearing on both application teams and platform teams. While the lack of time and standardization may deter some teams from adopting this model, the high performing teams are keen on realizing the benefits such as a self-service developer experience, continuous platform improvement, and an always-available audit trail. The key to unlocking these benefits is GitOps. It brings in a level of automation and standardization that deals with the biggest obstacles, and enables teams to reap the benefits of the platform model.
Start your GitOps journey with us - contact us for a demo on enterprise ready GitOps with the Weave Kubernetes Platform.