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.