DevOps’ success has been limited by core differences and mentalities that exist between development and operations teams. Can storage and data management be the common factor that helps these two teams come together?
In her 2018 article “The Secret to DevOps Success,” Gartner’s Katie Costello predicted that through 2023, 90 percent of DevOps initiatives will fail to fully meet expectations. The reasons for this anticipated shortfall have nothing to do with technology and everything to do with mindset. As the article suggests, many enterprises have failed to adequately address the appropriate organizational changes required for DevOps. As such, people, not processes or technology, are standing in the way of success.
The point of DevOps is to bring developers and operations teams together to iterate, integrate, and automate for faster innovation. But developers and operations managers may not think the same ways or understand each other’s needs.
How do we get developers and operations teams to break down the barriers that exist between them so that they’re on the same page, and get to the point where 90 percent (or more) of DevOps initiatives succeed?
Developers are from Mars, operations managers are from Venus
Developers are risk-takers from a world of agility, where applications can be quickly created, managed, and deployed. Operations managers work in risk-averse environments; they’re used to stability, predictability, and working under a certain set of rules. DevOps asks these two disparate groups to come together and meet somewhere in the middle.
Fortunately, both bring unique attributes that can be used as a common ground for better understanding. Developers’ predisposition for agility can greatly benefit operations managers as they seek to modernize and make their infrastructures more open and flexible. Conversely, developers can adopt operations managers’ predilection for stability to enable applications to not just run reliably (i.e., automatically returning to a useful state after a crash) but consistently (i.e., through code written in a manner that prevents applications from crashing in the first place).
Speaking the same language
While the two groups need to speak each other’s languages, the challenge is that those languages are not remotely the same.
Operations managers may not be used to someone asking them to negotiate for API management or process automation tools “to support our iterative code building approach.” Meanwhile, a developer may not understand how or why an operations manager needs weeks to create part of an infrastructure, test it, and roll it out.
Storage is another area where developers and operations teams are often not on the same wavelength. Let’s say a development team asks its operations or storage manager to provision a certain amount of storage for a new application–and they need it now. That’s like speaking a foreign language. Most operations and storage managers are used to following a set storage provisioning process that could take days to complete. But that’s too much time in the eyes of an agile developer and it goes against one of the core tenets of DevOps, which is to accelerate development and operations processes.
How can development and operations teams bridge this gap and come to a mutually beneficial understanding?
Bringing storage and development together
In the past, developers and operations teams have often been on different pages when it comes to data and storage management. Developers only cared about data to the extent that it would enable their applications to work, while operations managers saw data as being essential to their organizations’ infrastructures.
But DevOps and modern application development processes have made storage and data important to both teams. Much of today’s application development happens within Linux containers. Those applications require persistent and native container storage to continue to function unabated after the container spins down. Simultaneously, developers’ storage needs require operations teams to act more quickly than before while still maintaining control over storage resources.
Kubernetes for the win
The rise of Kubernetes as both an application and infrastructure platform has helped permeate developer-like thinking into the operations space. Kubernetes shares a symbiotic relationship with storage. On the one hand, open source innovation around storage volume plug-ins has assisted in Kubernetes gaining a stronghold in the datacenter. By the same token, Kubernetes can serve up storage abstractions to applications, helping to automate the dynamic provisioning of storage volumes.
Making storage portable and easily accessible can satisfy both sides of the DevOps divide. Developers can request more control over data without actually becoming storage administrators. Operations or storage managers can view the developers’ requests as a need for a stable abstraction layer with strong security capabilities that can sit on top of the actual data. Operations managers can house this data anywhere they like, including in the cloud or on-premises. It doesn’t matter to the developer as long as they can simply pluck out the storage they need when they need it.
In this scenario, everyone goes home happy. Developers have their storage without having to wait for it, and operations teams are able to provide the development side with the resources they need while still maintaining control. Both sides are speaking the same language, and the barrier that once existed between the two has gotten a bit smaller.
At the end of the day, storage may not solve every single DevOps challenge. But it’s certainly a good place to start.