Блоги

«Когда там новый сайт?» и «Почему так долго?» — отвечаем на главные вопросы про разработку сайта

fomily
108

Привет.

Меня зовут Лиза, я отвечаю за разработку Cybersport.ru. Так как запуск нового сайта не за горами, я решила, что пора завести свой блог, где я буду рассказывать о новых фичах, делиться новостями и иногда проводить опросы. Именно здесь вы можете получить ответы на вопросы: «Где сайт?», «Неужели так сложно сделать уведомления?», «Вы чем там занимались эти миллиарды тысячелетий?» и другие — делитесь своими вопросами в комментариях, а я постараюсь ответить.

Мое лицо, когда спрашивают о новом сайте
Мое лицо, когда спрашивают о новом сайте

Итак, в своем первом посте отвечу на самые популярные вопросы.

Когда новый сайт?

Планируем запустить в мае-июне. Аминь.

Почему так долго делаете новый сайт?

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

Сейчас появилась возможность практически ни на что не отвлекаться, и разработчики — огонь! Поэтому дело идет бодро :)

Во-вторых, искать разработчиков вообще очень сложно — на рынке просто беда. Я могу бесконечно говорить на эту тему и рассказывать истории о хантинге, перебивании офферов и заоблачных зарплатах. Но лучше оставлю здесь ссылку на вакансию frontend-разработчика к нам в команду. Приходите пообщаться!

Ну и мы не идеальны — где-то затормозили, где-то сделали криво, где-то неправильно запланировали, поэтому сроки сдвигались. Но теперь мы выходим на финишную прямую!

Будут ли оповещения о новых комментариях?

На новой версии сайта — да. Будут и другие нововведения, о них расскажу подробнее в следующих постах.

Почему сайт падал после матчей NAVI или VP? Разве к такому нельзя подготовиться?

Можно, конечно, что мы и делали, и, надо сказать, вполне успешно. Если в начале TI10 сайт начинал «болеть» на 600 RPS (запросов в секунду), то через неделю мы спокойно выдерживали 2 000 RPS.

Мы проводили и нагрузочное тестирование перед стартом The International, чтобы лучше подготовиться, но, к сожалению, синтетические тесты не всегда выявляют все проблемы.

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

Почему выбрали такой стек технологий?

Сейчас будут технические детали, приготовьтесь.

— Почему PHP и Symfony?

Одна из причин довольно банальная: в команде уже есть экспертиза в PHP и Symfony. Чтобы менять что-то в этом стеке, нужно переучивать имеющихся людей и набирать новых — а это, как я писала выше, не самая простая задача. К тому же PHP далеко не так плох, как многие думают. В нем есть так всеми любимая строгая типизация и даже дженерики на уровне статического анализа кода. Да и бенчмарки показывают, что с производительностью у PHP 8.1 все довольно неплохо. Стоит упомянуть еще тот факт, что все проблемы с производительностью у нас были связаны не с языком, а с базами данных. Ну и да, у языка есть некоторые ограничения, этого никто не отрицает. Но на нем пишется ядро системы, в котором эти ограничения никак нам не мешают.

Есть места, где PHP не подойдет, и в основном это взаимодействие с пользователем в реальном времени (WebSocket, на котором, в частности, будут работать уведомления на сайте). Для этого мы пишем отдельные небольшие сервисы на более подходящих технологиях.

Итого, особого смысла переходить с PHP на какие-то другие языки у нас не было. Все-таки Cybersport.ru — это бизнес, а не тусовка айтишников-энтузиастов, так что решения принимаются соответствующие :)

— Почему Nuxt?

Если мы хотим соответствовать современным стандартам, то мы должны делать сайт как SPA (single-page application). Но мы хотим не только этого, но еще и SEO, поэтому нам нужен SSR (server-side rendering).

В итоге выбор стоял между Angular Universal, Next.js, Gatsby и Nuxt.js (понятно, что есть и другие, но совсем экзотику мы не рассматривали). В целом все эти фреймворки примерно одного класса с одними и теми же проблемами, так что выбирали мы по тому, в чем, опять же, была экспертиза. А она была во Vue.js, так что выбор оказался довольно очевидным — это Nuxt.js. Можно было, конечно, скрутить собственный SSR с блек-джеком и заточкой под хайлоад, но это бы значительно увеличило срок разработки.

— Почему не микросервисы?

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

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

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

***

Думаю, на этом пока закончу. О чем бы вы еще хотели почитать? Новые фичи, технические штуки, баги, проблемы, планы по развитию, команда — в общем, что угодно.

Так как мне не приходят уведомления о новых комментариях (кек), вы всегда можете написать на support@cybersport.ru — я читаю все письма и иногда отправляю «сердечки» в ответ. Даже храню скриншотики с вашими благодарностями и шутками.

На этом все — просьба любить, а не хейтить. Всем добра!

Комментарии