Спосіб високоефективної реалізації сайдкар компонента з мінімальними витратами системних ресурсів - Носко, Сергій Вікторович; Бульба, Сергій Сергійович; Черних, Олена Петрівна; Скородєлов, Володимир Васильович; Панченко, Володимир Іванович (Національний університет “Полтавська політехніка імені Юрія Кондратюка”, 2025)
У статті представлено спосіб щодо реалізації високоефективного сайдкара з мінімальними витратами системних ресурсів у контексті мікросервісної архітектури. Проведено аналіз існуючих рішень для реалізації сайдкару, а також виконано порівняння різних технологій з точки зору використання оперативної пам’яті та часу на запуск, що є критично важливими аспектами для сайдкар-компонентів. На основі отриманих результатів аналізу обрано Quarkus у зв’язку з тим, що його можливості компіляції ahead-of-time (AOT) на базі GraalVM забезпечують високу швидкість запуску та низьке споживання об’ємів пам’яті та центрального процесору (CPU). Для вирішення завдань із витоками пам’яті (memory leaks) запропоновано проведення оптимізації управління потоками даних, зокрема, шляхом усунення блокуючих викликів та використання асинхронних підходів. Заміна високорівневого WebClient на низькорівневий HttpClient для перенаправлення HTTP-запитів дозволило істотно зменшити використання оперативної пам'яті та уникнути помилок OutOfMemory. Вибір оптимального Garbage Collector у JVM середовищі забезпечує високу стійкість до навантажень. Розроблений та запропонований спосіб дозволяє мінімізувати додаткові витрати на інфраструктуру, зберегти переваги сайдкар-архітектури – незалежність основних мікросервісів, простоту масштабування та високу ефективність. Розроблений сайдкар стійкий до навантажень та забезпечує мінімальне використання ресурсів. Він може ефективно інтегруватися у сучасні мікросервісні системи. An analysis of existing solutions for implementing a sidekick is carried out, and a comparison of different technologies is made in terms of RAM usage and startup time, which are critical aspects for sidekick components. Based on the results of the analysis, Quarkus was chosen because its GraalVM-based advance-of-time (AOT) compilation capabilities provide high startup speed and low consumption of RAM and central processing unit (CPU). To solve problems with memory leaks, it is proposed to optimize data flow management, in particular, by eliminating blocking calls and using asynchronous approaches. Replacing the high-level WebClient with the low-level HttpClient for redirecting HTTP requests significantly reduced the use of RAM and avoided OutOfMemory errors. Choosing the optimal Garbage Collector in the JVM environment provides high load resistance. Elimination of memory leaks allows the garbage collector to steadily clear RAM without creating long pauses even under heavy load. The developed and proposed method, as a set of optimizations, demonstrated that modern approaches to the implementation of sidekick can significantly reduce the need for infrastructure resources. The selected technologies, tools, and techniques ensure the creation of a highly efficient, load-resistant sidekick that demonstrates minimal resource consumption and has a positive impact on system performance. The new method allows optimizing the management of RAM and data flows, elim inates blocking calls, uses lower-level tools for processing HTTP requests, and implements a streaming data transfer mechanism. The conducted research of the method demonstrates that, if implemented correctly, the sidekick allows minimizing additional infrastructure costs, preserving the advantages of the sidekick architecture - independence of the main microservices, ease of scaling, and high efficiency. The developed sidekick is resistant to loads and ensures minimal resource utilization. It can be effectively integrated into modern microservice systems.
Method of the high-efficiency implementation of a sidecar component with minimal system resource consumption
Keywords: сайдкар; мікросервісна архітектура; оптимізація оперативної пам'яті; витік пам'яті; асинхронне програмування; мінімальне використання ресурсів; потокова передача даних; масштабованість; збірник сміття; sidekick; microservice architecture; RAM optimization; memory leakage; asynchronous programming; minimal resource usage; streaming data; scalability; garbage collector