SlideShare a Scribd company logo
1 of 30
Download to read offline
Как устроен Enter
по версии 2013Q3
● Андрей Татаринов
● Опыт
○ Enter: 2012~now
○ Google: 2010-2012
○ HH.ru: 2009-2010
○ Yandex: 2005-2009
● Цель
○ Уменьшение энтропии
Обо мне
● мультиканальный ритейл
○ реальные магазины (терминалы и касса)
○ сайт
○ колл-центр
○ мобильные приложения
● все сложно
○ много регионов присутствия
○ много складов
○ много магазинов
○ расчет доступности
○ расчет сроков доставки
Что такое Enter?
Все сложно
● Общий сток
○ нет классического деления на сток интернет-
магазина и реальных магазинов
● Единая бизнес-логика
○ группировка товаров по
моделям/линиям/наборам
○ расчет доступности
○ расчет стоимостей и сроков
○ etc
● 60+ типов конфигурационных мастер-
данных
Все сложно: сток
● 2012Q1 Старт
● 2012Q1~2013Q1
○ Стабилизация фронтов
○ Переход на синхронный внутренний API
○ Развитие бизнес-логики
● 2013Q1~now
○ Развитие сервисной инфраструктуры
■ Новый поиск/листинги на sphinx
■ Новая CMS
○ Внедрение ESB для интеграции stateful сервисов
○ Рефакторинг обменов 1С, WEBCORE, etc.
Этапы развития информационной
системы
Как это было на старте 2012Q1
● Результат трехмесячного спринта
● Фронты - отдельные независимые
системы
○ сайт, терминалы, мобильные, соц.приложения
○ разрабатывались параллельно независимыми
командами
○ stateful
○ собственная база
○ собственная реализация бизнес-логики
○ независимое состояние синхронизации
Как это было на старте 2012Q1:
Проблемы
● Нестабильный сайт
● Рассинхронизация между фронтами и
учетной системой
● Несоответствие бизнес-логики между
фронтами
● Нестабильные протоколы обменов
○ потеря данных
Как это было на старте 2012Q1:
Нестабильный сайт
2013Q3: Существенно лучше
2012Q1: Компоненты
2012Q1: Технологии
2012Q1: Проблемы
2012Q1: Первая итерация
рефакторинга
● убить синхронизацию между WEBCORE и
фронтами
● stateless-фронты
● внутренний API
○ HTTP+JSON
● роли фронта:
○ преобразование запроса клиента в несколько
запросов API
○ агреггация данных
○ визуализация данных
● новые вспомогательные сервисы
2012Q1: Рефакторинг
2013Q1: Компоненты
2013Q1: Технологии
Как строится страница
Как строится страница
RW/RO-API и терминалы
● RO
○ RO/RW ≈ 100/1
○ репликация
○ горизонтальное масштабирование
● Магазины
○ ~80 магазинов
○ ~400 терминалов
○ плохой канал
○ большие запросы от терминалов
○ локальные реплики RO-core
○ mysql-репликация
○ проксирование RW на площадку
RW/RO-API и терминалы
2013Q1: Проблемы
2013Q1: Проблемы
2013Q1: Вторая итерация
рефакторинга
● Декомпозиция WEBCORE
○ CORE - бизнес-логика, доступность, цены
○ CMS - описания товаров, каталог
○ Search - листинги и поиск
● Внедрение ESB Apache ServiceMix
● Переработка интеграции сервисов
○ 1С
○ WEBCORE
○ Search
○ OLAP
○ etc
2013Q1: Вторая итерация
рефакторинга
2013Q4: Компоненты
2013Q4: Технологии
ESB: Apache ServiceMix
● Альтернативы
○ MuleESB
○ WSO2 ESB
○ JBoss ESB
○ Apache ServiceMix
● Нагрузка
○ Основная синхронизация CORE ↔ 1C: ~3000
пакетов, 2Gb данных
○ CORE ↔ Sphinx: ~300000-500000 пакетов
Итого
● Не копировать информацию без
необходимости
○ stateless > stateful
● Не усложнять
○ поддерживать компоненты простыми
● Использовать готовые инструменты
Спасибо
Андрей Татаринов
@elephantum

More Related Content

Viewers also liked

Прикладные игры
Прикладные игры Прикладные игры
Прикладные игры Alexey Kulakov
 
Образовательные и игровые платформы в помощь учителю и методисту
Образовательные и игровые платформы в помощь учителю и методистуОбразовательные и игровые платформы в помощь учителю и методисту
Образовательные и игровые платформы в помощь учителю и методистуEvgeny Smirnov
 
T&D Dive SOLUTIONS DAY 2014
T&D Dive SOLUTIONS DAY 2014T&D Dive SOLUTIONS DAY 2014
T&D Dive SOLUTIONS DAY 2014Margarita Fatina
 
