- PVSM.RU - https://www.pvsm.ru -

«Как мы делали игровой хостинг» или «Наш первый Хакатон»

На днях в нашей компании FirstVDS прошел первый хакатон. Это был для нас первый опыт реализации проекта в рамках такого мероприятия. В результате мы запустили новый сервис FirstGAME всего за одну неделю.
«Как мы делали игровой хостинг» или «Наш первый Хакатон»

Предыстория

Исследуя для каких целей у нас покупают VDS [1], мы выяснили, что заметная их часть приобретается для развертывания игровых серверов. Тогда мы решили упростить клиентам пользование нашей услугой и создать дисковые шаблоны с предустановленными игровыми серверами. Однако, пока мы подготавливали первый шаблон Minecraft и изучали системные требования игры, выяснилось, что для работы ей необходимо 1 Гб памяти минимум. Цена за такой игровой сервер получилась совсем не конкурентоспособной. Мы всё таки запустили данный шаблон в начале июля, полагая, что он будет пользоваться небольшим спросом, среди тех, кому нужен полный контроль над игровым сервером. Кроме того, мы решили, что интересно было бы сделать хостинг [1] игровых серверов как отдельную специализированную услугу. Название придумали сразу же– FirstGAME.

Немного подумав в этом направлении и прикинув, что нам нужно для запуска игрового хостинга [1], мы осознали, что запускать данный проект мы будем очень и очень долго. Нужно было задействовать много разных людей, у которых и так хватает дел. Тогда кто-то предложил: «А давайте попробуем Хакатон [2]?». Предварительное организационное собрание мы назначили на 13 августа, пригласив на него всех сотрудников компании, желающих принять участие. Идея – создание нового интересного проекта за 1 день.

Ребята с разных отделов вдохновились возможностью создания игровой платформы и пришли высказывать свои идеи. На этом собрании мы обсудили цели проекта, основные требования, набросали небольшой план, что нам нужно сделать и кто что делает, а так же назначили дату — 17 сентября
«Как мы делали игровой хостинг» или «Наш первый Хакатон»
Листок с целями проекта выглядел следующим образом:

  • Увеличить аудиторию клиентов, сделав сервис для геймеров
  • Написать новый программный продукт для управления игровым хостингом [1]
  • Поиграть в Хакатон, раньше мы никогда не пробовали такого формата работы
  • Рассказать всем на что мы способны (данная статья)
  • Получить опыт в новой для нас области (игры)

А требования вот так:

  • Доступно и понятно для домохозяек (никаких сложностей)
  • Конкурентная цена
  • Оно должно работать в задекларированном режиме (аптайм, регламентные работы и т.д.)
  • Хорошо документировать, чтобы пользователь мог быстро найти ответ на любой свой вопрос
  • Не менее 3х игр на старте
  • Технической поддержки не будет, только общий форум
  • Обслуживаем только физлиц
  • Начальный 100% работающий вариант должен быть сделан за 1 день, поэтому не замахиваемся на трудоемкие задачи

Поскольку у нас в штате нет своих веб-дизайнеров и программистов, мы решили пригласить их со стороны. Таким образом к нам присоединился дизайнер Евгений, с которым многие успели познакомиться ещё на Админском квартирнике [3], а так же группа программистов из дружественной нам компании ISPsystem, которая была заинтересованы в создании нового программного продукта.
«Как мы делали игровой хостинг» или «Наш первый Хакатон»«Как мы делали игровой хостинг» или «Наш первый Хакатон»
По окончании предварительного собрания, руководитель компании Алексей сказал: «Мне кажется, я начинаю верить в успех этой затеи», что очень всех воодушевило.

Хакатон

Итак, настало 17 сентября 9 утра. До этого времени мы договорились не делать никаких предварительных работ и исследований, решили все начать с нуля. Единственное, что мы сделали к этому моменту, выкупили у кибесквотеров домен firstgame.ru.
Поехали! Задача перед нами была поставлена весьма конкретная интересная и сложная – сделать за один день работоспособный проект. Не вылизанный в деталях, не слишком глубокий, но рабочий и живой. Таким образом мы, совсем без подготовки, но с целью и со средствами в виде людских и технических ресурсов, приступили к работе.
«Как мы делали игровой хостинг» или «Наш первый Хакатон»

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

После краткого обсуждения, мы выбрали GTA, Counter Strike 1.6, Minecraft, TF2, Left 4 Dead и TeamSpeak дополнительным бонусом. Взяли мы эти пять игр исходя из критериев массовости, стабильности, простоты/сложности поддержки и т.д. Сколько же игрушек получится по завершении дня – было не известно.

