RSS GitLab
Подписаться
Как мы улучшили статусы GitLab CI с помощью WebSockets
GitLab значительно сократил количество вызовов API для обновления статуса задач CI на 92,56%, с 45 миллионов до 3,4 миллионов в день. Ранее компонент заголовка задачи использовал опрос, делая сетевой запрос каждые 30 секунд, независимо от изменений данных. Это приводило к задержкам для пользователей и нагрузке на базу данных. Команда перешла на подписки GraphQL через WebSockets, подход, основанный на событиях. Это изменение позволяет получать мгновенные обновления при изменении статусов задач, устраняя ненужный сетевой трафик. Количество сетевых вызовов за 15 минут сократилось с 547 145 до 39 670. Пользователи теперь видят статус в режиме реального времени. Эта оптимизация не привела к увеличению использования CPU или скорости операций. GitLab планирует заменить все механизмы опроса подписками GraphQL во всем продукте. Цель - обеспечить мгновенную обратную связь на протяжении всего рабочего процесса CI/CD.