На чём написан WhatsApp?
Ян Кум и Брайан Эктон, основатели самого популярного в мире сервиса мгновенных сообщений WhatsApp (более 900 млн пользователей в месяц), за который Facebook заплатил $19 млрд, редко дают интервью. Однако корреспонденту Wired всё же удалось получить ответы Эктона по электронной почте, в которых тот объяснил, почему инженерная команда WhatsApp из 50 человек использует два непопулярных инструмента разработки ПО для создания суперпопулярного мессенджера.
Кросс-платформенное приложение WhatsApp, обрабатывающее миллиарды сообщений ежедневно, было построено с помощью «двух прекрасных инструментов», как их называет Эктон — операционной системы FreeBSD и языка программирования Erlang.
По словам Брайана, его с Кумом выбор пал на FreeBSD, потому что они оба использовали эту операционную систему во время работы в Yahoo.
«FreeBSD имеет прекрасно настроенный сетевой стек и чрезвычайно высокую надёжность. Добавьте к этому и довольно простое управление установками», — отметил Эктон.
Отвечая на вопрос, почему команда WhatsApp предпочла FreeBSD Linux’у, он отметил «невероятную сложность» последней: «Преимущество FreeBSD заключается в едином дистрибутиве и чрезвычайно хорошей коллекции портов».
Говоря о выборе языка Erlang, сооснователь WhatsApp заметил, что всё произошло само собой. «Наши оригинальные чат-серверы строились на Erlang. Таким образом, нам удалось использовать возможности языка Erlang для развития нашего сервиса и поддержания очень высокой работоспособности», — сказал Брайан Эктон.
При этом, ни у Кума, ни у Эктона не было опыта работы с Erlang. «Однако на протяжении всего пути Erlang показал себя очень надёжным и производительным языком. Столкнись мы со значительными препятствиями, мы бы, вероятно, отказались от Erlang в пользу другого языка. К счастью, этого не произошло», — поведал Брайан Эктон, добавив, что Erlang идеально подходит как для коммуникаций в режиме реального времени, так и хорошо себя зарекомендовал языком общего назначения.
В ноябре 2014 года второй сооснователь WhatsApp Ян Кум пожертвовал миллион долларов FreeBSD, что стало крупнейшим в истории проекта пожертвованием, размер которого превысил годовой бюджет FreeBSD Foundation.
На чем написан ватсап
В этом году мессенджер WhatsApp разрешил привязку аккаунта к ПК. Это позволяет пользователям выполнять звонки и писать сообщения без наличия смартфона с установленным WhatsApp.
Теперь было представлено официальное приложение для Windows. Вместо прежней веб-версии пользователи получили полноценную программу в магазине Microsoft App Store.
реклама
Приложение работает более плавно по сравнению с веб-версией. Интерфейс был переработан в соответствии с внешним видом Windows.
Пользователям снова придётся привязывать приложение к учётной записи WhatsApp на смартфоне. После подключения устройств можно использовать сквозное шифрование при переписке, звонках и т.д. Когда смартфон в автономном режиме, можно задействовать до четырёх связанных устройств. По прошествии 14 дней с момента последнего использования смартфона связанные устройства автоматически отключаются.
Ещё будет выпущено приложение WhatsApp для macOS. Сейчас идёт его закрытое бета-тестирование. Оно появится как универсальное приложение, так что будет построено на приложении WhatsApp для iPhone и работать на ноутбуках Apple с её процессорами, пишет Gizmochina.
На каком языке(-ах) программирования написана ВЕБ-версия Telegram, WhatsApp, Viber, Signal и Zoom?
Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.
- веб-программирование
- telegram
- viber
- zoom
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
1 млрд пользователей и всего 50 инженеров-программистов — как WhatsApp устроен изнутри
В феврале 2009 года появился мессенджер под названием WhatsApp (в 2014 году его приобрел Facebook). С тех пор количество его пользователей выросло до 1 млрд, при этом компания славится небольшим штатом — раньше там заявляли, что над мессенджером работают всего 50 инженеров-программистов. Об инженерной культуре и технологическом стеке, благодаря которым это стало возможным, читайте далее.
Творчий курс від skvot: 3D-художник персонажів.
Створюйте світ персонажів.
В 2016 году количество пользователей WhatsApp перевалило за 1 млрд. Статистика нагрузки выглядела следующим образом:
-
42 млрд сообщений ежедневно;
Освітній курс від robotdreams: Аналітик даних.
Перетворюйте дані на рішення.
Такие объемы обслуживала команда всего из 50 человек, и вот как это стало возможным.
Инженерная культура
Инженерная культура WhatsApp базируется на трех основных принципах:
- чем меньше, тем лучше;
- чем проще, тем лучше;
Обо всем по порядку.
Чем меньше, тем лучше
В WhatsApp осознанно не расширяют команду, над проектом трудятся всего 50 человек. Отдельные инженерные команды также невелики и состоят из 1–3 специалистов, причем каждая группа работает независимо от другой.
Создатели мессенджера WhatsApp Брайан Эктон и Ян Кум
Что касается серверов, то боссы WhatsApp предпочитают, чтобы их было немного, но при этом они были вертикально масштабированы в максимально возможной степени. Меньшее количество серверов означает меньшее количество поломок, что облегчает работу команды.
То же самое относится и к программной части, где специалисты компании намеренно ограничивают общее количество систем и компонентов в производстве, что означает меньшее количество систем, которые необходимо разрабатывать, внедрять и поддерживать.
Експертний курс від mate.academy: IT Рекрутмент Вечірній.
Експертний курс від mate.academy: IT Рекрутмент Вечірній.
Чем проще, тем лучше
В WhatsApp следуют принципу «достаточной инженерии», избегая чрезмерного инвестирования в системы и компоненты. Вместо этого в компании делают акцент на масштабируемости, безопасности и надежности.
Шаблон интерфейса WhatsApp
При выборе технических решений в WhatsApp сначала стараются ответить на вопрос: «какой подход самый простой?». Кроме того, в компании стараются не инвестировать в автоматизацию, если можно обойтись без нее.
Все члены команды должны сосредоточиться на общей миссии
Дизайн WhatsApp хорошо проработан. Он нацелен на создание коммуникационного приложения с хорошим UI и без лишних наворотов. В компании стараются не внедрять функции, которые не предназначены для коммуникаций. Чем проще продукт, тем проще его поддерживать и масштабировать.
Технический стек
Стек технологий WhatsApp состоит из трех основных компонентов:
Erlang
Это язык программирования, на котором написан бэкенд WhatsApp. Erlang был разработан для параллелизма, его особенность — первоклассная отказоустойчивость . Подробнее об этом можно почитать здесь . Благодаря этому Erlang-разработчики достигают высокой производительности, однако это функциональный язык программирования, поэтому пользователь должен к нему привыкнуть, если не знаком с его парадигмой. Язык очень лаконичен, и на нем легко выполнять задачи с минимум кода.
Пример синтаксиса Erlang:
-module(db). -export([new/0,destroy/1,write/3,delete/2,read/2,match/2]). new()->[]. destroy(_)->ok. write(Key, Element, Db)->[] ++ Db. read(Key, []) ->; read(Key, [|_])->; read(Key, [|T])->read(Key,T). delete(Key,[])->[]; delete(Key,[|T])->T; delete(Key,[H|T]) -> [H| delete(Key,T)]. match(Element, [])->[]; match(Element, [|T])->[Key| match(Element,T)]; match(Element, [|T])->match(Element,T).
OTP (Open Telecom Platform) — это коллекция промежуточного программного обеспечения с открытым исходным кодом, библиотек и инструментов для Erlang. В WhatsApp стараются максимально избегать зависимостей, но используют распределенную базу данных Mnesia , которая является частью OTP.
Високорівневий курс від laba: Фінансовий аналіз.
Оцінюйте фінансову стабільність та перспективи.
Язык поддерживает «горячую» замену кода. То есть пользователь может загрузить новый код в рабочее приложение без перезапуска. Это делает цикл итераций очень быстрым и позволяет WhatsApp выпускать быстрые исправления и обеспечивает длительное время бесперебойной работы серверов.
FreeBSD
Это операционная система, которую WhatsApp использует для своих серверов. Решение использовать FreeBSD создатели мессенджера приняли на основе своего предыдущего опыта работы в Yahoo.
Узнать, как именно в WhatsApp используется FreeBSD, можно в докладе по ссылке .
SoftLayer
Это хостинговая платформа, которую WhatsApp использовал в 2016 году. Выбор пал на нее по двум причинам:
- доступность FreeBSD как первоклассной операционной системы;
- возможность заказа и эксплуатации «голых» серверов.
Минус в том, что SoftLayer принадлежит IBM, поэтому со временем WhatsApp перешел от этой платформы на инфраструктуру Facebook.
А обо всех инструментах и техниках, которые в компании используют для масштабирования, можно почитать здесь .