Игра в программирование? Настольные игры для обучения программированию
Игра в программирование? Настольные игры для обучения программированиюИгра в программирование? Настольные игры для обучения программированию
Игра в программирование? Настольные игры для обучения программированиюАнатолий Шперх
 
Презентация ИПР
Презентация ИПРПрезентация ИПР
Презентация ИПРIpolito
 
Дмитрий Петрович Соловьев Основы андрагогики Особенности обучения взрослых
Дмитрий Петрович Соловьев Основы андрагогики Особенности обучения взрослыхДмитрий Петрович Соловьев Основы андрагогики Особенности обучения взрослых
Дмитрий Петрович Соловьев Основы андрагогики Особенности обучения взрослыхДмитрий Соловьев
 
Мобильное обучение: мода, миф или реальность?
Мобильное обучение: мода, миф или реальность?Мобильное обучение: мода, миф или реальность?
Мобильное обучение: мода, миф или реальность?Elena Tikhomirova
 
ИПР сотрудника как инструмент развития
ИПР сотрудника как инструмент развитияИПР сотрудника как инструмент развития
ИПР сотрудника как инструмент развитияHRedu.ru
 
Co-labs - профессиональное стартап-сообщество
Co-labs - профессиональное стартап-сообществоCo-labs - профессиональное стартап-сообщество
Co-labs - профессиональное стартап-сообществоGor Matevosyan
 
Мотивация к обучению
Мотивация к обучениюМотивация к обучению
Мотивация к обучениюElena Tikhomirova
 
Мастер-класс "Создание учебного видео"
Мастер-класс "Создание учебного видео"Мастер-класс "Создание учебного видео"
Мастер-класс "Создание учебного видео"Svetlana Ponomarenko
 
формальное, неформальное, информальное и социальное обучение
формальное, неформальное, информальное и социальное обучениеформальное, неформальное, информальное и социальное обучение
формальное, неформальное, информальное и социальное обучениеVladimir Kukharenko
 
Вебинар: Технологии разработки индивидуальных планов развития
Вебинар: Технологии разработки индивидуальных планов развитияВебинар: Технологии разработки индивидуальных планов развития
Вебинар: Технологии разработки индивидуальных планов развитияTraining Institute - ARB Pro Group
 
22 enter svyaznoy
22 enter svyaznoy22 enter svyaznoy
22 enter svyaznoysouthmos
 
Они не идиоты: как мы мешаем сотрудникам учиться
Они не идиоты: как мы мешаем сотрудникам учитьсяОни не идиоты: как мы мешаем сотрудникам учиться
Они не идиоты: как мы мешаем сотрудникам учитьсяElena Tikhomirova
 
Корпоративная культура счастье и гуманистический подход в работе HR
Корпоративная культура счастье и гуманистический подход в работе HRКорпоративная культура счастье и гуманистический подход в работе HR
Корпоративная культура счастье и гуманистический подход в работе HRMike Pritula
 
Brand "Enter" strategy
Brand "Enter" strategyBrand "Enter" strategy
Brand "Enter" strategyMikhail Starov
 

Viewers also liked (20)

Прикладные игры
Прикладные игры Прикладные игры
Прикладные игры
 
Образовательные и игровые платформы в помощь учителю и методисту
Образовательные и игровые платформы в помощь учителю и методистуОбразовательные и игровые платформы в помощь учителю и методисту
Образовательные и игровые платформы в помощь учителю и методисту
 
T&D Dive SOLUTIONS DAY 2014
T&D Dive SOLUTIONS DAY 2014T&D Dive SOLUTIONS DAY 2014
T&D Dive SOLUTIONS DAY 2014
 
Игра в программирование? Настольные игры для обучения программированию
Игра в программирование? Настольные игры для обучения программированиюИгра в программирование? Настольные игры для обучения программированию
Игра в программирование? Настольные игры для обучения программированию
 
«Как мотивировать пользователей оставлять отзывы о вас». Вебинар WebPromoExpe...
«Как мотивировать пользователей оставлять отзывы о вас». Вебинар WebPromoExpe...«Как мотивировать пользователей оставлять отзывы о вас». Вебинар WebPromoExpe...
«Как мотивировать пользователей оставлять отзывы о вас». Вебинар WebPromoExpe...
 
Презентация ИПР
Презентация ИПРПрезентация ИПР
Презентация ИПР
 
Дмитрий Петрович Соловьев Основы андрагогики Особенности обучения взрослых
Дмитрий Петрович Соловьев Основы андрагогики Особенности обучения взрослыхДмитрий Петрович Соловьев Основы андрагогики Особенности обучения взрослых
Дмитрий Петрович Соловьев Основы андрагогики Особенности обучения взрослых
 
