Ulmart + Digital Zone = 
Love 
Три года (любви) на гоночной трассе
Ulmart это: 
Крупнейший кибермаркет в России, выручка за 
2013 год - $1,021 млрд. (по данным Forbes) 
Продает "все, что втыкается в розетку" - 
фактически, вообще всё 
Опережает ближайшего конкурента примерно на 
20% 
15 субпроектов (b2b, travel, digital, shop in shop и т.п.)
Как началось 
Ultima ERP + PHP 
План на полгода 
Постановка задачи на одной странице майндмепа 
Реверс-инжениринг 400 таблиц без FK 
Обещали сделать за 6 месяцев, сделали за 4!
Требования 
Масштабирование 
Отказоустойчивость 
Отсутствие проблем при развитии 
Поддержка интеграции с SAP
Масштаб на старте 
10 000 продаж в сутки 
60 магазинов по стране 
База цен - порядка миллиона записей 
(товары*регионы*столбец скидки) 
Распределённая логистическая сеть, аутпосты, сложная 
схема наличия товара 
Активная программа лояльности 
100% продаж через веб-магазин
Этапы 
Проанализировать (reverse engineering) 
Запроектировать (коннекторы к БД, ультиме, сап) 
Сделать в минимальной конфигурации 
Сделать в максимальной конфигурации 
Отрефакторить бд 
Отрефакторить себя (2й слой апп серверов)
Команда: 10-20 человек 
Менеджер проекта, архитектор проекта 
Ведущий аналитик, несколько аналитиков 
3-5 групп с архитекторами подсистем 
Группы тестирования - у нас и у Юлмарта 
Верстальщики
Тестирование 
Юнит-тесты, регрессы 
Тесты на уровне UI - селениум 
Нагрузочные тесты 
Полная тест-среда сделана только в этом году. 
Проблема - второй SAP. 
До этого сквозные тесты делали на боевой системе 
по специальной схеме.
ТипаАджайл 
Псевдо-фикс 
Требования 
Проектирование 
Прозрачность работы команды 
Беклог и корректировка плана 
Внутренние релизы раз в 2 недели
На чём стоим 
Apache Tomcat (Java EE сервер приложений) (JBoss) 
Lucene (библиотека для высокоскоростного полнотекстового 
поиска) 
JDBC (интерфейс для работы с БД) 
Spring (фреймворк) 
Freemarker (шаблонизатор) 
JQuery (библиотека для взаимодействия JavaScript c HTML/ 
CSS)
Текст 
Архитектура 
Как оно казалось до старта проекта
Текст 
Архитектура 
Как оно казалось в начале проекта
Текст 
Архитектура 
Рабочая диаграмма в середине проекта
Архитектура сегодня 
Всё описать не получится 
Второй слой апп-серверов: объектный кеш 
спецификаций 
Шардинг по категориям товаров 
Бизнес-логика фильтрации прямо на кеше, псевдо- 
SQL in memory
Текст 
Архитектура 
Взгляд с высоты полёта
Архитектура 
Шардинг БД по категориям
Эксперт 
Технология Яндекс.Гуру, переписана мной на Яву в 2004 
году, 
Переписана группой разработки Юлмарта ещё раз в 
2012 :) 
+1% конверсии в среднем, +8 в пике 
Категории: удачные - мультиварки, странные - телевизоры 
Новизна - "окно цены", сдвиг по цене и фичам, оно же 
закрывает фрустрацию псевдо-профессионалов
Mobile Identity 
Технология интеграции с операторами от «Беркут» 
Прозрачная регистрация в магазине при заходе с 
мобильного устройства 
Логин не нужен, дядя Вова
Технические проблемы 
Медленные компьютеры покупателей - не тянут 
большой ajax 
Были компоненты (кеш), которые выдерживают 
нагрузочное тестирование, но падают на реальной 
системе 
Интеграция, интеграция, интеграция
Орг. проблемы 
Бизнес-заказчик внутри Юлмарта - иногда его нет 
Приоритеты по развитию - быстрый рост 
заставляет что-то оставлять в стороне 
Объём команды нельзя растить вечно - 
структуризация подсистем - естественная граница 
Скорость развития других подсистем (бекофис)
О нас 
Digital Zone - энтерпрайз веб 
E-Legion - мобильная разработка (Номер 1 в России) 
Aprentise - конструктор бизнес-приложений 
(растём, не всё говорим вслух) 
Порядка 150 сотрудников в 5 городах 
Стабильные партнёры - аутсорсим 15-25% работы
Вопросы 
Дмитрий Завалишин 
dz@dz.ru 
Основатель DZ systems 
http://dz.ru

