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:
- Source code engineering
- Environment engineering
- Test engineering
- Release engineering
- Feedback and tracking
- Rollback and resiliency
- Transparency and visibility
- Developments through Center of Excellence
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:
- Bring automation wherever there is possibility
- Identify the risks in advance and fix prior to its occurrence
- Bring transparency and collaboration across all stakeholders
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).