Алексей Зеньков

Внутри секретной лаборатории Facebook, где пытаются увеличить время работы вашей батареи

Где-то на территории первого из дата-центров Facebook, простирающегося на холмах города Прайнвилл в штате Орегон, установлен ряд из 60 серверных шкафов. В каждом из них по 32 смартфона, на которых запущены разные версии одного из множества мобильных приложений Facebook. В компании называют это помещение Лабораторией мобильных устройств, а ее предназначением является тестирование программ Facebook на устаревающих моделях телефонов.


Это делается для того, чтобы выявить, как влияют даже самые незначительные изменения в коде на производительность и продолжительность работы устройства. Именно благодаря усилиям этой лаборатории владельцы устройств, вышедших два или три года назад, или жители развивающихся стран, купившие смартфоны начального уровня, могут себе позволить держать приложения Facebook на главном экране.

Фото: The Verge

За большой черной металлической дверцей шкафа находятся 32 iPhone 5C, все выполняющие определенный тип тестов: одни прокручивают ленту новостей, другие проверяют задержку реакции и энергопотребление при разных операциях, третьи перезагружаются, чтобы вернуться к исходному состоянию и продолжить тесты. Каждый ряд в серверной состоит из более дюжины шкафов, одни из которых заполнены устройствами времен iPhone 4, а другие – более новыми вроде Nexus 5s. В общей сложности Facebook использует почти 2000 телефонов, позволяющих разработчикам узнать, допустили ли они ошибку в чем-то, даже если это заметно только на устаревших моделях.

Именно благодаря работе этой Лаборатории мобильных устройств приложения Facebook функционируют на устаревших телефонах

В Facebook зарегистрированы более 1,65 млрд пользователей по всему миру, и учитывать все вариации типов устройств, операционных систем и качества связи становится крайне сложной задачей. Целые компании строят свою работу в сфере тестирования мобильного ПО похожим образом, и некоторые из таких стартапов затем поглощаются более известными игроками. В 2014 году Google купила стартап Appurify из Сан-Франциско, который занимался тестированием приложений. В то же время инженеры Facebook рассудили, что сами могут заняться подобной работой, тем более в дата-центре в Орегоне были свободные вычислительные мощности и место в серверных.

Дата-центр Facebook. Фото: Томас Бойд

Изначально в Facebook эта концепция была реализована в программе CT-Scan. Этот сервис, разработанный компанией в прошлом году, тестирует все программные изменения, внесенные в продукты, например, в Facebook Messenger или Instagram. Он проверяет каждую строчку нового кода, написанного инженерами, и определяет, как это сказывается на использовании приложением памяти телефона, плавности прокрутки ленты и энергопотреблении.

CT-Scan была отличным инструментом для инженеров, работавших только с одним типом устройств, но программа не справлялась с постоянно растущим количеством версий операционных систем и типов устройств. Поэтому отделу Facebook по производству продуктов, одним из руководителей которой является Антуан Реверса, пришлось отказаться не только от тестов для конкретных типов устройств, но и вообще от любых видов программной симуляции. «К примеру, на симуляторе мы бы не смогли отследить снижение производительности на один процент, объясняет Реверса – поэтому мы решили тестировать продукты на реальных устройствах».

Дата-центр Facebook. Фото: Томас Бойд

После нескольких модификаций инженеры Лаборатории мобильных устройств сконструировали панель, способную вместить 240 телефонов и занимавшую целую комнату в штаб-квартире компании в Менло-Парке. Однако, как рассказывает Реверса, чтобы обеспечить нужное разнообразие устройств, Facebook пришлось бы построить девять таких панелей, а такого количества свободного места у компании на тот момент не было. Поэтому в марте 2015 года лаборатория переехала в дата-центр в Прайнвилле, где она теперь занимает помещение холодного склада.

Фото: The Verge

Чтобы оперативно выпускать обновления для каждого приложения Facebook и для каждого телефона, команда использует восемь компьютеров Mac Mini для управления стеллажами с устройствами на iOS и четыре OCP-сервера Leopard на базе Linux для телефонов на Android. Каждый из серверов соединен с одинаковым количеством телефонов на iOS или Android, и каждый стеллаж имеет собственную сеть Wi-Fi. Телефоны крепятся на перфорированную панель, поэтому разработчики с помощью установленных камер могут вести съемку экранов и записывать все, что происходит с каждой сборкой приложения во время его установки, тестирования и удаления.

«Когда разработчик вносит какие-то изменения в приложение, мы собираем новую версию, — рассказывает Реверса. — Затем мы устанавливаем это приложение на один из телефонов и проверяем, чтобы эти изменения не вызвали снижения производительности».

Регрессионный анализ показывает зависимость между разными переменными, и инженеры Facebook проверяют, что даже самые незначительные изменения в коде не вызовут непредсказуемых изменений таких ключевых параметров работы устройства, как энергопотребление.

В Facebook не тестируют телефоны с разным качеством соединения

Дата-центр Facebook. Фото: Томас Бойд

Примечательно, что в Лаборатория мобильных устройств не тестирует производительность устройств при разной скорости подключения к Сети, что могло бы потребовать сотрудничества с отдельной программой Facebook, которая называется Internet.org. Цель этой программы – подключение к интернету тех областей мира, которые имеют некачественное подключение к интернету или не имеют его вовсе, возможно, с помощью специальных дронов на солнечной энергии. Реверса поспешил уточнить, что хотя в лаборатории Facebook и тестируются устаревшие устройства, популярные в развивающихся странах, в этих тестах не заложена возможность проверки и оптимизации приложений для медленного соединения с интернетом. На данный момент нет никаких планов по проведению таких испытаний.

Читайте по теме: Внутри амбициозного плана Facebook по объединению всего мира

В будущем лаборатория собирается тестировать устройства с большими экранами, которыми пока не занимались в Facebook. Кроме того, существуют области неэффективности, которые необходимо устранить. К примеру, чтобы перевести устройство на iOS в состояние, подходящее для испытаний, необходимо провести вручную процедуру из 20 шагов. Команда планирует сократить это количество до одного действия.

В Facebook также планируют предоставить публичный доступ к конструкции стеллажей для тестирования мобильных устройств и программному обеспечению, позволяющему перевести телефон в режим испытания. Весь этот процесс остается элементом проекта Open Compute Project – сообщества с открытым доступом к данным, созданного Facebook в 2011 году для обмена оборудованием и ПО для дата-центров. Таким образом, говорит Реверса, любое приложение – неважно, созданное Facebook или другим разработчиком – можно будет отладить так, что владельцы старых смартфонов тоже смогут им пользоваться.

Источник.


Материалы по теме:

Facebook будет тестировать приложения на 2000 смартфонов

Внутри амбициозного плана Facebook по объединению всего мира

Microsoft и Facebook проведут подводный трансатлантический кабель

Имперские амбиции Марка Цукерберга


comments powered by Disqus

Подпишитесь на рассылку RUSBASE

Мы будем вам писать только тогда, когда это действительно очень важно