DevOps, as we know, started hypothetically in 2008 and began shaping up in 2009 with Patrick Debois and Andrew Clay Shafer delivering their first speech in DevOpsDays event in Belgium. Since then, both the application development and infrastructure operations communities have raised many DevOps related concerns, which have resulted in the development of several forms and stages to modularize DevOps.
Challenges in DevOps
While continuing the journey of DevOps in multiple forms and stages like Agile, ArchOps, TestOps, DataOps, SRE, WinOps and SAFe, the challenges have remained in all of these due to the varied domains, complexity and usability by end users. The challenges can be primarily classified into 8 buckets:
Each of these was a separate entity in itself with the Waterfall model of development and release, however, with the Agile and Scrum methodologies; there is only a thin line segregating these. This has led to rising complexity in dealing with applications that have grown from simple to complex, and data flow which has become stateless to stateful across various end points. The amount of data being generated in each of such complex transactions is tremendous, leading to multiple bottlenecks, which if not addressed in time leads to service disasters.
These challenges can be addressed in three ways:
All of these solutions include automation in different forms. One of such forms is Artificial Intelligence (AI), which has become prominent in other technologies like Robotics, IoT, Machine Learning etc.
Artificial Intelligence in DevOps can be primarily applied to not only address the eight different challenge buckets as mentioned earlier, but also to efficiently address security threats and data leaks, and organize memory management, garbage collection, entity relationships and many more.
Intelligent release orchestration & management
Application release orchestration and management in terms of DevOps is a complex process and gets into the depth and breadth of the SDLC process. Many in the industry take it lightly and integrate it with an ITIL release process tool that doesn’t help much, but adds to the complexity.
The current form of DevOps application release orchestration and management does bring in lot of benefits; however, implementing it is a challenge due to the complexities in the other entities (like Continuous Integration, Continuous Delivery, Continuous Testing) of DevOps. AI in release orchestration and management addresses this.
AI can address many areas of release and entities of DevOps; however, in this article, we will focus on:
A. Technology integrations in release pipeline based on application patterns
B. Onboarding of applications in release pipeline or blueprint
C. Anomaly detection and fix before the trigger of release pipeline
It is obvious that while release of uniformly constructed applications is easy to manage, varied types of application constructs bring challenges. So, the release orchestration and management platform that was built for a particular set of application might not work for a new and different set of application of different construct and complexities. With intelligence built on the collected data, it is possible to construct the release pipeline dynamically with required set of technology integrations for different types of applications (See Figure 1).
Figure 1 – Release Orchestration & Management with Intelligent DevOps
Similarly, in case of onboarding of new set of application of varied constructs, intelligent algorithms can depict the right fitment of the type of release pipeline or blueprint. The data being generated out of the execution of the release pipeline can intelligently bring fixes from the stored data for the next onboarding of applications.
Also, prior to the build of release pipeline for a set of applications, the collection of historical data on application transactions and stored procedures or triggers will help to intelligently develop the anomalies in the construction of the pipeline and help in fixing the probable errors.
The role of AI in DevOps
In recent times, AI has been in focus as compute has become cheaper and the amount of data in the network has become huge with the advent of social media and mobile. The development of AI aims to leverage data. Currently, all social media and search engines use AI in some form or other. Robotics, Automotive and Manufacturing industries rely on AI for product development and bring the same in their product releases like driverless cars, drones, robots etc. DevOps with AI will boost product development and releases with quality and efficiency.
Benefits of DevOps with AI
DevOps with AI delivers numerous benefits. Considering the given focus of this article, below are some of the benefits that can be achieved:
There are many other benefits like automatic reporting based on environment and application type, or selection of right schedule for the release depending on the application criticality and release urgency etc.
Conclusion
The disruption in the consumption and subscription of services across all domains has led to intelligent ways of enabling various platforms to get connected with the end users. The momentum in DevOps will be led by how historical and transactional data is intelligently used for faster product releases. The change, on one hand, and stability, on the other will help the industry to adapt to other technological disruptions in near future.
Amitava Roy, Head - DevOps and Emerging Technologies - APJ region, Wipro
Amitava has about 17 years of experience in the IT Industry and is a leading technologist and thought leader in DevOps and Emerging Technologies portfolio. Amitava is based out of Kolkata in India and can be reached at amitava.roy@wipro.com