company_banner

Включайтесь в игру: the MAZE DevOps game от ITSumma

    Мы уже немного рассказывали о том, как устраиваем квесты для участников ИТ-конференций. Сегодня запускаем онлайн-игру для админов (идея квеста была переработана и дополнена) — the Maze. Под катом — ее история. Включайтесь!

    image

    image

    Как мы придумали игру


    На нашем стенде на Highload и РИТ десятки любопытствующих решали нетривиальные задачи — вроде «админ уволился, сайт упал, срочно нужно все починить». Все началось с того, что мы подумали — админы любят заковыристые проблемы, а не очередные рутинные «создайте мне FTP-аккаунт». В качестве задачи для участников взяли пример из нашей практики — а нам приходилось сталкиваться с массой незаурядных случаев. Всем понравилось, а нам понравился ажиотаж:

    image

    Поэтому решено было сделать игру в онлайне — собрать вместе такие задачи, поделить их на три уровня сложности, привнести соревновательный дух.

    Для конференций мы все делали на обычных виртуалках во флопсе, но это медленно и избыточно, поэтому для полноценного решения выбрали LXC контейнеризацию — это позволяет дёшево полноценно эмулировать линуксы.


    Что в итоге получилось


    Сейчас игра — это сервер с виртуалками на базе LXC, которые разворачиваются из подготовленных образов с помощью Ansible-плейбуков. Образы готовятся вручную, разной сложности, с разными типами заложенных проблем.

    image

    Пользователь авторизуется через Фейсбук, выбирает уровень сложности задачи, ему выдаётся SSH-доступ в подготовленную среду и ссылка на сайт, где можно видеть результаты своей работы. На задачу отводится 15 до 45 минут (в зависимости от сложности), по истечении отведённого времени виртуалка сбрасывается в исходное состояние, доступы отключаются.

    В первой публичной версии задачи довольно простые, но это будет только обкатка основных механик. Пока что задач всего три — по одной на каждый уровень сложности. После запуска некоторое время потратим на оценку нагрузок и успехов игроков и на основе полученных данных будем расширять спектр задач и их сложность.

    Дальше будем выпускать более сложные и интересные версии, замерять время решения задач, выкатим таблицу рекордов.


    Планы на будущее


    Основной план — это, конечно, увеличить количество и разнообразить задачи. У нас накоплен достаточно большой багаж очень разных нестандартных проблем — точно есть, чем с вами поделиться :)

    Также хотелось бы поэкспериментировать с полуавтоматической генерацией шаблонов задач из заранее заготовленных небольших блоков «проблем». Пока есть только теоретические предположения, как это можно было бы реализовать, и не вполне понятно, всё ли получится, но не использовать такую возможность было бы преступлением.

    Ну и напоследок — дать возможность выполнять задания непосредственно на сайте: сделать отдельный экран, на котором были бы консоль в нужном контейнере, таймер, метки исправленных и не исправленных проблем.


    В главных ролях


    Иван Свеженцев — ведущий веб-разработчик, ответственный за текущий релиз. Все будет ломаться, а он будет не спать (не ломайте, пожалуйста!).

    Сергей Спорышев — ведущий веб-разработчик, автор интерфейса игры. Пока, конечно, довольно скромного, но, учитывая дальнейшие планы, работы у него ещё прибавится. Ранее был замечен как главный разработчик «Проекта1917».

    Кирилл Фатин — старший системный администратор из нашей команды поддержки, занимался проектированием и разработкой всего ядра игры, аккумулировал знания по различным каверзным админским проблемам, встреченным нами за всё время работы.


    Поехали!


    Игра тут.

    Пропускная способность сервера с играми — одновременно десять легких, пять средних и три сложных задания. Если вас не пускает — подождите немного, посмотрите на спиннер. Очереди как таковой нет, от кого ajax первый улетел, тому машину и дадут :)

    Очень ждем отзывов и предложений, как по заданиям, так и по самому формату игры. Если сломаете или найдете уязвимость — это тоже очень интересно, обязательно пишите. И делитесь результатами!
    Метки:
    ITSumma 443,38
    Собираем безумных людей и вместе спасаем интернет
    Поделиться публикацией
    Реклама помогает поддерживать и развивать наши сервисы

    Подробнее
    Реклама
    Похожие публикации
    Комментарии 16
    • +5
      а если у меня нет facebook'a и я не хочу там регистрироваться?
      Планируете простую авторизацию через почту или другие соцсети/git/googleid?
    • +4
      А можно login не через facebook?
      • 0
        сделаем в следующих версиях :)
      • +1

        прошел все 3
        на третьем сервере админ по кличке зоркий глаз заметил что на серваке таки установлена центось а не убунта. И почему у нас админы любят это говно мамонта.
        Кстати не запущенный mysql сервер на каждом это так задумано или контейнеро-проблемы?
        Суть игры — отрубить всякую фигню, которую настроил предыдущий админ и настроить сайт на вордпрессе.

        • 0
          Чем Вас CentOS не устраивает?
          • +2

            Бедностью стандартных репозитариев, подходом к обновлениям хуже дебина oldstable, yum.
            Хотя уже исправляются, не спорю, но по прежнему выберу deb-based.
            ЗЫ: Только без холиваров.

          • 0
            Про MySQL в рамках задания
            • 0
              Спойлеры же, ну. Я на этом потерял минут 5.
            • 0
              Как-то сервер (по крайней мере в первой задаче) не совсем похож на реально встречающийся в работе.

              * uname -a говорит, что это убунта.
              * Apt'a нет, зато есть yum
              * Vim или nano по-умолчанию не установлены (окей, установим в ubunt'e через yum (!))
              * При обращении к сайту, который нужно поднять, в логах nginx, php-fpm пусто
              * Хотите полностью уронить сайт? service nginx stop, открываем тестовый сайт, а там всё так же 502.
              * Окей, установим lynx и обратимся к localhost и увидим наконец хоть какой-то результат в логах — «Primary script unknown», с этим уже можно работать, но не нужно. Потому что таких волшебных серверов, в вашей работе, я думаю, не встретится.
              • 0
                uname -a говорит, что это убунта.


                uname говорит о том, что за ядро собрано на хостовой машине, но мы же все знаем, что на одном и том же линуксовом ядре в контейнерах могут крутиться какие угодно дистрибутивы.

                Хотите полностью уронить сайт? service nginx stop, открываем тестовый сайт, а там всё так же 502.


                тут издержки архитектуры, действительно, фронтом стоит ещё один nginx, распределяющий запросы по игровым виртуалкам. Возможно, стоит использовать какой-нибудь другой инструмент, спасибо:)

                По остальному не вижу ничего странного, многократно встречали подобное в разных местах:)
                • 0
                  502 потому что веб-прокси. Сравните версии nginx отвечают вам и которые вы останавливаете на сервере.
                  • 0
                    промахнулись немного:)
                • +1
                  cat /etc/*release — узнаём, что centos
                  Если nginx стопнут, а всё равно выдаётся 502, да ещё с server_tokens, в которых написано «ubuntu», то легко догадаться, что хостовый сервер проксирует в контейнер
                  • +1

                    Да вполне реальный центосовский сервак, у нас таких на прошлой работе пруд пруди было — одмин центосник, в ней vi только и есть древний по дефолту.


                    А в логах пусто


                    потому что

                    Есть такие нехорошие админы, которые фаерволят все, а потом косячат с настройкой фаервола и теряют доступ к серверу.
                    Там заблочен фаервол, я просто разрешил все.

                  • 0
                    Куда копать в первой задачи? конфиг php-fpm, неверный пользователь, неверные права?

                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                    Самое читаемое