March 7, 2017 | Gunanand Nagarkar
DevOps is primarily targeted towards the speed of delivery to customers and end users. There is a lot of data that gets generated in this whole process and analyzing these streams of data can get us the right insights to make quick decisions.
For this discussion, let us refer to these data streams as “DevOps Data Streams”. By applying machine learning and analyzing categories of DevOps Data Streams, from various phases of the software lifecycle, we can get good amount of automation and efficiencies in adopting DevOps. This automation can help us in make faster and better decisions, further enabling the path towards the final goal of DevOps. If the decisions are automated/programmed then it will help speed up the DevOps process further, beyond the set of automation available today in the form of various tools and platforms.
Below is an attempt to categorize the DevOps Data Streams with an intent of identifying the various decision involved. This will surely further drive the efficiencies in adopting DevOps.
Pre-Development Data Stream:
Some of the important decisions to be made pre-development are, Which feature to create? Who are my competitors and how do I differentiate? How do I stay ahead? How do I know which features and functions are used and liked, and which ones are not used by the end users? Will it help my business revenue if I do this? What should be the pricing model?
These set of data streams will come from news feeds, announcements, support tickets, product feature usage data, and more.
Development Time Data Stream:
What are the painful and error prone areas in my solution? How much time it takes to build and test one feature completely? What is the alignment of implementation with design? What is the quality confidence? Does it look like the defects are tapering down? Am I ready to release?
Data sources for these data streams will be codebase, CI/CD pipelines, QA reports, defects, emails, code commits, reviews, and static code analysis reports.
Post Production Release Data Stream:
What is the immediate customer response? What is the response from competition? What should we put in our announcements and follow ups? Is the change/upgrade making customers happy? Was the upgrade smooth? Did the errors/support tickets trend go up or down post release?
Support tickets, news and publications, comments to blogs and announcements, application generated data in terms of logs, usage logs, operations runbook usage logs and incidents, and customer survey results will be some of the data sources for this data stream.
Important decisions, such as these and more, need to be made and DevOps ensures this to be a continuous process. Proper alignment towards business goals can happen in a continuous manner instead of at a regular interval, like maybe 3-4 months, by contracting with some expert marketing and research companies.
A combination of supervised (ensemble methods, classification and regression algorithms) and unsupervised learning (clustering, etc ) could help in getting to the expected goals. Which exact algorithm to use and HOW is beyond this blog, and we will follow up with those details in later parts.
At REAN Cloud, we understand that to have a successful business transformation, there needs to be a focus on the DevOps Data Streams. If you have a question or would like to learn more about how we can help with your DevOps and Business transformation, please contact us at firstname.lastname@example.org.