Судя по выражению лиц участников эксперимента, им было весело прийти на работу, но заниматься не решением повседневных задач, а массово исследовать какую-то новую для себя область, находить пути её решения, не откладывая в долгий ящик раздумий, проверять их на пригодность и принимать окончательные решения. Всех не покидало хорошее настроение, а в глазах читался интерес.
«Как мы делали игровой хостинг» или «Наш первый Хакатон»

У нас образовалось 3 основных рабочих группы: Первая занималась разработкой сайта, контента и маркетинговыми исследованиями, вторая — изучением технической стороны игровых серверов, третья — разработкой панели управления игровыми серверами. И, разумеется, были отдельные люди, которые координировали совместную работу, обеспечивали технические ресурсы, заказывали пиццу, все фоткали и протоколировали

Сайт. Пока группа обсуждала макет и раскладку сайта, дизайнер выслушал задание и принялся творить эскизы логотипа. Посмотрев на другие логотипы наших проектов [4], Евгений через несколько минут предложил макет, который всем понравился и его сразу утвердили. Далее ребята решали, как оформят сайт, какие блоки разместят, какое будет цветовое решение. Старались, чтобы всё было удобно и понятно, без лишних путанных наворотов, но интересно и красиво
«Как мы делали игровой хостинг» или «Наш первый Хакатон»«Как мы делали игровой хостинг» или «Наш первый Хакатон»
Мы посмотрели на некоторые подобные сайты и подчерпнули много интересного и полезного. Определившись с сайтом и окончательно сформировав задание для дизайнера, основная часть группы занялась маркетинговыми исследованиями. Мы нашли в рунете порядка 50 сайтов сходной тематики и проанализировали их на предмет предоставляемых услуг и ценовой политики, а так же постарались выделить лидеров, на которых нужно равняться. У них мы покупали аккаунты, более подробно изучали, как все устроено, что удобно и нравится. В итоге мы вывели среднерыночные цены, а также определили цены, которые нам хотелось бы установить. Однако, решать окончательно с ценой пока было рано, т.к. ничего не было понятно с себестоимостью… Впрочем, это не помешало создать в нашей биллинговой системе BILLmanager новый проект и тарифные планы, а также сделать настройки для приема денег.

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

А разработчики, тем временем, проектировали ядро нового продукта, который решили назвать GSmanager (game server manager). Вот как прокомментировал свою работу один из участников этой группы, Алексей: «Конечно же, мы решили писать игровую панельку на той же основе, что и все наши продукты – на COREmanager [5]. Была разработана следующая архитектура: Система будет многосерверной. На одном сервере разворачивается GSmanager, который отвечает за интерфейс пользователей, их учёт и учёт игровых серверов и узлов игрового кластера. К нему подключаются ноды, игровые сервера будут устанавливаться и запускаться непосредственно на них. При подключении, на ноду устанавливается специальное приложение – GSmini, которое, в свою очередь, отвечает за установку игровых серверов, настройку и управление их состоянием. Таким образом, с мастер-сервера мы сможем управлять целым игровым кластером!».
«Как мы делали игровой хостинг» или «Наш первый Хакатон»

Разобравшись с архитектурой и протоколами взаимодействия, ребята принялись за реализацию и уже к обеду у них был работающий прототип. Параллельно мы написали модуль для BILLmanager, позволявший автоматически обрабатывать заказы клиентов.

Наступило время перерыва (час дня) и вот некоторые впечатления ребят, выпытанные во время обеденного перерыва:
«Как мы делали игровой хостинг» или «Наш первый Хакатон»

Оля, менеджер проекта: «Я удивлена нашей результативностью. Мы хорошо вписываемся в план. Никакого бардака и хаоса, все сидят и четко выполняют поставленную задачу, каждый понимает что и зачем делает».

Дима, разработчик: «Я не вижу, что происходит дальше нашего девелоперского стола, хоть столов тут и хватает. У нас проявилась структура проекта, на основе которого он будет жить. Была определена базовая функциональность, то, как будет осуществляться работа с пользователями и физическими серверами. Мы автоматизировали процесс сборки и развертывания разрабатываемой панели GSmanager на тестовый стенд. В общем, основу придумали, а сейчас поняли, что она нуждается в доработке. Форсируя события, реализовываем новые задумки и начинаем наращивать «мясо на костях». Через час попросим инфу о конфигурации и запуске разных игровых серверов».

