Putting DevOps into practice is an ongoing experiment for many organizations. Developers often struggle with continuous integration (CI) or continuous delivery (CD) performance, testing delays and other bottlenecks. While not the answer to everything, version control—that long-established foundation of software development toolchains—has become a central part of DevOps, particularly DevOps at scale.
This is underlined by the results of “DevOps Challenges and Version Control,” a recent survey conducted by Devops.com on behalf of Perforce Software, which provides some interesting insight into their experiences. This includes the role of version control systems within DevOps in practice, plus the top challenges the companies surveyed face.
A total of 467 people from organizations across the globe responded, with roles ranging from DevOps engineer to QA analyst and CTO. Before we look at the challenges and issues they face—not just with their version control system but DevOps in general—first let’s look at the good news: Most version control systems are a good fit for their current DevOps initiatives.
For instance, more than half of all respondents said the most important features of their current version control system are:
- Improved collaboration.
- Improved CI.
- Better support for distributed teams.
- Quality.
- Faster commits.
These were followed by compliance/security, at 48 percent. These jibe well with the main DevOps challenges they also cited:
- CI/CD issues (a third cite CI/CD workflow streamlining as their top priority).
- Prioritizing backlog and development projects.
- Managing build artifacts and containers
- Developer complaints about slow commits and merges
- Working with open source software.
These are all things that VCS can help fix. For instance, these days, most version control systems transactions are automation for CI, rather than user requests.
CI Challenges
So far so good, but users want more from their version control system. Almost a third would like better integration with the software development toolchain. Other improvements on the wish list include security with fine-grained permissions, handling large files or repos and file access for teams in multiple locations or working remotely and improved CI performance.
CI is critical to good DevOps and giving developers real-time feedback theoretically improves quality, but if the version control system’s speed and performance does not match demand, then bottlenecks are created. The last thing anyone wants is developers sitting around waiting for builds to happen. The survey’s respondents said testing (28 percent) and waiting for code reviews (23 percent) were the two points in CI that slow everything down the most.
People Want More from their Version Control Systems
So, what’s the answer? Version control that combines speed and performance, of course, but also built-in automated code review to alleviate the frustration of time spent waiting for tests and other tasks. Given that 64 percent are based in multinational locations, 7 percent work remotely and a mere 29 percent work in the same office, clearly the version control system needs to support dispersed working environments, too. In many situations where the version control system is being used for multiple artifact types and not just code, this needs to be covered, too.
Likewise, most respondents have Git somewhere in the organization and understandably so: it is open source, users can get started with Git quickly and it is suited to small teams. However, Git struggles to scale, and, given some of the challenges that respondents quoted, this is clearly something many are experiencing. Enterprise strategies are emerging that give developers the Git interface they’re familiar with, but also the scalability, global replication and high performance for moving files and performing builds.
With so many perceived challenges cited, it is no surprise that almost half of all those surveyed said they plan to replace their existing version control system. The top reasons cited were scalability issues, poor cross-platform integration and lack of DevOps support, plus the perennial pain point of license costs.
Understandably, switching version control systems can seem daunting, but equally, based on the survey’s responses, many organizations are clearly living with systems that are expensive to maintain and have productivity issues that are getting in the way of, rather than supporting, DevOps. Conversely, choosing version control system strategies and tools can tangibly and positively impact on achieving DevOps success.