06 декабря 2017

История Bastion Siege #6

Веселое коротание новогодних праздников с прохождением квестов и забрасыванием друг друга снежками было внезапно прервано утром пятого января. Я проснулся по зову будильника и по привычке глянул на дисплей телефона. Там было что-то около сотен непрочитанных сообщений. "Явно не с рождеством меня там поздравляют" – подумал я и аккуратно открыл Telegram.

Если коротко, то посыл сообщений гласил о том, что бот не работает. Конечно же, я проверил это и сам и еще раз убедился, что он действительно не работает. Непорядок. Выпрыгнув из постели я помчался к ноутбуку. На соседствующем мониторе, где выводились только логи игры было все печально.

А теперь немного предыстории. Возможно я немного слукавил, когда сказал, что запуск игры прошел тихо и мирно. На самом деле была одна заковырка, которую я решил абы как. В целях разделения ресурсов и порядка в архитектуре было принято решение вынести базы данных на отдельную виртуальную машину. Однако бот почему-то не хотел к ней подключаться. Немного изучив сию проблему был найден ответ, который заключался в том, что в настройках базы данных по умолчанию не принимаются внешние подключения. Что ж, слишком сильно хотелось запустить игру и разбираться с тем "как правильно" не очень хотелось и был просто открыт доступ на все внешне соединения. "Да кому оно понадобится перебирать все ip, чтобы вычислить вот таких вот лентяев вроде меня" – подумал я и бережно создал задачу в трекере с невысоким приоритетом на переделывание сего непотребства в канонический вид.

И как раз после новогодних праздников и планировалось дать отпуск новому функционалу и заняться какими-то техническими вопросами вроде ограничения доступа для баз данных и настройки бэкапов. Да, именно так! Резервных копий тоже не было, что поделать. Хотел заняться, но не успел.

А в логах я увидел сначала кучу попыток обновить несуществующие записи, потом невозможность подключения, а после сервер бота вовсе сдался и рухнул хладным телом. И что же делать, что случилось? Я тут же устремился в базу данных.

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

В голове начался поиск идей по восстановлению данных. Первым делом я отправился в техническую поддержку хостера и описал проблему. Мой вопрос заключался в уточнении наличия резервных копий с их стороны. Запрос отправлен и пора идти на работу. Пол дня я провел в размышлениях и консультациях по восстановлению данных. Может быть какие-нибудь логи или кэши, хоть что-то должно же быть? Но нет. Получив отрицательный ответ в интернетах, я начал изучать вопрос по устранению текущей уязвимости. Оставшуюся часть рабочего дня я просто грустил. Вернувшись домой я сел за написание исповеди перед игроками.

В целом принцип предоставления игры гласил "никто никому ничего не должен". Он, собственно, и сейчас такой. Но было жалко труды игроков, а так же их бесценное доверие мне. Чат кипел, игроки строили предположения и просто общались, ведь играть уже было не во что, однако никто еще не знал, что все утеряно безвозвратно. К тому времени техническая поддержка уже дала мне отрицательный ответ и именно поэтому я писал пост в нашей официальной группе vk с разъяснением ситуации, просьбой понять и простить, а так же анонсом перезапуска игры следующим утром.

Помню эти едкие возмущения об отсутствии бэкапов. А я прям сижу и вижу как эти педантичные подростки делаю реплики и по два бэкапа в разные места на каждый свой домашний проект. Аж слезы наворачиваются. От смеха, конечно же. Нашлись и те, кто все же просил "компенсацию". Эти сразу лесом. Но в основном тот костяк сообщества, сложившийся за два месяца игры, только поддерживал меня и это было приятно. Ведь в такой ситуации чего меньше всего хочется ощущать, так это давления на тебя со стороны окружающих. Сама ситуация уже стрессовая, куда уж больше то?

И так, перезапуск состоялся на следующий день после "гибели" Бастиона в восемь утра по Москве. В принципе, многие уже были на низком старте. Почти все хотели начать с нуля. И игра была запущена. "Дыра" в безопасности была, конечно же, устранена, а чуть позже настроено резервное копирование. Новогодние квесты продлены еще на несколько дней от запланированной даты окончания и игра вновь закипела. Шестое января было ознаменовано второй эпохой и теперь отсчет количества дней с начала игры ведется именно с этой даты.

До удаления базы или, как принято говорить среди игроков, "вайпа" некоторые топы высказывались, что он нужен еще в первый месяц игры, так как новые игроки в сильно неравных условиях. После вайпа эти самые игроки первыми и отвалились от новой тусовки. Ну что поделать. Другие игроки, которые просто не могли оторваться от игры в силу своей азартной натуры, наконец получили такую возможность и я считаю, что это, несомненно, плюс. Нельзя держать людей насильно.

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

История, конечно, не из приятных, но довольно поучительная и, в принципе, со счастливым концом. Но концом это не было. Это было лишь начало.

Комментариев нет:

Отправить комментарий