В 2 часа, опять все собрались на своих местах и работа продолжилась. Группы начали плотнее взаимодействовать между собой обмениваясь наработками и информацией. Появились и первые негативные моменты. Оказалось, что TeamSpeak просто так продавать нельзя, необходимо лицензионное соглашение и подписание бумажек. Но мы этот вопрос не бросили, поскольку это популярное дополнение, оно обязательно должно быть у нас.
«Как мы делали игровой хостинг» или «Наш первый Хакатон»«Как мы делали игровой хостинг» или «Наш первый Хакатон»

Провести тестирование под нагрузкой нам тоже не удалось, необходимых данных на эту тему в интернете тоже нашлось не много. Решили все запускать на конфиге E5-1650 / 32Gb / 2x2000 SATA, по одной ноде на каждый тип игры. Далее опытным путем мы определим потребность в железе и оптимизируем его. Поскольку посчитать более менее точно себестоимость нам не удалось, мы решили остановится на среднерыночных ценах, решив, что, наверное, люди не в убыток себе работают… Тем более, что демпинговать мы не собираемся, поскольку считаем, что это убивает рынок, а мы планируем на нем работать и делать что-то, что будет заставлять его стремится к лучшему.

У девелоперов тоже все шло не лучшим образом, первый модуль под Minecraft ребята решили сделать толпой, а далее разбиться по остальным играм, и по отработанной системе параллельно написать оставшиеся модули. Однако, споры из серии «лучшее враг хорошего» заняли слишком много времени. Группа исследователей игр, закончила свою работу и начала страдать ерундой, что слегка повлияло на общую рабочую атмосферу. Правда некоторые из них нашли себе занятие в виде наполнения сайта текстами и помощи в генерации идей для банеров и прочих маркетинговых мероприятий.
«Как мы делали игровой хостинг» или «Наш первый Хакатон»«Как мы делали игровой хостинг» или «Наш первый Хакатон»

Ближе к вечеру стало окончательно ясно, что мы не успеем запустить проект сегодня. Основными причинами стали GSmanager, а так же работы по верстке сайта и его автоматизации.

Все сошлись на мнении, что мы проделали огромный объем работы и нам нужно совсем чуть-чуть для запуска проекта. Обсудили все узкие места и недочеты, определили порядок доработки: через 3 дня (в неспешном режиме, ведь у всех есть и основная работа) мы должны быть готовы к финальному тестированию, еще 2 дня берем на устранение недочетов выявленных в процессе тестирования и 24 сентября (через неделю) запускаем проект.

В итоге в пятницу, мы имели:

  1. Полностью готовый сайт с 3 самыми популярными играми
  2. Установлен и настроен GSmanager, к которому подключено 8 серверов
  3. Игровые сервера запущены в тестовом режиме
  4. На сайте можно заказать услугу, совершить оплату и практически сразу приступить к игре
  5. У маркетинга готовы все рекламные материалы, тексты новостей и пресрелизов, есть четкая стратегия по продвижению
  6. Написана данная статья

На последок хотелось бы сказать несколько слов о дальнейших планах развития проекта:
В течение октября мы добавим в GSmanager максимум функций и доведем первые четыре игры до безупречного состояния. А до конца года мы планируем увеличить количество игр до 10, более глубоко изучить рынок игрового хостинга [1], изучить целесообразность покупки конкурирующих компаний, с целью быстро обеспечить себе лидирующие позиции.

Вывод:

Хакатон, как метод быстрого решения интересных задач, себя оправдал! Нам понравился такой стиль работы. Результатом [6], в конечном счете, мы тоже остались довольны. Теперь мы в ожидании фидбека от любителей игрануть во что-нибудь из пока небольшого, но уже имеющегося ассортимента. А читатели, надеюсь, нашли в статье для себя что-то интересное.

Автор: Denis1776

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/hakaton/44364

Ссылки в тексте:

[1] VDS: https://www.reg.ru/?rlink=reflink-717

[2] Хакатон: http://ru.wikipedia.org/wiki/%D0%A5%D0%B0%D0%BA%D0%B0%D1%82%D0%BE%D0%BD

[3] Админском квартирнике: http://firstvds.ru/node/626

[4] проектов: http://firstvds.ru/

[5] COREmanager: http://ru.5.ispdoc.com/index.php/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%8F:%D0%A0%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%87%D0%B8%D0%BA%D1%83_COREmanager

[6] Результатом: http://firstgame.ru/

[7] Источник: http://habrahabr.ru/post/195356/