Proceedings of the International scientific and practical conference ―Synergy of Modern Science and Education‖ (June 12-14, 2026) / Publisher website: www.naukainfo.com. – New York, USA, 2026. - 145 p.

58 код користувача. Загальну композицію наведено нижче (Рис. 1. Архітектура розгортання платформи CodeToLearn ). Рис. 1. Архітектура розгортання платформи CodeToLearn Уся інфраструктура версіонована як код: Terraform-конфігурація описує віртуальну машину та прикладений до неї cloud firewall з явним переліком дозволених портів, а команда terraform apply детерміновано відтворює середовище з нуля без жодних ручних дій у консолі провайдера [7]. Серверні застосунки запускаються як systemd-юніти, що забезпечує автоматичний рестарт у разі падіння, логування і контрольовані обмеження безпеки [8]. Ключовим прийомом є додавання серверного юніта до групи docker через директиву SupplementaryGroups: Fastify-процес отримує доступ до сокета Docker daemon для керування judge- і playground-контейнерами без docker-in-docker і без запуску застосунку від імені root. Постачання нових версій реалізовано за моделлю атомарних релізів: CI-конвеєр доставляє артефакт у каталог releases/<git-sha>, скрипт розгортання виконує збірку й міграції бази даних, атомарно перемикає симлінк current на нову версію, перезапускає служби та виконує health check; у разі відмови симлінк автоматично відкочується на попередній реліз. Образ playground-контейнера перебудовується лише тоді, коли змінилися його вихідні файли, що скорочує час розгортання. Публічним HTTP-шлюзом виступає nginx [9]: він маршрутизує oRPC-виклики й автентифікацію до серверного процесу, проксіює SSE-потоки AI-оцінювання та підтримує довгоживучі WebSocket- з'єднання попереднього перегляду. Нарешті, PostgreSQL винесено в зовнішню керовану СУБД, що звільняє інфраструктуру від обов'язку самостійно забезпечувати персистентність, резервне копіювання й аварійне відновлення. Свідомим компромісом моделі є запуск застосунків безпосередньо в Node.js-середовищі хоста, а не в контейнерних образах: паритет рантюму між хостом і CI забезпечується однаковою версією Node.js. Цей компроміс спрощує супровід і дає серверному процесу прямий доступ до системних команд, водночас не блокуючи майбутню еволюцію – за потреби сервер тривіально пакується в Docker-образ і запускається тим самим systemd-юнітом. Апробація та результати. Працездатність обраної моделі підтверджено експлуатацією платформи у production-середовищі. Функціональне тестування охопило шістнадцять тест-кейсів –

RkJQdWJsaXNoZXIy MTAxMzIwNA==