50 инженеров на 900 млн пользователей: опыт WhatsApp

1125ec262e7840c2b71c11371e397b6f.jpg

В нашем блоге мы рассказываем об опыте разных компаний по работе с инфраструктурой и пишем о том, как сами работаем над созданием облачного провайдера 1cloud. За несколько лет мы добились определенного прогресса в условиях ограниченных ресурсов, а у блога молодого проекта появилось множество читателей).

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

900 миллионов пользователей


4 сентября сооснователь WhatsApp Ян Кум написал в своем Facebook о том, что число пользователей мессенджера достигло 900 млн. Первым комментарием к записи стало поздравление от основателя соцсети Марка Цукерберга, который чуть больше года назад выложил за WhatsApp $19 млрд.

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

На момент сделки с Facebook в команде WhatsApp было 35 инженеров, которые обеспечивали работу сервиса для 450 млн пользователей. Теперь пользователей удвоилось, а инженеров стало только 50. Представители проекта редко рассказывают о том, как выстроены их рабочие процессы, однако на недавно на одном из мероприятий для разработчиков, инженер WhatsApp Джамшид Махдави (Jamshid Mahdavi) раскрыл некоторые подходы компании.

Erlang и мессенджеры


Системы мессенджера создаются с помощью языка программирования Erlang, который хорошо подходив для обеспечения параллельной работы различных процессов.

Чем больше пользователей и число задач, которые они ставят перед сервисом, тем востребованнее подобные языки. К примеру, для создания антиспам-системы Facebook использовался Haskell, который был создан в 80 годах в рамках академического эксперимента и до сих пор не так уж широко используется. Однако для задач Facebook очень важна возможность одновременной обработки множества событий, и здесь Haskell подходит очень хорошо. В свою очередь Google и Mozilla используют для похожих задач новые языки Go и Rust.

Как и Haskell, Erlang родился в 80-х — первая версия платформы была разработана сотрудниками Ericsson Джо Армстронгом, Робертом Вирдингом и Майком Уильямсом в 1986 году. Изначально язык был закрытым и использовался только для внутренних проектов компании, однако в дальнейшем руководство Ericsson отказалось от поддержки внутреннего языка программирования в пользу Java и других платформ. В итоге код платформы был открыт под лицензией Erlang Public License.

Покинувшие Ericsson разработчики Erlang продолжили заниматься его развитием, поэтому он продолжил свою жизнь. С началом эпохи мессенджером у Erlang открылось второе дыхание — язык активно используется не только командой WhatsApp, но и разработчиками таких приложений, как WeChat и Whisper, которым также важна масштабируемость и надежность, а также высокая скорость разработки (что является одним из плюсов Erlang).

Нужно все упрощать


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

Вице-президент соцсети по инженерии Джей Парик (Jay Parikh) называет Erlang
«маленьким островом, для связи которого с большой землей нужно слишком много лодок».

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

Мы стараемся нанимать талантливых инженеров, а не тех, кто просто знает Erlang& Когда мы нанимаем нового разработчика, то хотим, чтобы первое время он осваивал новый язык и средой его использования. Если инженер талантлив, он сможет это сделать и без большого опыта работы с этим конкретным языком.


Кроме того, Махдави говорит, что справляться таким небольшим количеством людей компании удается из-за ее культуры, в которой не приветствуются вещи, которые отвлекают — будь то использование новых «горячих» технологий или разнообразные совещания. В WhatsApp работают всего несколько десятков человек, и они никогда не тратят время на встречи.

© Habrahabr.ru