Google Stadia, Geforce Now — крупнейшие игроки на рынке активно осваивают новый сегмент гейминга. Облачные игровые потоковые сервисы предлагают мгновенный доступ к играм без необходимости загружать гигабайты установочных файлов. Игры сервисов доступны для различных устройств: ноутбуков, настольных компьютеров, телевизоров, планшетов и телефонов
Но где же Sony — законодатель моды в сфере консолей и игростроя в целом? Sony PlayStation Now пока что отстаёт по возможностям от конкурентов, хотя изначально, в 2012 году планы были крайне амбициозными.
Sony критически отстала и потому не торопится? Нет, Sony готовится устроить блитцкриг и захватить практически весь рынок облачного игрового стриминга.
О том, что происходит и готовится в проекте Sony PlayStation Now, рассказал software еngineer этого проекта в интервью. По ряду причин он предпочёл остаться безымянным — так он мог более свободно рассуждать о перспективах сервиса.
1. Итак, вы работаете в PlayStation Now. Прошло уже восемь лет с покупки Sony игрового сервиса Gaikai. Я помню, планы были очень размашистые — трансляция игр на широкий спектр устройств, включая Playstation 4, PlayStation 3, PlayStation Vita, телевизоры, планшетные компьютеры и смартфоны. Расскажите, что представляет сервис сейчас? К чему он идёт? Что нам ожидать в ближайшее время?
Сервис похож в некоторой степени на то, что сейчас делает Google Stadia и Geforce Now. В чём-то похоже, но в PlayStation сервис занимается стримингом реальных сигналов. Тут ничего не эмулируется, никакие игровые процессы. Непосредственно сами девайсы, те же консоли PlayStation 3, скомпонованы по несколько устройств в кластер, который установлен в шкаф. И эти шкафы стримятся за счёт серверов. Физические девайсы занимаются стримингом видеосигналов, аудиосигналов и принятием от пользователя сигнала контроллера.
2. Я читал в одной статье, что ранее этими устройствами были PlayStation 3. А сейчас?
Они и сейчас есть. Сервис позволяет выбрать. Можно играть в любую игру — разработанную хоть под PlayStation 3, хоть под «четвёрку». Разница там в кластеризации этих «плоек». Потому что у «тройки» не было некоторых необходимых компонентов, скажем, которые позволяли непосредственно заниматься стримингом. Для них мы создали дополнительное hardware solution, которое позволяло «тройке» стримить.
«Четвёрка» уже изначально была разработана с учётом необходимости стриминга — и содержала ряд хардварных решений, которые позволяли нам легко это делать.
И сейчас выходит PlayStation 5, точнее скоро выйдет. Например, на «четвёрке» можно стримить четырёх пользователей одновременно. В «пятёрке» я не могу прямо говорить точными цифрами, но можно будет гораздо больше пользователей стримить. Плюс там вообще космические скорости обмена информацией собираются ввести, потому что там идёт одновременная разработка нескольких команд — PlayStation непосредственно, отделение, ответственное за разработку протоколов, и ещё несколько подразделений. Будут технические и программные решения, которые сейчас в принципе не существуют — даже в планах других компаний. Они разрабатываются и буду разрабатываться. Ожидается очень серьёзный скачок в технологиях, которых рынок даже не ожидает. Опять же, это такая инсайдерская внутрикорпоративная информация идёт — у нас самих не всегда есть доступ к ней, но что-то периодически выливается.
3. Расскажите о своей команде. Ты упоминал некие «функциональные команды». Как это выглядит?
Я работаю в PlayStation Now, непосредственно тружусь над фронтендом на должности software еngineer. Если позволите, имя уточнять не буду. Наверное, это будет лишнее.
Мы не так давно, всего год назад перешли на функциональные команды. Соответственно, обязанности у инженера фронтенда, бэкенда немножко выросли, спектр задач вырос. Например, в мои задачи сейчас вполне может входить инвентаризация устройств дата-центров, использование такие решений, как NetBox, Prometheus, плюс задачи, связанные с релизом, это деплой, это опять-таки задачи стабилизации сервисов, задачи, связанные с Kubernetes, внутренняя интеграция, так как некоторые сервисы уже перешли на кластеры, некоторые ещё бегают на виртуальных машинах.
4. Расскажите, пожалуйста, подробнее о функциональных командах. Почему было принято решение на них перейти? И какие особенности этих команд? Сейчас многие компании пробуют новые подходы, тот же DevOps подход, чтобы настроить эффективное взаимодействие различных подразделений.
Во-первых, повышается спектр задач специалиста. То есть нет рамок — вроде я занимаюсь фронтендом и занимаюсь только им.
Во-вторых, тот, кто изолирован от архитектурных решений компании, тот, кто работает на фронте или бэке, он всё равно знает архитектуру всей компании. Почему? Например, если необходимо производить какие-то devops операции, соответственно начинаешь лезть в другие команды — чтобы понять, не сломаешь ли ты что-то параллельно со своим проектом. Да, это может тебе какие-то плюшки дать, а какой-то параллельной функциональной команде твоё решение может что-то поломать. Соответственно, получаешь больше информации, вникаешь в инфраструктуру, как всё работает. И это очень круто — у человека быстро растёт опыт в работе именно со всей архитектурой компании.
Но опять же, мы пока что на ранней стадии. Один год — я не считаю, что это мега-долгое понятие в IT-сфере. Но опять же должны быть чёткие правила. У нас зачастую бывают такие проблемы. Например, нужно очень-очень быстро реализовать какую-то фичу, но на неё нет спецификации. Непосредственно вся информация находится у человека, который её реализует.
В функциональных командах ставятся цели каждому человеку. И ставятся цели каждой команде. И для того, чтобы достичь эти цели, нужно тратить определённое количество времени. Когда ты вынужден работать над задачей, которая не входит в эти цели, неспецифицирована в составе целей команды, тогда получается идёшь вразрез со своей функциональной командой. И уже получается, что ты тратишь одновременно время и своей команды, и параллельной команды, над задачей которой ты работаешь сейчас.
Для того, чтобы такое не происходило, нужны более чётко поставленные цели, более специфицированные задачи, чтобы понимать, сколько времени это у тебя займёт, сколько нужно ждать команде, в которой ты до этого работал.
Функциональная команда более флексибельна, добавляет больше динамичности в разработку, но так же добавляет больше ответственности инженеру. То есть в таких ситуациях инженер может быть ответственен не только в своей команде.
С моей точки зрения, работать чётко над задачами своего подразделения — фронтенд это или бэкенд — это проще, гораздо проще. Но менее интересно. Как только мы развернули функциональные команды, мне стало гораздо интереснее работать. Больше инструментов, больше задач интересных. Мне больше нравится в функциональных командах.
5. К чему вы хотите прийти? Есть такая цель, при достижении которой вы скажете «вот это идеально, мы добились совершенства в структуре»?
Одна из больших целей — достижение полной взаимозаменяемости. Чтобы была возможность заменить и человека, и команду, как таковую при необходимости или форс-мажоре.
Нет, это не означает, что совсем убрать, чтобы человек или команда ушли в другую компанию. Но чтобы задачу можно было мигрировать.
Вторая цель — максимально увеличить спектр задач разработчика.
6. Получается, сейчас Sony создаёт не узкоспециализированных разработчиков, как до недавнего времени было принято в IT-индустрии, а разработчиков широкого профиля.
Да-да-да. Всё верно. В какой-то степени они обращаются к опыту советской системы образования. Например, если ты учишься на инженера в каком-то университете, то получаешь навыки и математики, и физики, и языков программирования, и много чего ещё. А в немецких университетах всё наоборот — если ты пришёл учиться на маляра, то ты будешь три года изучать эту специальность, и ни шага в сторону.
Функциональные команды — это то, что позволяет воспитывать в инженере человека, который, если где-то что-то упало, способен быстро починить. И при этом представлять себе в целом архитектуру продукта. Многофункционального человека, многозадачного.
7. Сейчас ты работаешь в Германии. На что ты обратил внимание в аспекте разницы отношения работодателей к сотрудникам, в ментальности коллег, в подходах к работе?
В Германии очень большое значение имеет контракт. Он заключается с таким режимом, чтобы после отработки пробного периода — обычно это полгода — человек уверенно работал в компании. Его очень трудно выгнать. Он должен ну просто очень плохо себя повести, чтобы было принято такое кардинальное решение. Нужно чуть ли не голым по кабинету CEO бегать, чтобы тебя уволили.
А ещё срок расторжения контракта у них два-три месяца. Таким образом они удерживают специалистов. Например, вернуться из Германии в Россию, если кому-то захочется вот так прямо не особо и легко. Потому что в России собеседования и приём на работу происходит где-то за две-три недели, а в Германии ты будешь связан контрактом после решения уйти ещё два-три месяца. Такая вот занятная деталь. Но, конечно же, сотрудник чувствует себя более защищённым — это да.
В России могут просто подойти и сказать «ты меня не устроил, собирай вещи, через две недели чтобы ты ушёл». В Германии такое невозможно.
Даже если компания обанкротилась, а работник проработал в ней достаточно долго, больше года, то даже если компания в целом исчезла, специалист имеет право в течение полугода получать поддержку от государства на уровне полноценной зарплаты. Такая вот подушка безопасности, чтобы найти новую работу.
Единственно, с нашим менталитетом к порядкам Германии нужно немножко привыкать. Например, с документами очень всё сложно, очень долго. Европейцы привыкли, что всё происходит неспешно. Как пример, через который прошёл я, пересдача экзамена на водительские права.
Мне нужно было пересдать права, поменять российские на немецкие. Для того, чтобы прийти и попробовать сдать экзамен, мне пришлось ждать полгода. То есть я отправил все свои документы в департамент. И просто ждал и ждал разрешения.
Так что ожидание каких-то документов полгода или год — тут это здесь нормально. Местные привыкли. А вот нам непривычно совсем. И ускорить никак. Немцы даже отпуск планируют за год вперёд. А я привык, что на выходных решил, а на неделе уже еду. Тут такого нет.
8. А в работе отражается такая специфика? Или Sony — интернациональная компания, где все различия размываются?
В Sony таких проблем нет. Головной офис находится не в Германии. Именно нашего сервиса головной офис находится в Калифорнии. И ребята там более динамичные.
Так получается, что подразделения Sony разбросаны практически по всем часовым поясам, что позволяет вести разработку 24 часа в сутки. Работа никогда не останавливается.
9. Как я понимаю, дата-центры и команды, похожие на вашу, расположены по всем основным регионам?
Да. Есть Токио, Австралия. Лондон, Франкфурт, Берлин, Техас, Калифорния… Да я все не назову. Много точек разработки, много дата-центров.
10. Сервис пока что работает только на консолях от Sony и персональных компьютерах? Как планировалось изначально, но Android и iOS он не вышел?
У нас есть уже прошивки на мобильные устройства. Но единственное что, они не полностью оптимизированы. Сейчас занимаются доработкой. В принципе, планируется в ближайшем будущем выпустить на Android и iOS уже оптимизированные.
Политика компания такова, что не хотят выпускать вещи, которые не оптимизированы до предельного уровня. Когда разработчики уже ничего не могут добавить, ни одного процента производительности, тогда выпускают. И тестируют долго.
Даже во внутренних инструментах, которые мы разрабатываем для внутренних команд, у нас существует четыре «environment». Это девелоперский, это фри-девелоперский, продакшн, препродакшн. И это связано не с самим продуктом, это связано с внутренними инструментами.
11. Как я понял, в мониторинге Prometheus используете?
У нас есть и внутренние инструменты, и «прометей».
12. Расскажи, какой стек используется в компании.
То, с чем наша команда связана… Я работаю на «питоне» 3.7, Angular TypeScript версия восьмая, Java, несколько сервисов работает на Go, ещё есть NetBox, Prometheus, Kubernetes.
13. То есть изначально PlayStation Now базировалась на виртуальных машинах, а сейчас перешла на кластера Kubernetes?
Нет-нет-нет. Сам PlayStation Now — это вообще отдельная история, сам продукт. Есть команда, которая у нас называется Core — именно они разрабатывают сам продукт. Они находятся в Штатах под большим секретом. И даже количество этих сотрудников никому неизвестно. Они сидят в своём помещении. И именно эти ребята реализуют сервис. Насколько я помню, они всё это делают на «си». И соответственно уже готовая часть, которую они разработали, приходит к нам.
А дальше мы разрабатываем внутренние вещи, которые позволяют другим командам реализовать масштабируемость, сохранность сервисов, обеспечить стабильность. Именно этим и занимается наша команда в Берлине. Там в Core не используется Kubernetes, там применяются внутренние разработки. Я даже не могу точно сказать, какой стек находится там. Реально то, что происходит в команде Core, мало кому известно.
14. Можешь рассказать о дата-центре? Он сильно отличается от обычных дата-центров? Какое там дублирование используется Tier 3 или даже Tier 4?
Честно, я глубоко не нырял в технические характеристики дата-центров. Но насколько я знаю, то, что я могу сказать, архитектура очень похожа на DigitalOcean. Специфику я, наверное, разглашать не могу.
15. Как я понимаю, есть совместимость у игр PlayStation 3 на PlayStation 4. Как теперь эти группы устройств в шкафах — «тройки» заменяют на «четвёрки»?
Нет, группы «троек» остаются. «Четвёрки» естественно заполняют новые пространства. Они могут находится даже в одном дата-центре. Они разделяются по типу сервера, который стримит их. Более подробно не могу разглашать.
16. Что ты можешь посоветовать нашим специалистам, которые планируют переехать работать в Германию и работать в крупных немецких компаниях? На что им обратить внимание по приезду?
Наверное, нужно приучить себя сохранять все чеки, инвойсы. Потому что все тут ходят к человеку, который пишет за тебя налоговую отчётность и сдаёт в налоговый департамент. И в конце года можно получить приличный «скос» по налогам. Все документы, которые ты получаешь в течение года, надо их сохранять.
Нужно серьёзно подходить к налоговой отчётности — налоги здесь кусаются, и довольно прилично. А ещё больше кусаются штрафы, если ты не так и не вовремя подал.
Если приезжаешь сюда с семьёй, то получается очень большой «скос» налогов. Германия таким образом привлекает семьи, чтобы люди оставались. Семейные отношения они берегут очень серьёзно. У них даже в законодательстве по разводам есть пункт, что семья не может разойтись сразу. Муж и жена некоторое время не могут жить в раздельным местах. Как только они приходят в департамент и заявляют, что подают на развод, они обязаны прожить вместе в течение полугода. К ним могут приходить с проверкой. Наверное, государство надеется, что они восстановят отношения.
Ещё один плюс Германии, так как она становится известной в аспекте, что защищает законодательно работника, то тут открывается много IT-компаний. Германия — сейчас практически вторая Кремниевая Долина, только европейская. IT-компании тут активно ищут сотрудников, есть определённый дефицит. И ты точно знаешь, что не пропадёшь, что без работы точно не останешься.
Автор: JohnRico