Алексей Андросов "Яндекс.Почта: архитектура фронтенда как она есть"
Мобильная Яндекс.Почта — Дмитрий Александров
-
Upload
yandex -
Category
Technology
-
view
496 -
download
0
description
Transcript of Мобильная Яндекс.Почта — Дмитрий Александров
Бекенд нового мобильного приложения Яндекс.Почты
Дмитрий Александров, разработчик Я.Субботник, Нижний Новгород, 13.12.14
27млн активных пользователей по TNS
48% людей имеют Яндекс.Почту (РФ)
50 человек работают над сервисом
15млн писем отправляется в день
100млн писем получают в день
1.5млн
установок Android-приложения
2
Что такое Яндекс.Почта?
Старое приложение
app
- (xmpp)
- server
- (http)
- api
- (xml)
- backend
3
Новое приложение
app -
(http)
- api
- (js)
- backend
nginx + baida + tracemonkey + wmi
4
oracle (bit.ly/nn_ora)
postgreSQL (bit.ly/nn_pg)
mongoDB (bit.ly/nn_mg)
hbase (bit.ly/nn_hb)
zookeeper (bit.ly/nn_zk)
mulca
5
Backend
Отдельное.
- Изолированность - Гибкость
6
Общее или отдельное API?
json
gzip
spdy (bit.ly/nn_spdy)
7
Как ускорить транспорт?
md5-дайджесты чанков
8
Как минимизировать данные?
0
200
400
600
md5
lcn
lcn-ревизии контейнеров
9
Можно ли делать меньше запросов?
список папок
ящик
папка1 папка2
список тредов список тредов
тред1 тред2 тред3 тред4
список писемсписок писем список писем
список писем
письма письма письма письма письма
Комбинирование вызовов
- агрегация методов - мультизапросы {"requests":[
{"id" : "1", "first" : 0, "last" : 200, "param" : "value"},
{"id" : "2", "first" : 200, "last" : 400, "param" : "value"}
]}
10
А еще меньше?
Инкапсуляция
Единая точка входа
11
Как работать с другими сервисами?
приложение
апи
бекенд2 сервис1 сервис2
бекенд
Версионирование интерфейса
/api/v2/method
12
Как вносить несовместимые изменения?
Да, есть.
- долгий первый старт - тяжелая пересинхронизация - большая и неравномерная нагрузка
13
Есть ли специфика у оффлайна?
Профиль нагрузки Масштабирование
14
Как тестировать нагрузочно?
[email protected] http://company.yandex.ru/contacts/novgorod/
Спасибо за внимание