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

9,897 views

Published on

Published in: Technology
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/2ZDZFYj ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2ZDZFYj ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • @alexanderoleinik80
    - релиз в мире PHP - это простая операция, просто подмена дерева исходников на лету
    - обратная совместимость, конечно обеспечивается, перед релизом API мы тестируем все текущие фронты на корректную работоспособность с новой версией сервисов
    - требования к разработке: не ломать обратную совместимость :)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Как релизятся новые версии компонентов? Обеспечивается ли обратная совместимость на новых версиях (АПИ и работа с БД) и если да, то какие связанные с этим требования накладываются на разработку?
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • очень наглядно, чётко, душа радуется))) наш вам респект!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

×