Мобильное обучение: мода, миф или реальность?
Мобильное обучение: мода, миф или реальность?Мобильное обучение: мода, миф или реальность?
Мобильное обучение: мода, миф или реальность?
 
ИПР сотрудника как инструмент развития
ИПР сотрудника как инструмент развитияИПР сотрудника как инструмент развития
ИПР сотрудника как инструмент развития
 
Co-labs - профессиональное стартап-сообщество
Co-labs - профессиональное стартап-сообществоCo-labs - профессиональное стартап-сообщество
Co-labs - профессиональное стартап-сообщество
 
Мотивация к обучению
Мотивация к обучениюМотивация к обучению
Мотивация к обучению
 
Мастер-класс "Создание учебного видео"
Мастер-класс "Создание учебного видео"Мастер-класс "Создание учебного видео"
Мастер-класс "Создание учебного видео"
 
формальное, неформальное, информальное и социальное обучение
формальное, неформальное, информальное и социальное обучениеформальное, неформальное, информальное и социальное обучение
формальное, неформальное, информальное и социальное обучение
 
Вебинар: Технологии разработки индивидуальных планов развития
Вебинар: Технологии разработки индивидуальных планов развитияВебинар: Технологии разработки индивидуальных планов развития
Вебинар: Технологии разработки индивидуальных планов развития
 
Вебинар "Мотивация"
Вебинар "Мотивация"Вебинар "Мотивация"
Вебинар "Мотивация"
 
22 enter svyaznoy
22 enter svyaznoy22 enter svyaznoy
22 enter svyaznoy
 
Они не идиоты: как мы мешаем сотрудникам учиться
Они не идиоты: как мы мешаем сотрудникам учитьсяОни не идиоты: как мы мешаем сотрудникам учиться
Они не идиоты: как мы мешаем сотрудникам учиться
 
описание рус информбюро
описание рус информбюроописание рус информбюро
описание рус информбюро
 
Корпоративная культура счастье и гуманистический подход в работе HR
Корпоративная культура счастье и гуманистический подход в работе HRКорпоративная культура счастье и гуманистический подход в работе HR
Корпоративная культура счастье и гуманистический подход в работе HR
 
Brand "Enter" strategy
Brand "Enter" strategyBrand "Enter" strategy
Brand "Enter" strategy
 

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

Сергей Синица. Разработка интернет-магазинов на Drupal
Сергей Синица. Разработка интернет-магазинов на DrupalСергей Синица. Разработка интернет-магазинов на Drupal
Сергей Синица. Разработка интернет-магазинов на DrupalDrupalSib
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Ontico
 
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в суткиРоман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в суткиNaZapad
 
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...e-Legion
 
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Ontico
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HRKonstantin Osipov
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016Alex Chistyakov
 
Универсальные коммуникации в облаке. Т.Савлаев.
Универсальные коммуникации в облаке. Т.Савлаев.Универсальные коммуникации в облаке. Т.Савлаев.
Универсальные коммуникации в облаке. Т.Савлаев.Clouds NN
 
Павел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыПавел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыUA Mobile
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Tanya Denisyuk
 
Автоматизация работы регионально распределенного офиса продаж
Автоматизация работы регионально распределенного офиса продажАвтоматизация работы регионально распределенного офиса продаж
Автоматизация работы регионально распределенного офиса продажARTW
 
Оптимизация складских запасов и автозаказ
Оптимизация складских запасов и автозаказОптимизация складских запасов и автозаказ
Оптимизация складских запасов и автозаказDmitriy Shtanichev
 
Как в Itiviti устроен процесс документации
Как в Itiviti устроен процесс документацииКак в Itiviti устроен процесс документации
Как в Itiviti устроен процесс документацииStiltsoft
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примереSergey Xek
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConAlex Chistyakov
 
роман петров интеграция интернет магазина с 1с
роман петров  интеграция интернет магазина с 1сроман петров  интеграция интернет магазина с 1с
роман петров интеграция интернет магазина с 1сdirectline-sib
 
4.Подключаем сайт к 1С. Петров Роман
4.Подключаем сайт к 1С. Петров Роман4.Подключаем сайт к 1С. Петров Роман
4.Подключаем сайт к 1С. Петров Романdirectline-sib
 
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIPОмские ИТ-субботники
 

Similar to CMS magazine 2013: как устроен enter (20)

