Воплощение идеи сервисной архитектуры и применение web scale подходов начались с разработки Мобильного приложения Почты России. Казалось бы, задача была несложной, но мы сразу натолкнулись на проблемы существующей корпоративной архитектуры. Данные, необходимые приложению, в организации были, но ими было не воспользоваться так, как этого хотелось.
Чтобы достичь быстрого результата, мы делали промежуточные решения — собственные сервисы с копиями мастер-данных. Кроме того, пришлось кэшировать данные из legacy-систем, которые не могли обеспечить требуемые время ответа, доступность, устойчивость к нагрузке.
Промежуточные решения развивались, улучшались с точки зрения универсальности и надежности и постепенно заняли центральное место в сегодняшнем IT-ландшафте организации. К ним относятся новый сервис отслеживания почтовых отправлений и корпоративная шина данных.
В итоге разработка Мобильного приложения завершилась не только появлением полезного продукта, который работает на улучшение имиджа Почты России в глазах пользователей. Не менее важные для нас результаты — это технологический сдвиг в корпоративной архитектуре организации и изменение в подходах наших коллег, которые также делают новые сервисы.
3. Задача
• Необходимо сделать новое
приложение, но НАДЕЖНОЕ, УДОБНОЕ
и КРАСИВОЕ, способное ИЗМЕНИТЬ
ОТНОШЕНИЕ людей к Почте России
• Разделы – отслеживание, поиск
отделений, новости
4. Откуда берутся плохие оценки?
• Разработка 1.0 велась вендором
• Вендор действовал в рамках существующих технических
ограничений сервисов организации, и вот результат…
Как мы могли улучшить ситуацию?
• Детально проработать требования и понять, как они реализуются
• Быть все время в курсе проблем разработки
• Использовать любые способы, чтобы устранить или смягчить
существующие технические ограничения
5. И вот они, технические ограничения…
• Отслеживание – существующий
сервис устарел, не расширяем и
ненадежен
• БД с информацией об отделениях
есть, но не содержит геокоординат
и не доступна как сервис
• БД со всеми почтовыми адресами
России есть, но не доступна как
сервис
6. Решение проблемы отслеживания
• Кэшируем данные нестабильной системы отслеживания
Побочные эффекты:
• Данные кэша обновляются на 4-8 часов позже, чем сайт
russianpost.ru
• На столько же отстают и push-уведомления об изменении
статусов посылок
7. Решение проблемы поиска данных об
отделениях
• Используем OpenSource систему
полнотекстового поиска Elasticsearch
• «Заливаем» в нее дамп БД с
информацией об отделениях (адреса,
часы работы, выходные, телефоны)
• Обогащаем геокоординатами,
полученными с помощью бесплатного
сервиса Яндекс
• «Оборачиваем» REST-сервисом – поиск
по индексу отделения, поиск
ближайших к геокоординате
8. Решение проблемы поиска по почтовому
адресу
• «Заливаем» в Elasticsearch дамп
БД почтовых адресов России
• В REST-интерфейс сервиса
добавляем метод поиска
отделения, которое обслуживает
заданный адрес
9. И вот он, релиз
• 2014 год – релиз 2.0 – iOS 7.0+, Android 4.0+
• Оценка iOS – 4,5 звезды
• К оценке 4,5 по всем версиям в сумме пришли через год
10. Делаем новый сервис отслеживания?
Сервис
отслеживания
отправлений
российские
операции
зарубежные
операции
50 млн.
в сутки
единичные
запросы,
20 млн. в сутки
пакетные запросы,
50 тыс. в сутки
клиенты
12. Корпоративная шина данных
Корпоративная шина данных (КШД)
НСИ
Сервис
отслеживания
Портал
pochta.ru
Мобильное
приложение
ПО сортировочных
центров
ПО отделений
почтовой связи
13. Наши подходы применяют коллеги
• БД с информацией об отделениях
превратили в сервис
• Хорошо масштабируется
• Распространяет обновления через шину
данных (дампы/дельты)
• Рассматривается предоставление сервиса
не только внутри организации, но и для
внешних клиентов
КШД
Сервис
«Информация
об отделениях»
Мобильное
приложение
14. Мобильное приложение сегодня
iOS 8.0+ 5 (текущая версия) / 4,5 1,1 млн. 180 тыс.
Android 4.0+ 4,5 (все версии) 1,7 млн. 410 тыс.
Windows Phone 8, 10 4,6 (все версии) 125 тыс. 45 тыс.
Оценки
Активные
пользователи
(за 30 дн.)УстановкиПлатформа
16. К чему привела разработка мобильного
приложения?
• Мобильное приложение с оценкой 5 звезд
• Новый сервис отслеживания отправлений
• Корпоративная шина данных
• БД с информацией об отделениях оформлена как сервис,
предоставляет данные в том числе через шину данных
17. Чему мы научились
• Вовлекаться в продуктовую разработку
• Придерживаться сервисной архитектуры
• Использовать подходы Web Scale
• Не бояться делать дубли БД/сервисов
18. Вопросы?
(И кстати, we are hiring.)
Андрей Тимербаев
Руководитель проектов
ФГУП «Почта России»
Andrey.Timerbaev@russianpost.ru