“There will always be a separation between Dev and Ops”
While DevOps is celebrating its 10th anniversary this year, we are taking a step back and looking at its evolution so far and what awaits it in the future. JAXenter editor Dominik Mohilo talked to IBM’s developer advocate and JAX DevOps speaker Steve Poole about the current state of DevOps, its future, and its biggest obstacles.
JAXenter: DevOps is celebrating its 10th anniversary this year. It all began in 2008 when Andrew Shafer and Patrick Debois presented their “Agile Infrastructure” talk. Could you perhaps make a quick analysis of how DevOps developed over the past 10 years?
Steve Poole: Adoption of DevOps has pretty much followed the same line as other tech ideas. We had the usual ‘that doesn’t apply to us’ and the perennial ‘we’re already doing DevOps’ responses both of which were incorrect. Then we saw more of the ‘DevOps is too complicated’, ‘DevOps is too disruptive’ and ‘we’re not Netflix’ when organizations began to seriously consider adoption but thought it was all about tools. Then, when people began to report back that they were getting real value out of using the DevOps approach, the penny dropped and people began to see that DevOps really is an evolution of agile and that it’s about people *and* tools. From a technology point of view, the rise of cloud, containers, and microservice architectures have really driven home how we all need a DevOps approach to create, deploy, and manage modern applications.
JAXenter: How would you describe the current state of DevOps? Where is it headed?
Steve Poole: I really hope that the current complexity of cloud deployment is going to flatten out and even reduce. We spend a lot of time using DevOps tooling to deal with a level of deployment complexity that is, in my mind, unsustainable. Looking back we’ve come from a world where we used DevOps to simply deploy existing applications faster to a world where today everyone – dev or ops – has to know a great deal about intricacies of clusters, containers, networks, multi-stage deployment strategies, security, and application cloud architectures. We are working on ways to make some of this easier and less visible but I am concerned that we’ve accepted a level of complexity into our lives and it’s become the new norm.
JAXenter: Developers are facing more and more tasks formerly handled by operators and vice-versa. Are the classic roles of developers and operators still going to be used in the future as well or are they blending?
Steve Poole: The simple answer is that there will always be a separation between the two roles. I have looked at DevOps as being a movement to redefine the relationship between the two roles and redefine who does what. Just like the beginnings of agile – where we brought the developer and the tester together and redefined their relationship – I hope that when we’re finished we’ll have a new balance between dev and ops. I’d expect developers to be thinking much more about the deployment topologies and resilience and security of their application and I would expect the ops teams to understand that they have to provide the relevant tooling and configurations so that developers can test their solutions.
JAXenter: DevOps is not only about the cultural aspects, but also about the tools. Which tools do you recommend for a successful transition to DevOps?
Steve Poole: Well, success comes from having the correct mindset rather than a particular set of tools. However, from a tooling point of view, the list is pretty straightforward. You need a robust CI system like Jenkins, an SCM like git, a container system like Docker, a container orchestration system like Kubernetes. You also need a solid monitoring solution, and an automatic configuration management system like Ansible. Phew. It’s a long list. Then you need to wire these tools together and make sure they are robust and secure and that everything is under change management. Finally, you need to be able to show that your developers can create and test container-based solutions easily and with no or minimal differences in environment between test and production. That’s why I said that you need the correct mindset to see this through. You can start to be successful though by concentrating on the basics of having good configuration management and a shared container solution that allows testing with parity across environments.
JAXenter: Do you have any best practices that every team or company should embrace when moving to DevOps?
Steve Poole: The best practice is to start small and develop a single solution with dev and ops in it from the beginning and working side by side. Have a third party facilitator there who can help mediate the disputes and tease out the reasons behind such things. From a team point of view, you need to get the dev and ops teams closer together and talk. You need to figure out how to get that to happen. The primary education in need is for developers to understand more about the ops side. The list of responsibilities that the ops team have is significantly larger than that of the developer and the developer is generally unaware of this. I’ve seen some interesting results with design thinking used to get developers and ops teams more aware of each others’ motivations and challenges.
JAXenter: What do you think are the biggest obstacles in implementing DevOps successfully?
Steve Poole: Complexity of the solution infrastructure, unwillingness of the dev and ops teams to actually want to work together (which is mostly driven by mutual incomprehension) and support from the business to actually re-invent the team dynamics and infrastructure. The risks are high if people go into trying a DevOps approach without understanding that it can be a fundamental cultural change for those involved.