Юлмарт. История создания, Дмитрий Завалишин (DZ Systems)

  • 1.
    Ulmart + DigitalZone = Love Три года (любви) на гоночной трассе
  • 2.
    Ulmart это: Крупнейшийкибермаркет в России, выручка за 2013 год - $1,021 млрд. (по данным Forbes) Продает "все, что втыкается в розетку" - фактически, вообще всё Опережает ближайшего конкурента примерно на 20% 15 субпроектов (b2b, travel, digital, shop in shop и т.п.)
  • 3.
    Как началось UltimaERP + PHP План на полгода Постановка задачи на одной странице майндмепа Реверс-инжениринг 400 таблиц без FK Обещали сделать за 6 месяцев, сделали за 4!
  • 4.
    Требования Масштабирование Отказоустойчивость Отсутствие проблем при развитии Поддержка интеграции с SAP
  • 5.
    Масштаб на старте 10 000 продаж в сутки 60 магазинов по стране База цен - порядка миллиона записей (товары*регионы*столбец скидки) Распределённая логистическая сеть, аутпосты, сложная схема наличия товара Активная программа лояльности 100% продаж через веб-магазин
  • 6.
    Этапы Проанализировать (reverseengineering) Запроектировать (коннекторы к БД, ультиме, сап) Сделать в минимальной конфигурации Сделать в максимальной конфигурации Отрефакторить бд Отрефакторить себя (2й слой апп серверов)
  • 7.
    Команда: 10-20 человек Менеджер проекта, архитектор проекта Ведущий аналитик, несколько аналитиков 3-5 групп с архитекторами подсистем Группы тестирования - у нас и у Юлмарта Верстальщики
  • 8.
    Тестирование Юнит-тесты, регрессы Тесты на уровне UI - селениум Нагрузочные тесты Полная тест-среда сделана только в этом году. Проблема - второй SAP. До этого сквозные тесты делали на боевой системе по специальной схеме.
  • 9.
    ТипаАджайл Псевдо-фикс Требования Проектирование Прозрачность работы команды Беклог и корректировка плана Внутренние релизы раз в 2 недели
  • 10.
    На чём стоим Apache Tomcat (Java EE сервер приложений) (JBoss) Lucene (библиотека для высокоскоростного полнотекстового поиска) JDBC (интерфейс для работы с БД) Spring (фреймворк) Freemarker (шаблонизатор) JQuery (библиотека для взаимодействия JavaScript c HTML/ CSS)
  • 11.
    Текст Архитектура Каконо казалось до старта проекта
  • 12.
    Текст Архитектура Каконо казалось в начале проекта
  • 13.
    Текст Архитектура Рабочаядиаграмма в середине проекта
  • 14.
    Архитектура сегодня Всёописать не получится Второй слой апп-серверов: объектный кеш спецификаций Шардинг по категориям товаров Бизнес-логика фильтрации прямо на кеше, псевдо- SQL in memory
  • 15.
  • 16.
  • 17.
    Эксперт Технология Яндекс.Гуру,переписана мной на Яву в 2004 году, Переписана группой разработки Юлмарта ещё раз в 2012 :) +1% конверсии в среднем, +8 в пике Категории: удачные - мультиварки, странные - телевизоры Новизна - "окно цены", сдвиг по цене и фичам, оно же закрывает фрустрацию псевдо-профессионалов
  • 18.
    Mobile Identity Технологияинтеграции с операторами от «Беркут» Прозрачная регистрация в магазине при заходе с мобильного устройства Логин не нужен, дядя Вова
  • 19.
    Технические проблемы Медленныекомпьютеры покупателей - не тянут большой ajax Были компоненты (кеш), которые выдерживают нагрузочное тестирование, но падают на реальной системе Интеграция, интеграция, интеграция
  • 20.
    Орг. проблемы Бизнес-заказчиквнутри Юлмарта - иногда его нет Приоритеты по развитию - быстрый рост заставляет что-то оставлять в стороне Объём команды нельзя растить вечно - структуризация подсистем - естественная граница Скорость развития других подсистем (бекофис)
  • 21.
    О нас DigitalZone - энтерпрайз веб E-Legion - мобильная разработка (Номер 1 в России) Aprentise - конструктор бизнес-приложений (растём, не всё говорим вслух) Порядка 150 сотрудников в 5 городах Стабильные партнёры - аутсорсим 15-25% работы
  • 22.
    Вопросы Дмитрий Завалишин dz@dz.ru Основатель DZ systems http://dz.ru