Дмитренко, ОлександраОлександраДмитренкоСкулиш, МаріяМаріяСкулиш2026-03-132026-03-132024-12-20Дмитренко, О., & Скулиш, М. (2024). Групування мікропослуг для використання неповно залучених ресурсів. Сучасні інформаційні технології, (1), 73–80. https://doi.org/10.17721/AIT.2024.1.08УДК 004.7510.17721/AIT.2024.1.08https://ir.library.knu.ua/handle/15071834/12510B a c k g r o u n d . The task of optimizing cloud system resource usage is of high priority, as this technology has become widely adopted and easily accessible. Efficient services are common to be created to beastly adapt to different types of products, e.g. serverless technologies and proprietary databases, and cloud-optimized software. Performance testing of cloud applications has become significantly easier with the emergence of Docker and Kubernetes, which has further increased the demand for cloud resources. Since a considerable amount of resources is spent on the development and maintenance of cloud infrastructure, it is essential to understand how these resources can be optimized. M e t h o d s . The basic idea is to reorganize cloud infrastructure so that the software is distributed into the server groups, not the serv ers in a complementary manner, meaning that the hardware load will be close to the full load. To form complementary groups, methods of clusterization (K-Means), multiple knack’s problem, sorting, binary search, shuffling and division based on mean and standard deviation are used. Additionally, FastDTW and Z-scale algorithms are proposed for visualization. R e s u l t s . The article examines the key characteristics of computer systems that can be measured and influenced. These characteristics include transmission channel bandwidth, delay-based performance evaluation, the amount of RAM and permanent storage, processing power, and the number of cores. An algorithm is proposed to identify complementary microservice instances that could efficiently uti lize server resources. Initially, microservice instances are classified by their capacity, considering small instances as a unit of capacity. Through analysis, the microservice instances are grouped into equivalence classes based on similarity. The instances are then sorted by the amplitude of resource usage. Ideally, instances with significant differences in load are combined with others that have similar amplitudes but opposite ph ases to maximize resource utilization. Combinations with instances that have low amplitude may also be appropriate. Within opposite classes, which differ in the activity phases of microprocessor instances, the algorithm searches for the first microservice instance that meets the conditions. To achieve this, statistics of combinations with all instances are stored until the first successful combination is found. Otherwise, the search continues till the least possible combination. The leftovers after the combinations search are expected. They are additionally divided using the extended extremums search with the mean and standard deviation search to increase their chances to find compliments. Finally, the small amount of microservices that didn’t find a match is combined using multiple knack’s problem. C o n c l u s i o n s . The conclusions of the article suggest an algorithm that will optimize the use of cloud system resources by effectively distributing the load between different microservices. Optimization means to maximize the use of server resources by filling its free time with other microservice and so reduce server downtime. This, in turn, will contribute to improving general cloud productivity and reducing maintenance costs of cloud infrastructures. This algorithm can be useful for cloud service providers and organizations that u se cloud environments to deploy their applications.В с т у п . Завдання оптимізації використання ресурсів хмарних систем має високий пріоритет, оскільки ця технологія стала широко розповсюдженою та легкодоступною. Поширеною практикою є створення ефективних сервісів, які легко адаптуються до різних типів продуктів, наприклад, безсерверні (serverless) технології, пропрієтарні бази даних і програмне забезпечення, оптимізоване для хмари. Тестування продуктивності хмарних застосунків стало значно простішим із появою Docker і Kubernetes, що додатково збільшило попит на хмарні ресурси. Оскільки значна кількість ресурсів витрачається на розроблення й обслуговування хмарної інфраструктури, важливо розуміти, як ці ресурси можна оптимізувати. М е т о д и . Основна ідея полягає в реорганізації хмарної інфраструктури так, щоб програмне забезпечення розподілялося по серверних групах, а не серверах, за принципом комплементарності, що означає наближення навантаження на апаратне забезпечення до повного. Для формування комплементарних груп використовують методи кластеризації (K-Means), задача про множинний рюкзак, жадібний алгоритм, сортування, бінарний пошук, перемішування та поділ на основі середнього значення та стандартного відхилення. Додатково для візуалізації пропонують алгоритми FastDTW та Z-масштабування. Р е з у л ь т а т и . Розглянуто ключові характеристики комп’ютерних систем, які можна виміряти та на які можна впливати. Ці характеристики включають пропускну здатність каналів передачі, оцінку продуктивності на основі затримки, обсяг оперативної та постійної пам’яті, обчислювальну потужність і кількість ядер. Запропоновано алгоритм для визначення комплементарних екземплярів мікросервісів, які могли б ефективно використовувати серверні ресурси. Спочатку екземпляри мікросервісів класифікують за їх місткістю ключового ресурсу. В и с н о в к и . Запропоновано алгоритм, який оптимізує використання ресурсів хмарної системи за допомогою ефективного розподілу навантаження доповнених мікросервісів між різними серверними групами. Оптимізація полягає в максимізації застосування серверних ресурсів шляхом заповнення його вільного часу іншими мікросервісами й, отже, зменшенням простою серверів. Це, своєю чергою, сприятиме покращенню загальної продуктивності хмари та зменшенню витрат на обслуговування хмарних інфраструктур. Наведений підхід застосовують як до мікросервісів, так і до монолітів, з описаними мінімальними змінами. Цей алгоритм може бути корисним для постачальників хмарних послуг та організацій, які використовують хмарні середовища для розгортання своїх застосунків.ukmicroservice groupingCPU efficiencyenergy consumption optimizationcloud systemsmicroservice architecturetechnology cost reduction.групування мікросервісівпроцесорна ефективністьоптимізація використання енергіїхмарні системимікросервісна архітектура.Microservice grouping for underused resource usageГрупування мікропослуг для використання неповно залучених ресурсівСтаття