Інформаційна система розгортання контейнерних додатків у хмарних безсерверних платформах з використанням локального реєстру та тунелювання

Loading...
Thumbnail Image

Date

Journal Title

Journal ISSN

Volume Title

Publisher

Національний університет "Львівська політехніка"

Abstract

У сучасному світі розробки програмного забезпечення хмарні технології, зокрема контейнеризація та безсерверні архітектури, стали домінуючими парадигмами. Платформи, такі як AWS ECS, Azure App Service for Containers та Azure Container Instances, надають розробникам потужні інструменти для створення масштабованих та ефективних додатків. Однак, попри значні переваги, існуючі процеси розгортання мають низку суттєвих недоліків. Традиційний робочий процес вимагає від розробника не тільки налаштування самого безсерверного ресурсу, але й розгортання та підтримки окремого хмарного реєстру контейнерів. Цей процес є багатоетапним та складним, вимагаючи глибоких знань специфічних інструментів кожного провайдера, таких як aws ecr або az acr. Крім того, використання хмарних реєстрів, таких як Docker Hub, AWS ECR або Azure ACR, пов'язане з прямими фінансовими витратами. Це створює фінансовий бар'єр для індивідуальних розробників та стартапів, а також генерує додаткові витрати для великих компаній. Ця операційна складність створює значне когнітивне навантаження на розробників та негативно впливає на їхній досвід (Developer Experience, DevEx). Найважливіше те, що вона руйнує швидкість ітераційного "внутрішнього циклу" (inner loop), оскільки завантаження образів через інтернет займає значний час. Саме тому виникає потреба в інструментах, які б спрощували та автоматизували цей процес, пропонуючи "безреєстровий" підхід. Ідея полягає в тому, щоб усунути залежність від постійного хмарного реєстру на етапах розробки та тестування. Розробка інструменту командного рядка (CLI), який автоматизує створення локального реєстру, забезпечує до нього тимчасовий публічний доступ через технології тунелювання (наприклад, Ngrok) і самостійно передає необхідні облікові дані хмарній платформі, є надзвичайно актуальною задачею. Об'єкт дослідження – процес розгортання контейнеризованих додатків у хмарних безсерверних обчислювальних середовищах. Предмет дослідження – методи, архітектурні рішення та програмні засоби для автоматизації процесу розгортання контейнерів, що базуються на використанні локального реєстру образів та технологій мережевого тунелювання. Мета дослідження – створення інформаційної системи розгортання контейнерних додатків у хмарних безсерверних платформах з використанням локального реєстру та тунелювання. Результати дослідження. Результатом виконання роботи є спроєктований, розроблений та протестований програмний засіб reger — інструмент командного рядка (CLI), що повністю вирішує поставлену задачу. У ході роботи було проаналізовано існуючі інструменти (Skaffold, Tilt), що підтвердило наявність незайнятої ніші для легкого інструменту, орієнтованого на безсерверні платформи. На основі системного аналізу було розроблено концептуальну модель (UML) та обрано комбінацію методів: декларативної конфігурації (через reger.yaml), оркестрації через CLI та інноваційного "безреєстрового" розгортання. Система реалізована мовою Go з використанням бібліотек Cobra, Viper та офіційних SDK для Docker, AWS і Azure. Найважливішим результатом став кількісний аналіз продуктивності, який довів, що використання reger скорочує час ітераційного циклу розробки приблизно на 45% порівняно з традиційним підходом. Це досягається за рахунок повного усунення найбільш тривалого етапу — завантаження образу до віддаленого хмарного реєстру. Створений інструмент є завершеним програмним продуктом, що покращує досвід розробника (DevEx), роблячи процес розгортання швидшим, дешевшим та ефективнішим.
In the modern world of software development, cloud technologies, particularly containerization and serverless architectures, have become dominant paradigms. Platforms such as AWS ECS, Azure App Service for Containers, and Azure Container Instances provide developers with powerful tools to build scalable and efficient applications. However, despite significant advantages, existing deployment processes have a number of significant drawbacks. The traditional workflow requires the developer not only to configure the serverless resource itself but also to deploy and maintain a separate cloud container registry. This process is multi-stepped and complex, requiring deep knowledge of each provider's specific tools, such as aws ecr or az acr . Furthermore, the use of cloud registries like Docker Hub, AWS ECR, or Azure ACR is associated with direct financial costs. This creates a financial barrier for individual developers and startups and generates additional expenses for large companies. This operational complexity creates a significant cognitive load on developers and negatively impacts their Developer Experience (DevEx). Most importantly, it disrupts the speed of the iterative "inner loop" , as uploading images over the internet takes considerable time. This is why there is a need for tools that would simplify and automate this process, offering a "registry-less" approach. The idea is to eliminate the dependency on a persistent cloud registry during the development and testing stages. The development of a command-line interface (CLI) tool that automates the creation of a local registry, provides temporary public access to it via tunneling technologies (e.g., Ngrok), and independently transfers the necessary credentials to the cloud platform is a highly relevant task. Study object: The process of deploying containerized applications in cloud serverless computing environments. Scope of research: Methods, architectural solutions, and software tools for automating the container deployment process based on the use of a local image registry and network tunneling technologies. Goal of research: To create an information system for deploying container applications in cloud serverless platforms using a local registry and tunneling. Briefly put research results. The result of this work is a designed, developed, and tested software tool reger—a command-line interface (CLI) tool that fully solves the stated problem. During the work, existing tools (Skaffold, Tilt) were analyzed, confirming an unoccupied niche for a lightweight tool focused on serverless platforms. Based on system analysis, a conceptual model (UML) was developed, and a combination of methods was chosen: declarative configuration (via reger.yaml), orchestration via CLI, and the innovative "registry-less" deployment method. The system is implemented in the Go language using Cobra, Viper, and official SDKs for Docker, AWS, and Azure. The most important result was a quantitative performance analysis, which proved that using reger reduces the development iteration cycle time by approximately 45% compared to the traditional approach. This is achieved by completely eliminating the most time-consuming stage—uploading the image to a remote cloud registry. The created tool is a complete software product that improves the Developer Experience (DevEx), making the deployment process faster, cheaper, and more efficient.

Description

Citation

Стельмах В. Д. Інформаційна система розгортання контейнерних додатків у хмарних безсерверних платформах з використанням локального реєстру та тунелювання : кваліфікаційна робота на здобуття освітнього ступеня магістр за спеціальністю „8.126.00.01 — Інформаційні системи та технології“ / Віталій Дмитрович Стельмах. — Львів, 2025. — 100 с.

Endorsement

Review

Supplemented By

Referenced By