Мы уже немного рассказывали о том, как устраиваем квесты для участников ИТ-конференций. Сегодня запускаем онлайн-игру для админов (идея квеста была переработана и дополнена) — the Maze. Под катом — ее история. Включайтесь!
Как мы придумали игру
На нашем стенде на Highload и РИТ десятки любопытствующих решали нетривиальные задачи — вроде «админ уволился, сайт упал, срочно нужно все починить». Все началось с того, что мы подумали — админы любят заковыристые проблемы, а не очередные рутинные «создайте мне FTP-аккаунт». В качестве задачи для участников взяли пример из нашей практики — а нам приходилось сталкиваться с массой незаурядных случаев. Всем понравилось, а нам понравился ажиотаж:
Поэтому решено было сделать игру в онлайне — собрать вместе такие задачи, поделить их на три уровня сложности, привнести соревновательный дух.
Для конференций мы все делали на обычных виртуалках во флопсе, но это медленно и избыточно, поэтому для полноценного решения выбрали LXC контейнеризацию — это позволяет дёшево полноценно эмулировать линуксы.
Что в итоге получилось
Сейчас игра — это сервер с виртуалками на базе LXC, которые разворачиваются из подготовленных образов с помощью Ansible-плейбуков. Образы готовятся вручную, разной сложности, с разными типами заложенных проблем.
Пользователь авторизуется через Фейсбук, выбирает уровень сложности задачи, ему выдаётся SSH-доступ в подготовленную среду и ссылка на сайт, где можно видеть результаты своей работы. На задачу отводится 15 до 45 минут (в зависимости от сложности), по истечении отведённого времени виртуалка сбрасывается в исходное состояние, доступы отключаются.
В первой публичной версии задачи довольно простые, но это будет только обкатка основных механик. Пока что задач всего три — по одной на каждый уровень сложности. После запуска некоторое время потратим на оценку нагрузок и успехов игроков и на основе полученных данных будем расширять спектр задач и их сложность.
Дальше будем выпускать более сложные и интересные версии, замерять время решения задач, выкатим таблицу рекордов.
Планы на будущее
Основной план — это, конечно, увеличить количество и разнообразить задачи. У нас накоплен достаточно большой багаж очень разных нестандартных проблем — точно есть, чем с вами поделиться :)
Также хотелось бы поэкспериментировать с полуавтоматической генерацией шаблонов задач из заранее заготовленных небольших блоков «проблем». Пока есть только теоретические предположения, как это можно было бы реализовать, и не вполне понятно, всё ли получится, но не использовать такую возможность было бы преступлением.
Ну и напоследок — дать возможность выполнять задания непосредственно на сайте: сделать отдельный экран, на котором были бы консоль в нужном контейнере, таймер, метки исправленных и не исправленных проблем.
В главных ролях
Иван Свеженцев — ведущий веб-разработчик, ответственный за текущий релиз. Все будет ломаться, а он будет не спать (не ломайте, пожалуйста!).
Сергей Спорышев — ведущий веб-разработчик, автор интерфейса игры. Пока, конечно, довольно скромного, но, учитывая дальнейшие планы, работы у него ещё прибавится. Ранее был замечен как главный разработчик «Проекта1917».
Кирилл Фатин (@krillw) — старший системный администратор из нашей команды поддержки, занимался проектированием и разработкой всего ядра игры, аккумулировал знания по различным каверзным админским проблемам, встреченным нами за всё время работы.
Поехали!
Игра тут.
Пропускная способность сервера с играми — одновременно десять легких, пять средних и три сложных задания. Если вас не пускает — подождите немного, посмотрите на спиннер. Очереди как таковой нет, от кого ajax первый улетел, тому машину и дадут :)
Очень ждем отзывов и предложений, как по заданиям, так и по самому формату игры. Если сломаете или найдете уязвимость — это тоже очень интересно, обязательно пишите. И делитесь результатами!
Автор: eapotapov