Сергей Синица. Разработка интернет-магазинов на Drupal
Сергей Синица. Разработка интернет-магазинов на DrupalСергей Синица. Разработка интернет-магазинов на Drupal
Сергей Синица. Разработка интернет-магазинов на Drupal
 
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
Простая и дешёвая бизнес-аналитика на базе Google BigQuery / Алексей Паршуков...
 
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в суткиРоман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
Роман рыбальченко - веб аналитика при посещаемости от 100 000 до 2 млн в сутки
 
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
#MBLTdev: Практический пример переиспользования кода. Как повысить качество и...
 
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
Как 100 000 раз в секунду выбирать правильный рекламный материал? Programmati...
 
Говорим о СУБД языком HR
Говорим о СУБД языком HRГоворим о СУБД языком HR
Говорим о СУБД языком HR
 
My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016My talk on HBase ops engineering at TBD Jun 2016
My talk on HBase ops engineering at TBD Jun 2016
 
Универсальные коммуникации в облаке. Т.Савлаев.
Универсальные коммуникации в облаке. Т.Савлаев.Универсальные коммуникации в облаке. Т.Савлаев.
Универсальные коммуникации в облаке. Т.Савлаев.
 
Павел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузерыПавел Юрийчук - Разработка приложений под мобильные браузеры
Павел Юрийчук - Разработка приложений под мобильные браузеры
 
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
Андрей Федоренчик- «Высоконагруженная система с аналитикой на InfoBright»
 
Автоматизация работы регионально распределенного офиса продаж
Автоматизация работы регионально распределенного офиса продажАвтоматизация работы регионально распределенного офиса продаж
Автоматизация работы регионально распределенного офиса продаж
 
Оптимизация складских запасов и автозаказ
Оптимизация складских запасов и автозаказОптимизация складских запасов и автозаказ
Оптимизация складских запасов и автозаказ
 
Зачем ускорять сайты
Зачем ускорять сайтыЗачем ускорять сайты
Зачем ускорять сайты
 
Как в Itiviti устроен процесс документации
Как в Itiviti устроен процесс документацииКак в Itiviti устроен процесс документации
Как в Itiviti устроен процесс документации
 
Путь к Go на конкретном примере
Путь к Go на конкретном примереПуть к Go на конкретном примере
Путь к Go на конкретном примере
 
My talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPConMy talk on Hadoop stack operations engineering at OSPCon
My talk on Hadoop stack operations engineering at OSPCon
 
Визуализация отчетов с помощью Data Studio и Power BI
Визуализация отчетов с помощью Data Studio и Power BIВизуализация отчетов с помощью Data Studio и Power BI
Визуализация отчетов с помощью Data Studio и Power BI
 
роман петров интеграция интернет магазина с 1с
роман петров  интеграция интернет магазина с 1сроман петров  интеграция интернет магазина с 1с
роман петров интеграция интернет магазина с 1с
 
4.Подключаем сайт к 1С. Петров Роман
4.Подключаем сайт к 1С. Петров Роман4.Подключаем сайт к 1С. Петров Роман
4.Подключаем сайт к 1С. Петров Роман
 
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
 

More from Andrey Tatarinov

ML on the Edge - Highload++ Siberia 2019
ML on the Edge - Highload++ Siberia 2019ML on the Edge - Highload++ Siberia 2019
ML on the Edge - Highload++ Siberia 2019Andrey Tatarinov
 
Масштабирование CinemaVR
Масштабирование CinemaVRМасштабирование CinemaVR
Масштабирование CinemaVRAndrey Tatarinov
 
Стачка 2017: CinemaVR - история запуска
Стачка 2017: CinemaVR - история запускаСтачка 2017: CinemaVR - история запуска
Стачка 2017: CinemaVR - история запускаAndrey Tatarinov
 
TDSR 2014: Porting Zvooq app to Tizen
TDSR 2014: Porting Zvooq app to TizenTDSR 2014: Porting Zvooq app to Tizen
TDSR 2014: Porting Zvooq app to TizenAndrey Tatarinov
 

More from Andrey Tatarinov (6)

ML on the Edge - Highload++ Siberia 2019
ML on the Edge - Highload++ Siberia 2019ML on the Edge - Highload++ Siberia 2019
ML on the Edge - Highload++ Siberia 2019
 
Масштабирование CinemaVR
Масштабирование CinemaVRМасштабирование CinemaVR
Масштабирование CinemaVR
 
Стачка 2017: CinemaVR - история запуска
Стачка 2017: CinemaVR - история запускаСтачка 2017: CinemaVR - история запуска
Стачка 2017: CinemaVR - история запуска
 
TDSR 2014: Porting Zvooq app to Tizen
TDSR 2014: Porting Zvooq app to TizenTDSR 2014: Porting Zvooq app to Tizen
TDSR 2014: Porting Zvooq app to Tizen
 
Frontik
FrontikFrontik
Frontik
 
logging done
logging donelogging done
logging done
 

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

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