Intelligent System for Managing Dynamic Software Development Environments

Students Name: Koblyk Ivan Andriiovych
Qualification Level: master (ESP)
Speciality: System Analysis
Institute: Institute of Computer Science and Information Technologies
Mode of Study: full
Academic Year: 2023-2024 н.р.
Language of Defence: ukrainian
Abstract: The quest for efficiency, scalability, and agility has been relentless in the ever-evolving software development landscape. Over the years, the software development paradigm has undergone significant transformations, driven by technological advancements and the quest for optimal resource utilization. From the rudimentary days of monolithic architectures to the contemporary era of microservices and dynamic development environments, the journey has been marked by a relentless pursuit of innovation and optimization. In dynamic software development environments powered by Kubernetes, the rapid creation and deletion of namespaces (virtual clusters) are common occurrences. However, without proper management, these namespaces can accumulate, leading to resource wastage and operational inefficiencies. Therefore, there is a pressing need for intelligent systems that can monitor and clean up these environments based on predefined criteria. Study object - the process of managing dynamic software development environments. Scope of research - methods and tools for managing dynamic software development environments. Goal of research: design, description, and development of an intelligent system for managing dynamic software development environments. This master’s thesis focuses on developing an intelligent management system tailored for dynamic software development environments. Specifically, it aims to create a Python application that monitors and deletes namespaces within Kubernetes clusters based on predefined time-to-live (TTL) parameters. Additionally, the system will provide insightful analytics on the utilization and lifecycle of these environments, offering valuable data on metrics such as the number of environments. The proposed system will leverage the Kubernetes API to interact with the cluster, retrieving information about namespaces and their associated resources. By implementing a TTL mechanism, the system will identify namespaces that have exceeded their lifecycle and trigger their deletion, thereby optimizing resource utilization and maintaining a clean and efficient development environment. The developed system comes in the form of a helm chart, which contains everything necessary for its operation. Helm, Tekton, and Python were selected for developing the dynamic environment management system due to their complementary strengths. Helm’s robust package management simplifies Kubernetes application deployment, making it ideal for handling complex configurations. Tekton’s powerful CI/CD pipeline capabilities enable efficient automation. Python, known for its versatility and extensive libraries, facilitates rapid development and integration with Kubernetes APIs. Together, these tools provide a scalable, efficient, and flexible solution for developing an intelligent system for managing dynamic software development environments. In the realm of addressing the challenges of managing ephemeral resources in Kubernetes clusters, a variety of solutions have surfaced to tackle this intricate task. During the development of the system, these alternatives were thoroughly reviewed, with their advantages and limitations carefully considered. This comprehensive evaluation ensured that the chosen approach would effectively meet the requirements, balancing efficiency, scalability, and ease of integration. This informed selection process was pivotal in creating a robust and adaptive management system tailored to the specific needs of Kubernetes clusters. Also, a detailed system analysis was conducted, identifying key components and their interrelations. The analysis ensured that the final solution would be effective, scalable, and integrable, meeting the evolving demands of modern information technology business while optimizing resource utilization and operational efficiency. A specific example of the application of the developed system is also presented, which illustrates its effectiveness and practicality in real conditions. This made it possible to understand how the system can be implemented in practice and what benefits it can provide to users. This system will have a significant impact due to its ability to change companies’ software development strategies in today’s fast-changing market. By providing a tool that increases the flexibility and efficiency of managing dynamic software development environments, the system enables enterprises to bring their products and services to market faster. Such flexibility is key to maintaining competitive advantage and responding quickly to customer needs and market trends. Keywords: Kubernetes, software development environment, time-to-live, cluster, namespaces.