Технологии в Контуре
6.71K subscribers
1.36K photos
121 videos
4 files
742 links
Канал tech-команды Контура о технологиях, инженерном опыте и мероприятиях.

Наш сайт: tech.kontur.ru
Гитхаб: https://github.com/skbkontur
Хабр: habr.com/ru/company/skbkontur
Youtube: youtube.com/@KonturTech

По всем вопросам пишите в сообщения канала.
Download Telegram
Сейчас в ней появились новые задачи (602 штуки) и новые стратегии (пока 21), а также получаемая из организаторской таблицы лидеров информация о том, насколько наши лучшие решения отстают от решений других команд.

Чтобы ещё удобней было наблюдать за телеметрией, Лёша @beevee_ru придумал показать наши визуализаторы и дашборды на большом телевизоре и поставить его рядом. Даже пошли на другой этаж офиса за большой стойкой с двумя телевизорами, но идея разбилась о суровые ограничения физического мира — стойка не прошла по высоте в лифт:
Поэтому в жизни телеметрия выглядит примерно так:
Как мы запускаем такое количество стратегий для решения такого количества задач? В облаке запущена туча воркеров — мы начинали с 10 реплик и постепенно довели их число до 60. Задачи по поиску ещё отсутствующих решений и улучшению уже имеющихся равномерно распределяются по репликам. Правда, это не всегда работало хорошо (баг на совести автора этих строк):
Вот наши нещадно потребляющие CPU и память воркеры в админке Хьюстона:
Асинхронно с решением задач мы собираем результаты и отправляем их организаторам. В Lightning-раунде всё делали вручную и использовали все возможные шансы для провала:
Теперь у нас полная автоматизация: лучшие решения выгружаются из Эластика и запаковываются в ZIP-архив, считается контрольная сумма, архив загружается в Dropbox, а ссылка для его скачивания вместе с контрольной суммой отправляется организаторам.

Всё это повторяется каждые в 20 минут — мы могли бы чаще, но организаторы ограничили всех 15 минутами. Судя по странице, где появляются подтверждения о загрузке решений (https://icfpcontest2018.github.io/submission-acks.html), мы одна из двух или трёх команд, которые делают это автоматически.

Настроили в TeamCity билды для перезапуска воркеров в Хьюстоне и отправки результатов организаторам:
Интенсивно пишем логи и валим сборку, если были ошибки при выгрузке результатов из Эластика и есть подозрение, что отправляем не самое лучшее решение:
Научились этому на горьком опыте (Elastic is hard):
Но даже отправка не самых лучших решений удерживает нас в топе. Прямо сейчас мы на 10 месте из 61 — и смотрим в будущее с оптимизмом :) Друзья из другой команды из Контура держатся рядом в общей таблице лидеров:
Минут 15 назад мы нашли решения ВООБЩЕ ДЛЯ ВСЕХ задач и вышли на второе место. Ура!