Graeme Dawes - Fotolia
When my former software engineering director, Bill Jones, and I got together, we discussed how DevOps has improved over the previous decade and what is still left to do. We started envisioning an AI-driven DevOps bot. Let's call it DOBO, a bot that provides contextual information, best practices, toolchain integration, operational analytics, technology knowledge and risk assessment throughout the lifecycle.
DOBO could provide DevOps pros with business knowledge, decision support and tools to do DevOps best.
While developers have turned more and more into business consultants, it's still difficult to avoid those rabbit holes of cost and risk.
"Gathering business requirements is still an art form," Jones said. “DOBO needs to help us by listening in on stakeholder interviews, and then separate the wheat from the chaff."
As business stakeholders define their requirements, DOBO could conduct a real-time sentiment analysis. DOBO could determine which requirements stakeholders are passionate about and those of which they're uncertain. When DOBO flags a requirement with a history of negative project outcomes, DOBO would proactively alert the project manager and suggest improvements and alternative approaches.
"Most project stakeholders are very open to reasonable alternatives that save cost and reduce risk," Jones said. "But without DOBO, these are easy to miss. Sometimes, we need to spend a lot of time and resources to replicate capabilities that would have been available in a commercial software package."
In the end, DOBO will provide a digest with prioritized project requirements, risk elements and technology alternatives. It'll suggest the ideal development resources, with the appropriate technology skills, business experience and availability level.
A dynamic and integrated toolchain
DOBO needs to keep an eye on prospective DevOps toolchains and recommend alternatives.
"I remember being dazzled by a weekly demo, only to find out that the reason for the stellar code performance was the introduction of an additional database product that we did not know how to support and what the exact license terms looked like," Jones said.
Jones said he thinks the developer here could have achieved the same code performance with the NoSQL capabilities of one of the customer's existing -- and already-supported -- databases. Going one step further, Jones said he wants to see a DevOps bot help select the optimal DevOps tools and libraries and, ideally, even suggest sample code to help each developer get started.
Anyone who spends time chasing down performance issues across different networks should see the appeal of DOBO.
Bill Jonessoftware engineering director
"My team is constantly harassed by support requests seemingly pointing to issues with our code," Jones said. "For example, we might receive a warning from the NOC [network operations center] about the SMTP [Simple Mail Transfer Protocol] service being stuck. However, this may just be due to a server reboot, regular maintenance or the SMTP service no longer being needed without anyone telling us."
Jones would want his DevOps bot to make this determination and then either turn off the warning, remediate the situation or notify the appropriate DevOps staff to address the problem.
"DOBO needs to provide an ongoing digest of trends and irregularities as they start, instead of traditional monitoring systems flooding me with error messages when it’s too late."
Upgrade testing automation
AI-driven test automation has recently surfaced as an important topic in DevOps. Jones' team has, of course, automated certain elements of his test process, but struggles with test requirements that go beyond the basic automatic unit and regression testing of new functions.
"You know how a racing [video] game like Gran Turismo or Forza Motorsport lets me race against my own shadow, based on my typical driving behavior and quirks?" Jones asked. "I want DOBO to provide me with different types of generic and customer-specific shadows that emulate how my software will be used."
Quality-assurance staff could then create a shadow of a certain generic user type – according to Jones, "a 23-year-old, tech geek, with lots of disposable income and a tendency to complain about small things" -- and use it to receive real-time feedback before the release goes live.
Involve the business users
Users often do not comprehend the risk and cost implications of requested features. DOBO should find a way to make the DevOps process more transparent to business users. This would lead to business users making informed choices if they have a limited software development budget.
DOBO should help business user get more involved in the creation of test scripts so they know what's tested and what's not. DOBO should make them aware of the different cost risk profiles of alternative technology services. For example, when the development team proposes to introduce NoSQL databases into the existing environment, business stakeholders need to know the operational impact of adding this database type and the financial upside they will get in return.
Build smart architecture
"When we need to certify that our software works for 100,000 concurrent users, my developers will tell me that all we need to do is figure out how many users we can fit on one set of servers and then we extrapolate to 100,000," Jones said.
As we know, linear scalability almost never happens, but there are many cases in which the architecture team has a hard stop and simply cannot serve more users an acceptable performance. DOBO needs to help make these calls on an ongoing basis, based on the limitations of the software and hardware technologies involved in the project, prior experience, the extent of changes to the code base and the acceptable project risk.
Decipher inherited code
Inheriting code, as Jones told me, is frustrating process. If the code was never fully documented, developers put on their detective hat and typically start their improvement effort somewhere in the code without worrying too much about the proper entry point.
Needless to say, Jones wants our DevOps bot to automatically comment code and to assist his team to find the right entry points for solving the problems they need to solve.
Is the DevOps bot feasible?
Many software vendors are working on services that can enable certain aspects of DOBO. Test automation can simulate actual user behavior. Monitoring tools move more and more away from static thresholds, and DevOps automation software can tie together much of the DevOps toolchain.
Making DOBO a reality is still out of reach, though, and the AI capabilities, while not trivial, are the smaller part of the challenge. To pull off our DevOps bot, however, we need to first ensure the IT and business operations data we need is available in a format that DOBO can absorb.