As a part of my entrepreneurial journey, meeting industry experts and gathering insights from them is a regular thing now. I met someone this weekend where we talked about what it takes to build an ideal DevOps world. A world where product owners, development, QA, IT Operations and Infosec work together, not only to help each other, but also to ensure that the overall organization succeeds. By working towards a common goal, they enable the fast flow of planned work into production(e.g. performing tens, hundreds to thousands of code deploys per day), while achieving world class stability, reliability, availability and security. In this world, cross-functional teams rigorously test their hypothesis of which features will most delight users and advance the organization goals. They care not just about implementing user features, but also actively ensure their work flows smoothly and frequently through their entire value stream without causing chaos and disruption to IT operations or any other internal or external customer. But this is hard, the process of constant improvement with human involvement is a challenge when you operate things at scale. Hence, Automation is the Key! It’s the lifeline. This contributes to better sync among the teams and eventually faster and more accurate deployment and releases.
However, can we make our automations smart and self learning ? Think about automation over automations which just knows what you want for your infrastructure !
Yes, I’m talking about using AI/Machine Learning capabilities to enhance DevOps. But to recognize any benefit with AI and DevOps, a creative mindset may be required. AI can change how DevOps teams develop, deliver, deploy and organize applications to improve the performance and perform the business operations of DevOps.
The future of DevOps is AI-driven, helping to manage the immense capacity of data and computation in day-to-day operations. AI has the potential to become the primary tool for assessing, computing and decision-making procedures in DevOps.
For example, for the most effective medical diagnostic process, you don’t just depend on that detection alone. You use that detection to empower a human diagnostician who can apply a broad understanding of pathologies and deep experience with the complexities of individual patients to deliver the highest quality care. In DevOps, we can do the same. We can use AI to capture insights that teach us how to continuously optimize our workflows and processes. We can also use our AI learnings to push our work up higher on the value chain.
Collaboration between DevOps and AI can have numerous use cases. Some of them can be :
- Smarter Development : We all learn through iterations. Same goes for machines. Most machine learning systems use neural networks, which are a set of layered algorithms that accept multiple data streams, then use algorithms to process that data through the layers. You train them by inputting past data with a known result. These learning systems can also be applied to data collected from other parts of the DevOps process. This includes more traditional development metrics such as velocity, burn rate, and defects found etc.
- Smarter Monitoring : If you’re beyond the beginner’s level in DevOps, you are likely using multiple tools to view and act upon data. Each monitors the application’s health and performance in different ways. What we lack, however, is the ability to find relationships between this wealth of data from different tools. Learning systems can take all of these disparate data streams as inputs, and produce a more robust picture of application health than is available today.
- Predicting Faults : This relates to analyzing trends. If you know that your monitoring systems produce certain readings at the time of a failure, a machine learning application can look for those patterns as a prelude to a specific type of fault. If you understand the root cause of that fault, you can take steps to avoid it happening.
- Feedback Mechanisms : One of the biggest problems with DevOps is that we don’t seem to learn from our mistakes. Even if we have an ongoing feedback strategy, we likely don’t have much more than a wiki that describes problems we’ve encountered, and what we did to investigate them. All too often, the answer is that we rebooted our servers or restarted the application. Machine learning systems can dissect the data to show clearly what happened over the last day, week, month, or year. It can look at seasonal trends or daily trends, and give us a picture of our application at any given moment.
We can literally can derive numerous of use cases over a coffee when it comes to working AI with DevOps. Having said that, it’s first very important to Know Your DevOps First. As enticing as it may be to dive headfirst into AI, you’re not going to be as effective as you can be if you lose the humanity from your dev team. You don’t want to be so reliant on robots and so dysfunctional as humans that when it comes to complex problems, you are functionally unable to process or resolve them. At OpsLyft, we believe that the future of AI and DevOps is bright. There’s a future here where the rote business of work that we all deal with every day will be as archaic as accounting by hand. We’re in an exciting time.
We’d love to hear your stories about DevOps automation and possible use cases of AI/ML to it. Reach out to us at firstname.lastname@example.org as we surely can help you enhance your cloud by simplifying DevOps for you 🙂