Predictive analytics and machine learning are two of the biggest and hottest buzzwords right now. Tech ops and DevOps are finding that these two technologies can help them do a better job at a much faster pace.
More and more DevOps teams are discovering achievable and practical use cases where they could use machine learning to make their work a whole lot easier.
Here are some instances
-
- Setting up dynamic thresholds for automated processes. When you have processes that run on their own, you would need to manually set up thresholds that would tell you if there are issues that you need to look into. That can be very difficult because production usually generates a lot of data, making it virtually impossible for you to make sense of it and create meaningful thresholds for your alerts. With machine learning, you can take all the control points, along with the changes in your workloads in real time, and then create dynamic alert thresholds. Your thresholds adjust according to system usage patterns on the fly, and it is no longer rule-based. Instead, machine learning can learn about the system usage patterns, and figure out when something is a cause for alarm or not. Machine learning enables you to look at thousands and thousands of data point all in real time, and allows you to predict and flag potential incidents and problems according to magnitude and how critical it is to your business. This can also help your developers weed out useless information when they are trying to troubleshoot issues.
-
- Continuous delivery. You can use machine learning for continuous delivery. Machine learning can correlate data coming from canary testing logs, release notes, unstructured logs, system events, and even APM data. It can also monitor activity data from different tools such as Git, Jenkins, GJira, Puppet, SonarQube, and others to uncover any anomaly. In short, machine learning can detect things like late code check-ins, lengthy build times, huge code volumes, and slow rates of release. This could help you know if there are development issues such as process slowdowns, context switching, or inefficiently provisioning resources. You can have a sense of what a normal operation looks like at every step of development, ensuring that your application is up to par. All of these data can be used in the continuous deployment process as it lowers production risk while letting you see how your code is behaving in production.
-
- Capacity management. With machine learning, you can predict workloads and transaction volumes. Because of this, you can adjust how many resources to allocate in order to accommodate workloads in a very effective and efficient manner. Machine learning can consider previous usage patterns, the estimated demand and learned behaviors during the entire DevOps process. You can use feature selection, anomaly detection, and regression in order to have a more accurate workload model that is based on the data you get from applications and hardware.
-
- No more component monitoring; you diagnose the entire machine. Before machine learning, you have different monitoring tools to give you a sequence of events happening to various components of your system. This does not give you the complete picture and if there are problems, there is a list of possible causes. With machine learning, you can apply matching, frequent pattern mining, fuzzy logic, and linguistic correlation to whittle down the list of causes. Machine learning is able to take data from both unstructured and structured sources, environment alerts, and others. It can predict what configuration changes would lead to failure. If you use microservices, with interconnected and complex components, then you would have no choice but to use machine learning. Because machine learning is able to bring together unstructured and structured data, reduce the number of events to be reviewed, and determine the root cause of failures, you can move away from monitoring individual parts and start with machine diagnostics. Machine diagnostics would involve self-healing and self-diagnosis. DevOps would need to hire data scientists who would be responsible for creating algorithms that would use predictive alerting and advance warning to help you avoid service disruptions.
Other uses outside of DevOps
Machine learning makes it easy to combine data from different sources. You can then apply algorithms to all of these data to get a picture of how your systems work. As such, machine learning can help enhance and augment your operations, and even help you deliver better customer service.
For instance, machine learning can look at resource utilization patterns and discover that there is a spike in traffic coming from one region. This could mean that there is a delay or shortage of parts affecting the area. Machine learning can assess billions and billions of transactions, as well as its metadata, and then give you insights on what to do next. With machine learning, you can answer questions such as:
- What regions give you the most traffic?
- Was your latest marketing initiative effective? In which regions did it perform well and which regions did not benefit from it?
- If there are spikes or reduction in traffic, could this be because of some problems such as pricing errors or delays in the supply?
Machine learning could help give you insights into every aspect of your business, including inventory, marketing, and sales, among others. You can then use these insights and feed them to the current tools you use to help you refine your operations and deliver better customer experiences.
* * *
Conclusion
There is no doubt that machine learning can free your operations team from a wide variety of tasks. No more manually doing things, instead you get data from different sources and then analyze these and get some degree of automation for routine tasks and a higher degree of accuracy when it comes to insights. This means that your DevOps are free to focus on more complex problems that require human creativity and innovation.
Furthermore, machine learning enables fast and accurate automation that requires a wide range of inputs, and can even adapt to ever changing conditions.
Photo courtesy of Royce Milam (Flickr).