На чем написан ватсап
Перейти к содержимому

На чем написан ватсап

  • автор:

На чём написан WhatsApp?

На чём написан WhatsApp?

Ян Кум и Брайан Эктон, основатели самого популярного в мире сервиса мгновенных сообщений WhatsApp (более 900 млн пользователей в месяц), за который Facebook заплатил $19 млрд, редко дают интервью. Однако корреспонденту Wired всё же удалось получить ответы Эктона по электронной почте, в которых тот объяснил, почему инженерная команда WhatsApp из 50 человек использует два непопулярных инструмента разработки ПО для создания суперпопулярного мессенджера.

Брайан Экстон (слева) и Ян Кум. Фото: Forbes.

Кросс-платформенное приложение 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
  • whatsapp
  • 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 Брайан Эктон и Ян Кум

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

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

Експертний курс від mate.academy: IT Рекрутмент Вечірній.
Експертний курс від mate.academy: IT Рекрутмент Вечірній.

Чем проще, тем лучше

В WhatsApp следуют принципу «достаточной инженерии», избегая чрезмерного инвестирования в системы и компоненты. Вместо этого в компании делают акцент на масштабируемости, безопасности и надежности.

Шаблон интерфейса 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.

А обо всех инструментах и техниках, которые в компании используют для масштабирования, можно почитать здесь .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *