Андрей Татаринов
Transcript of Андрей Татаринов
![Page 1: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/1.jpg)
Как устроен Enterпо версии 2013Q3
![Page 2: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/2.jpg)
● Андрей Татаринов● Опыт
○ Enter: 2012~now○ Google: 2010-2012○ HH.ru: 2009-2010○ Yandex: 2005-2009
● Цель○ Уменьшение энтропии
Обо мне
![Page 3: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/3.jpg)
● мультиканальный ритейл○ реальные магазины (терминалы и касса)○ сайт○ колл-центр○ мобильные приложения
● все сложно○ много регионов присутствия○ много складов○ много магазинов○ расчет доступности○ расчет сроков доставки
Что такое Enter?
![Page 4: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/4.jpg)
Все сложно
● Общий сток○ нет классического деления на сток интернет-
магазина и реальных магазинов● Единая бизнес-логика
○ группировка товаров по моделям/линиям/наборам
○ расчет доступности○ расчет стоимостей и сроков○ etc
● 60+ типов конфигурационных мастер-данных
![Page 5: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/5.jpg)
Все сложно: сток
![Page 6: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/6.jpg)
● 2012Q1 Старт● 2012Q1~2013Q1
○ Стабилизация фронтов○ Переход на синхронный внутренний API○ Развитие бизнес-логики
● 2013Q1~now○ Развитие сервисной инфраструктуры
■ Новый поиск/листинги на sphinx■ Новая CMS
○ Внедрение ESB для интеграции stateful сервисов○ Рефакторинг обменов 1С, WEBCORE, etc.
Этапы развития информационной системы
![Page 7: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/7.jpg)
Как это было на старте 2012Q1
● Результат трехмесячного спринта● Фронты - отдельные независимые
системы○ сайт, терминалы, мобильные, соц.приложения○ разрабатывались параллельно независимыми
командами○ stateful○ собственная база○ собственная реализация бизнес-логики○ независимое состояние синхронизации
![Page 8: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/8.jpg)
Как это было старте 2012Q1: Проблемы
● Нестабильный сайт● Рассинхронизация между фронтами и
учетной системой● Несоответствие бизнес-логики между
фронтами● Нестабильные протоколы обменов
○ потеря данных
![Page 9: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/9.jpg)
Как это было старте 2012Q1: Нестабильный сайт
![Page 10: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/10.jpg)
2013Q3: Существенно лучше
![Page 11: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/11.jpg)
2012Q1: Компоненты
![Page 12: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/12.jpg)
2012Q1: Технологии
![Page 13: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/13.jpg)
2012Q1: Проблемы
![Page 14: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/14.jpg)
2012Q1: Первая итерация рефакторинга
● убить синхронизацию между WEBCORE и фронтами
● stateless-фронты● внутренний API
○ HTTP+JSON● роли фронта:
○ преобразование запроса клиента в несколько запросов API
○ агреггация данных○ визуализация данных
● новые вспомогательные сервисы
![Page 15: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/15.jpg)
2012Q1: Рефакторинг
![Page 16: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/16.jpg)
2013Q1: Компоненты
![Page 17: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/17.jpg)
2013Q1: Технологии
![Page 18: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/18.jpg)
Как строится страница
![Page 19: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/19.jpg)
Как строится страница
![Page 20: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/20.jpg)
RW/RO-API и терминалы
● RO○ RO/RW ≈ 100/1○ репликация○ горизонтальное масштабирование
● Магазины○ ~80 магазинов○ ~400 терминалов○ плохой канал○ большие запросы от терминалов○ локальные реплики RO-core○ mysql-репликация○ проксирование RW на площадку
![Page 21: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/21.jpg)
RW/RO-API и терминалы
![Page 22: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/22.jpg)
2013Q1: Проблемы
![Page 23: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/23.jpg)
2013Q1: Проблемы
![Page 24: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/24.jpg)
2013Q1: Вторая итерация рефакторинга
● Декомпозиция WEBCORE○ CORE - бизнес-логика, доступность, цены○ CMS - описания товаров, каталог○ Search - листинги и поиск
● Внедрение ESB Apache ServiceMix● Переработка интеграции сервисов
○ 1С○ WEBCORE○ Search○ OLAP○ etc
![Page 25: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/25.jpg)
2013Q1: Вторая итерация рефакторинга
![Page 26: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/26.jpg)
2013Q4: Компоненты
![Page 27: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/27.jpg)
2013Q4: Технологии
![Page 28: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/28.jpg)
ESB: Apache ServiceMix
● Альтернативы○ MuleESB○ WSO2 ESB○ JBoss ESB○ Apache ServiceMix
● Нагрузка○ Основная синхронизация CORE ↔ 1C: ~3000
пакетов, 2Gb данных○ CORE ↔ Sphinx: ~300000-500000 пакетов
![Page 29: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/29.jpg)
Итого
● Не копировать информацию без необходимости○ stateless > stateful
● Не усложнять○ поддерживать компоненты простыми
● Использовать готовые инструменты
![Page 30: Андрей Татаринов](https://reader034.fdocuments.us/reader034/viewer/2022042818/55b626f6bb61ebfa618b475b/html5/thumbnails/30.jpg)
Спасибо
Андрей Татаринов@elephantum