Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

CMS magazine 2013: как устроен enter

  • Be the first to comment

CMS magazine 2013: как устроен enter

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

    Be the first to comment

    Login to see the comments

  • toivo

    Oct. 1, 2013
  • glebshulishov

    Oct. 1, 2013
  • devyru

    Oct. 1, 2013
  • kulachikova

    Oct. 1, 2013
  • MikhailZhukov

    Oct. 1, 2013
  • bilozorov

    Oct. 1, 2013
  • alinatekucheva

    Oct. 1, 2013
  • Upperhigh

    Oct. 1, 2013
  • vladimirovaoksana

    Oct. 1, 2013
  • DigniitaChunaOrozco

    Oct. 1, 2013
  • weborub1

    Oct. 1, 2013
  • Ostrovok_ru

    Oct. 2, 2013
  • ostrerov

    Oct. 2, 2013
  • levinside

    Oct. 2, 2013
  • vvanchikov

    Oct. 2, 2013
  • bas4all

    Oct. 2, 2013
  • ibeono

    Oct. 7, 2013
  • KostasZhukov

    Nov. 8, 2013
  • andreyborue

    Nov. 25, 2013
  • polyanskiyilya

    Feb. 23, 2015

Views

Total views

10,328

On Slideshare

0

From embeds

0

Number of embeds

5,177

Actions

Downloads

68

Shares

0

Comments

0

Likes

28

×