ElectricFlow DevOps Foresight uses deep learning to identify patterns in release pipelines, gauge the likelihood of software release success and make recommendations in order to incrementally improve pipeline performance and application quality.
DevOps Foresight applies machine learning algorithms to the data generated by DevOps toolchains to develop a risk score metric that predicts the outcomes of releases before they head into production. Using predictive analytics, it also provides key recommendations on how to improve pipelines based on developer influence and code complexity.
DevOps teams are provided with the necessary steps to eliminate further sources of 'release anxiety' by having insight into existing development practices and release patterns. Bottlenecks and inefficiencies throughout the software delivery process can be located and resource allocation for new and complex application and environment requirements can be understood.
Based on deep insights into past patterns of success and failures, DevOps Foresight predicts the likelihood of a release's success. The creation of a release's risk score's numerical value is based on developer, code and environment profiles and gives stakeholders a visual way to interpret the likelihood of success for a particular release build or pipeline. If the score is high, engineering teams can look at those profiles to determine what, specifically within those profiles, is driving up the risk. In order to make recommendations for improving the pipeline, DevOps Foresight looks at contributing factors and what has helped to improve them in the past, and suggests appropriate changes in teams, code or environments.
InfoQ spoke with Electric Cloud CTO, Anders Wallgren, about the announcement at the DevOps Enterprise Summit, London.
InfoQ: Is this a DevOps Dashboard?
Anders Wallgren: Most dashboards are backwards looking by definition and answer questions within the current frame like is it on time? Or, where are the bottlenecks? We've effectively had a DevOps dashboard for around twelve years with ElectricFlow and we announced DevOps Insight last year, allowing teams to automate the collection of data from the tools in their tool chain to answer questions like what JIRA stories are included in this release, what Jenkins builds and automated tests were completed on behalf of this release and, over time, what if any production incidents or problems can be traced back to a given release.
DevOps Foresight brings machine learning and big data to DevOps by understanding patterns that will predict future events using data around things like who's contributing what and what previous experience levels exist - around both the skill set of individuals and teams and the UI/end user impact. In this way, people can augment intuition with hard evidence and use fact to destroy myths and enable business decisions by answering questions like: "Can we go faster and can we do more?" and "Will this release cause more or less quality issues?"
InfoQ: Should this be used in sprint planning? In stand ups? In CD?
Wallgren: In big data there is a question mark over the importance of the granularity; it's hard to see the forest for the trees. What we are looking for is guidance over whether it's a team, module or maybe part of the architecture that's a problem. We can start to see correlations that aren't as obvious over time.
InfoQ: How can this help us in the world of legacy monolithic architectures?
Wallgren: An example would be how ElectricFlow Foresight can give us insights via a risk map on which particular areas or modules or a system have high levels of roll backs when we touch them, giving us guidance on where to focus our improvement efforts or consider making an architectural decision on whether to extract that component into a microservice.
InfoQ: How can predictive analytics help build a safety culture?
Wallgren: It's important to concentrate on outcomes and teams rather than individuals, so using metrics to point fingers at individuals is not the goal. Instead, teams can use this is a learning opportunity available to the right stakeholders, helping them to drive the right response and dampening long feedback loops. Much of the value in predictive analytics like this are in the questions it prompts you to ask, not just answers it gives. The system can tell you what's active and idle like a mini value-stream. Our algorithms have been initially trained based on customer data we have already collected that will immediately be useful to new users in terms of identifying patterns to drive conversations around improvement.
InfoQ: Can you predict the future for predictive analytics in this context?
Wallgren: Recommendation is the holy grail so being able to identify patterns, use those patterns to predict, give data of the provenance and interpret the data and make explicit guidance to the human user as to what to do next based on the conclusions drawn by the machine learning. Beyond that would be automating the implementation of the recommendation - autonomic computing. It's important to note that we think this is some way off!
InfoQ: What is the underlying architecture of ElectricFlow Foresight?
Wallgren: The core architecture of Insight is the ELK stack - Foresight adds algorithms written in Python. We will look at things like TensorFlow in the future but not right now.
InfoQ: Do you have any customers using the new capability today?
Wallgren: We have had a number of customers work with us on requirements, and provide data to help train our algorithms during our beta and expect many to continue to use the product moving forward. In parallel, we are trying to determine a licence model that's appropriate given the different use cases that we are seeing. For instance, should this be available to use as a stand-alone product for organisations who are only interested in analytics, but aren't interested in automation or orchestration? We want to make it as simple as possible for teams to realise this value - whatever their use case.