DevOps Automation

DevOps Automation

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only

Are we Ready for Cognitive DevOps?

By Tiago Moura posted Fri September 15, 2017 02:49 PM

  

Adopting DevOps practices is challenging already and many companies are having hard time attempting to change processes, culture and tools focusing on a DevOps approach. What happens when we bring to our development team algorithms from cognitive computing? Today’s post will talk about how to practice DevOps to deliver cognitive solutions.

Create new apps better and faster day-by-day is the goal of many development teams worldwide. Many methodologies and tools become popular to helps teams on its goals. However, the quality assurance task always been a “binary task”, a feature works or doesn’t.

The cognitive computing brings new challenges to the task of quality assurance, since now teams are working with probabilistic and continuous models, a feature now “works” at 80% of time. Imagine you explaining to a customer that 80% of time the solution works fine and it is great! The teams will faces not only technical challenges but also cultural.

In addition, teams need to works with different kinds of metrics to guarantee the quality of a cognitive solution: precision, recall, F-measure and accuracy are examples of frequently used methods. What method to use? Which method is the appropriate one to a job? Those kind of questions will become even more popular on development teams.

The deploy and release steps of DevOps pipeline are becoming heavily automatized. The time a solution spent to build and release is a concern on modern software architecture, since cloud applications need to provisioning fast (here is a good material about cloud ready apps). However, train and validate a cognitive models are not a fast task, because it may involves many computational power and data.                                 

The time-consuming tasks and probabilistic nature suggest that we will need to isolate the cognitive solutions from other application pieces to avoid problems on delivering innovative and fast time to market solutions. In this scenario is important to highlight the value of a micro service architecture and the use of APIs.

IBM Watson APIs are an example of cognitive solution provided through APIs and teams can use them without any preoccupation about time spent on training, validating or even improving models. However, even Watson been a great solution, it is not a solution of kind “one size fit all” and sometimes teams will need to create they own solutions and it is important to keep all of this in mind.

If you have any question or comments, feel free to do. Follow me on Twitter @thvmoura I am frequently talking about DevOps, IBM Bluemix and Watson over there.

1 comment
6 views

Permalink

Comments

Wed September 27, 2017 10:40 AM

We are on the way... but sure have some challenges to adress

Nice question. Talking about quality assurance, I usually found three main challenges when  developing cognitive systems. 1st, this systems usually evolves with time and It could be tricky to explain to a customer they will not have the best as possible software in the first moment. 2nd, you almost never can expect the same result developing the same thing in a similar but different context because of how data can impact your project's outcome. And 3rd, the project is high dependent on customer involvement and people creativity to test, being difficult to get a high coverage.