В прошлом году существенно расширилась емкость собственного ЦОД Zynga |
Почти 80% активных пользователей, ежедневно обращающихся к сервисам Zynga, в конце 2011 года размещали свои ресурсы на собственных серверах компании, тогда как еще в начале прошлого года ситуация была прямо противоположной: 80% клиентов Zynga пользовались услугами хостинга общедоступного облака Amazon.
Технический директор Zynga по вопросам инфраструктуры Аллан Лейнванд сравнил сервисы Amazon с солидным четырехдверным седаном, в то время как тонкая настройка сервисов Zynga в собственной сети компании, которая называется zCloud, позволяет разогнать их до уровня спортивного болида.
«Четырехдверный седан нам нравится, но это универсальная машина, на которой хорошо ездить по магазинам и возить детей, – заметил Лейнванд. – А zCloud – это спортивный автомобиль, созданный для участия в ралли социальных игр. Он адаптирован к условиям гоночной трассы».
В ходе презентации на конференции CloudConnect в Сан-Хосе разработчики Farmville и Words with Friends рассказали о переосмыслении подходов к построению компьютерной инфраструктуры, которое наблюдалось в последние годы. Вносимые изменения подробно описаны и в официальном блоге компании.
Теперь на установку, подключение и настройку новых серверов уходит всего 24 часа, и всего за день их количество может увеличиться на тысячу единиц. После переноса операций из облака Amazon в собственное частное облако Zynga число физических серверов при аналогичной нагрузке удалось сократить на треть.
Zynga по-прежнему будет использовать сервисы Amazon в гибридной облачной модели, и Лейнванд полагает, что зависимость от Amazon вряд ли будет снижаться в дальнейшем. Но теперь ресурсы Amazon рассматриваются в качестве средства удовлетворения неожиданных всплесков спроса, а не в качестве основной платформы.
«Нам нравится гибкость, которую мы при этом получаем, – пояснил Лейнванд. – Приятно осознавать, что у нас есть такая возможность».
Инициатива Zynga может стать для других примером использования облака и развития облачных сервисов при повышенных требованиях к производительности.
«Сегодня облаку не хватает возможности предоставления инфраструктуры в качестве услуги, настройки и адаптации ее к особенностям нашего бизнеса, – пояснил Лейнванд. – Для того чтобы ИТ-службы активнее внедряли облачные сервисы и предоставляли на базе своих ЦОД услуги аутсоринга, нам нужен более полный контроль по сравнению с тем, что мы имеем сегодня».
Zynga начала предоставлять клиентам игровые сервисы на собственных серверах, размещавшихся на арендованной площадке. Но когда имеющиеся ресурсы не поспевают за темпами роста, она по-прежнему обращалась к Amazon. Поворотной точкой стал выпуск в 2009 году игры Farmville, число пользователей которой всего за шесть недель увеличилось с нуля до десяти миллионов.
С этого момента и до начала прошлого года Zynga размещала в облаке все свои новые игры, перенося их на собственные серверы только тогда, когда спрос становился предсказуемым.
Продолжалось строительство сети zCloud. При этом использовалось программное обеспечение Cloud.com и инструменты управления компании RightScale.
В прошлом году существенно расширилась емкость собственного ЦОД Zynga. Конкретные его параметры Лейнванд не оглашал, однако известно, что у компании сегодня есть несколько физических центров на восточном и западном побережье США, которые обеспечивают необходимое резервирование мощности.
«Во второй половине 2011 года у zCloud было уже достаточно ресурсов, для того чтобы поддерживать работу 166 Международных космических станций, – заявил Лейнванд. – Для повышения устойчивости Zynga построила волоконно-оптические линии связи с Amazon и Facebook. А отключение сервисов Amazon, наблюдавшееся в прошлом году, стало тревожным звонком для компании.
В материальном плане наши игровые сервисы от этих отключений не пострадали, но отключения в компании, от которой мы зависим, заставили нас пересмотреть свой подход к построению инфраструктуры.
Мы стали создавать собственные инструменты, помогающие оценить потребности игровых приложений в ресурсах процессора, памяти и подсистемы ввода-вывода, а также рассчитать нагрузку на веб-серверы, буферную память и системы хранения».
В результате такой оптимизации на каждые три физических сервера, которые ранее арендовались компанией Zynga у Amazon, теперь приходится только один сервер в zCloud.
«Дело не в том, что у AWS плохие серверы или плохие услуги, – пояснил Лейнванд. – Просто мы дорабатываем, оптимизируем и настраиваем платформу zCloud с учетом требований, которые диктуются социальными играми».
Система Zynga имеет три уровня. Когда пользователь хочет, к примеру, сыграть партию в Chess with Friends, он заходит в игру через веб-сервер, после чего все изменения на шахматной доске кэшируются в памяти, а игра для надежности сохраняется сразу на нескольких дисках.
Приложения, по большей части, написаны на PHP и обращаются к платформе с открытым кодом Membase, которая с клиентской стороны представляет собой memcache, а с серверной – СУБД no-SQL.
Для хранения здесь используется MySQL, но при этом сложные запросы не нужны, а применение Membase в качестве как средства обработки, так и средства хранения позволяет избавиться от одного уровня при администрировании.
Команда Лейнванда разработала инструменты автоматизации, которые позволяют Zynga в кратчайшие сроки установить тысячи серверов. В отличие от Microsoft и других крупных игроков контейнеры здесь не применяются, а партнеры-интеграторы доставляют уже готовые к установке серверные стойки.
Один из серверов вместе с партнером проектировался с учетом особенностей конкретного приложения (Лейнванд, правда, не стал вдаваться в конкретные подробности) но в целом, там, где это возможно, используется стандартное оборудование x86.
«С методологической точки зрения, мне нравится развивать то, что я называю корпорацией Тайвань», – подчеркнул Лейнванд.