Інтелектуальна система управління динамічними середовищами розробки програмного забезпечення - Коблик, Іван Андрійович; Koblyk, Ivan Andriiovych (Національний університет "Львівська політехніка", 2023)
Прагнення до ефективності, масштабованості та гнучкості були невпинними в умовах розробки програмного забезпечення, що постійно змінюється. З роками парадигма розробки програмного забезпечення зазнала значних змін, зумовлених технологічним прогресом і пошуком оптимального використання ресурсів. Від рудиментарних днів монолітних архітектур до сучасної ери мікросервісів і динамічних середовищ розробки, цей шлях був відзначений невпинним прагненням до інновацій та оптимізації. У динамічних середовищах розробки програмного забезпечення на базі Kubernetes швидке створення та видалення просторів імен (віртуальних кластерів) є звичайним явищем. Однак без належного керування ці простори імен можуть накопичуватися, що призводить до втрати ресурсів і неефективності роботи. Тому існує нагальна потреба в інтелектуальних системах, які могли б контролювати та очищати ці середовища на основі заздалегідь визначених критеріїв. Об'єкт дослідження – процес управління динамічними середовищами розробки програмного забезпечення. Сфера дослідження – методи та засоби управління динамічними середовищами розробки програмного забезпечення. Мета дослідження: проєктування, опис і розробка інтелектуальної системи управління динамічними середовищами розробки програмного забезпечення. Ця магістерська робота зосереджена на розробці інтелектуальної системи управління, адаптованої для динамічних середовищ розробки програмного забезпечення. Зокрема, вона спрямована на створення програми на мові Python, яка відстежує та видаляє простори імен у кластерах Kubernetes на основі попередньо визначених параметрів часу життя (TTL). Крім того, система забезпечує глибоку аналітику щодо використання та життєвого циклу цих середовищ, пропонуючи цінні дані щодо таких показників, як кількість середовищ. Запропонована система буде використовувати Kubernetes API для взаємодії з кластером, отримання інформації про простори імен і пов’язані з ними ресурси. За допомогою механізму TTL система визначить простори імен, які перевищили свій життєвий цикл, та ініціює їх видалення, таким чином оптимізуючи використання ресурсів і підтримуючи чисте та ефективне середовище розробки. Розроблена система представлена у вигляді helm чарту, що містить все необхідне для її роботи. Helm, Tekton і Python були обрані для розробки системи управління динамічним середовищем через їх взаємодоповнюючі переваги. Надійне керування пакетами Helm спрощує розгортання програми Kubernetes, що робить його ідеальним для обробки складних конфігурацій. Потужні конвеєрні можливості Tekton CI/CD забезпечують ефективну автоматизацію. Python, відомий своєю універсальністю та великими бібліотеками, сприяє швидкому розвитку та інтеграції з API Kubernetes. Разом ці інструменти забезпечують масштабоване, ефективне та гнучке рішення для розробки інтелектуальної системи для керування динамічними середовищами розробки програмного забезпечення. У сфері вирішення проблем управління ефемерними ресурсами в кластерах Kubernetes з’явилися різноманітні рішення для вирішення цього складного завдання. Під час розробки системи ці альтернативи були ретельно переглянуті, уважно розглянуті їхні переваги та обмеження. Ця комплексна оцінка гарантувала, що обраний підхід ефективно відповідатиме вимогам, збалансовуючи ефективність, масштабованість і легкість інтеграції. Цей обґрунтований процес відбору був ключовим у створенні надійної й адаптивної системи керування, адаптованої до конкретних потреб кластерів Kubernetes. Також було проведено детальний системний аналіз, визначено ключові компоненти та їх взаємозв’язки. Аналіз запевнив, що остаточне рішення буде ефективним, масштабованим та інтегрованим, відповідаючи мінливим вимогам сучасного бізнесу в галузі інформаційних технологій, одночасно оптимізуючи використання ресурсів і ефективність роботи. Також наведено конкретний приклад застосування розробленої системи, який ілюструє її ефективність і практичність в реальних умовах. Це дозволило зрозуміти, як система може бути реалізована на практиці та які переваги вона може надати користувачам. Ця система матиме значний вплив завдяки своїй здатності змінювати стратегії розробки програмного забезпечення компаній на сучасному ринку, що швидко змінюється. Надаючи інструмент, який підвищує гнучкість і ефективність керування динамічними середовищами розробки програмного забезпечення, система дозволяє бізнесу швидше виводити свої продукти та послуги на ринок. Така гнучкість є ключовою для збереження конкурентних переваг і швидкого реагування на потреби клієнтів і тенденції ринку.

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.
Intelligent System for Managing Dynamic Software Development Environments
Keywords: 3.124.00.00; Kubernetes; середовище розробки програмного забезпечення; час життя; кластер; простори імен; Kubernetes; software development environment; time-to-live; cluster; namespaces