9 ways to think about DevOps
E.G. Nadhan
Field CTO Ambassador | Speaker | Corporate Mentor | IBM Quantum Senior Ambassador | Member, Board of Directors, | 21,000+ Connections
There are a myriad interpretations of DevOps that I come across in various interactions with my peers as well as customers, partners and service providers, not to forget colleagues over social media. The interpretations may be many but the terminology is consistent. A word-cloud around all these interactions surfaces the usual suspects very quickly. And thus, we tend to think about DevOps in many different ways -- at least 9 from my perspective. Join me as I share what I perceive them to be with a proposed definition at the very end.
1. Culture of the enterprise. “You can use as much DevOps as you want”, was the quote I heard during the Gartner ITXPO Symposium last fall from one of my co-presenters. DevOps is about striking a balance between the desire for agility against the need for stability. The culture of the enterprise at large can strongly influence which way the balance tilts and by how much. Culture is also influenced by market forces, change of leadership and though employee behavior. Which brings us to People.
2. Mindset of the people. It all comes down to the people. There are segments of the workforce who may be very comfortable doing what they have been doing for years together and may be less prone to change. On the other hand, there could also be a whole other segment who are all about introducing new paradigms and business models enabled by technology solutions perceived to be cool and sexy! Fundamental concepts like team-play and the willingness to work as a team towards a common goal are best driven by people with the right mindset -- a mindset of collaboration.
3. Art of Collaboration. Collaboration requires the workforce to reach across the table and put themselves in the shoes of the very individuals they are dealing with. Development Teams need to think ahead and take proactive steps to ensure that the management and operations of what they are building is smooth, robust and stable. Operations Teams must respect the need for the rapid injection of consumer driven features. Both teams must collaborate and have open exchange of information with the common goal of innovatively meeting the expectations of the business users. And IT must work together to inject the right levels of automation towards this common goal.
4. Science of Automation. Automation is not just about using tools to do repeated tasks. The science of doing automation right is all about ensuring that the right processes are being executed the right way in the first place. Automation of the wrong processes or processes being executed the wrong way only proliferates more problems. The Science of Automation can also be applied to business processes too. Automation must be done in increments across logical subsets of process steps that are part of a continuous engine.
5. Discipline of Continuous Integration. DevOps is a way of life. It is something that is done in continuum like a smoothly operating engine in constant motion. This spirit of continuity applies to the integration of isolated changes to the larger code base on a daily (or more frequent) basis for a build to be conducted with each change. Active collaboration is a key catalyst to have developers integrate their work with other developers frequently which promotes early detection of problems – just what the Testing team ordered!
6. Passion for Continuous Testing. I will say that this is one term that I have not heard often as I would like to. CI/CD. Got that. What about CT? In the spirit of collaboration that is the hallmark of the DevOps mindset, testing is everyone’s responsibility. To fail-fast, testing must begin early in the life cycle starting with software requirements, the architecture, design, with source code reviews and unit testing by developers to deliver error-free code along with test data sets. With the common goal of delivering a timely and meaningful solution, development and operations must work together to configure the testing environment to be as close to the production environment. And while we are at it, testing is a fine process to be automated! With meaningful automation and relevant test data sets, regression testing can almost become a perfect science -- which is what it would take to address the need for Continuous Delivery.
7. Need for Continuous Delivery. The concept of Continuous Delivery can be best described using healthy eating habits as a parallel. All too often, I have heard about eating smaller portions more frequently than large meals spaced wide apart. It would almost seem like Enterprise IT -- and by consequence, the business -- is looking for more frequent and continuous release of new features very fast. To the extent that they are also willing to accept the potential downside of occasional hiccups as long as they are fixed very quickly. The steady stream of new features is a significant shift in mindset that has permeated to the business. Is business going DevOps?
8. System of Continuous Monitoring. The only way to effectively inject the fail-fast mindset with rapid-fire releases of features is through continuous monitoring across the life cycle from development through operations. A challenge very often encountered is the proliferation of environments and platforms that need to be monitored. The only way to combat this rising force of technology proliferation is through ruthless standardization of the applications, platforms -- and yes, tools.
9. The power of standardized tooling. And finally, here we are. Tools. Yes, we absolutely need the tools to do many of the activities discussed above. However, tools are not the first thing to be addressed when it comes to DevOps. Also, standardization of tools goes a long way in simplifying the business of IT while injecting healthy levels of purposeful automation with reusable processes.
And thus, here is my definition of DevOps using all these nine phrases --
DevOps is a way of life for people with the right mindset to embrace the culture to collaborate while scientifically automating the continuous delivery of software features with the rigor and discipline of continuous integration and a passion for continuous testing while using the power of standardized tooling to continuously monitor everything being done.
What is your definition? Please let me know!
Twitter: https://twitter.com/NadhanEG
Operationalizing SBOMs throughout the SDLC
7 年Love it!
Senior Cloud Architect / PO
7 年Interesting