22
Ulmart + Digital Zone = Love Три года (любви) на гоночной трассе

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

  • Upload
    ontico

  • View
    1.231

  • Download
    4

Embed Size (px)

DESCRIPTION

Доклад Дмитрия Завалишина на HighLoad++ 2014.

Citation preview

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

Ulmart + Digital Zone = LoveТри года (любви) на гоночной трассе

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

Ulmart это:Крупнейший кибермаркет в России, выручка за 2013 год  -  $1,021 млрд. (по данным Forbes)

Продает "все, что втыкается в розетку" - фактически, вообще всё

Опережает ближайшего конкурента примерно на 20%

15 субпроектов (b2b, travel, digital, shop in shop и т.п.)

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

Как началось

Ultima ERP + PHP

План на полгода

Постановка задачи на одной странице майндмепа

Реверс-инжениринг 400 таблиц без FK

Обещали сделать за 6 месяцев, сделали за 4!

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

Требования

Масштабирование

Отказоустойчивость

Отсутствие проблем при развитии

Поддержка интеграции с SAP

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

Масштаб на старте10 000 продаж в сутки

60 магазинов по стране

База цен - порядка миллиона записей (товары*регионы*столбец скидки)

Распределённая логистическая сеть, аутпосты, сложная схема наличия товара

Активная программа лояльности

100% продаж через веб-магазин

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

ЭтапыПроанализировать (reverse engineering)

Запроектировать (коннекторы к БД, ультиме, сап)

Сделать в минимальной конфигурации

Сделать в максимальной конфигурации

Отрефакторить бд

Отрефакторить себя (2й слой апп серверов)

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

Команда: 10-20 человек

Менеджер проекта, архитектор проекта

Ведущий аналитик, несколько аналитиков

3-5 групп с архитекторами подсистем

Группы тестирования - у нас и у Юлмарта

Верстальщики

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

ТестированиеЮнит-тесты, регрессы

Тесты на уровне UI - селениум

Нагрузочные тесты

Полная тест-среда сделана только в этом году. Проблема - второй SAP.

До этого сквозные тесты делали на боевой системе по специальной схеме.

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

ТипаАджайлПсевдо-фикс

Требования

Проектирование

Прозрачность работы команды

Беклог и корректировка плана

Внутренние релизы раз в 2 недели

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

На чём стоимApache Tomcat (Java EE сервер приложений) (JBoss)

Lucene (библиотека для высокоскоростного полнотекстового поиска)

JDBC (интерфейс для работы с БД)

Spring (фреймворк)

Freemarker (шаблонизатор)

JQuery (библиотека для взаимодействия JavaScript c HTML/CSS)

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

Текст

АрхитектураКак оно казалось до старта проекта

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

Текст

АрхитектураКак оно казалось в начале проекта

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

Текст

АрхитектураРабочая диаграмма в середине проекта

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

Архитектура сегодня

Всё описать не получится

Второй слой апп-серверов: объектный кеш спецификаций

Шардинг по категориям товаров

Бизнес-логика фильтрации прямо на кеше, псевдо-SQL in memory

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

Текст

АрхитектураВзгляд с высоты полёта

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

АрхитектураШардинг БД по категориям

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

ЭкспертТехнология Яндекс.Гуру, переписана мной на Яву в 2004 году,

Переписана группой разработки Юлмарта ещё раз в 2012 :)

+1% конверсии в среднем, +8 в пике

Категории: удачные - мультиварки, странные - телевизоры

Новизна - "окно цены", сдвиг по цене и фичам, оно же закрывает фрустрацию псевдо-профессионалов

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

Mobile Identity

Технология интеграции с операторами от «Беркут»

Прозрачная регистрация в магазине при заходе с мобильного устройства

Логин не нужен, дядя Вова

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

Технические проблемы

Медленные компьютеры покупателей - не тянут большой ajax

Были компоненты (кеш), которые выдерживают нагрузочное тестирование, но падают на реальной системе

Интеграция, интеграция, интеграция

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

Орг. проблемы

Бизнес-заказчик внутри Юлмарта - иногда его нет

Приоритеты по развитию - быстрый рост заставляет что-то оставлять в стороне

Объём команды нельзя растить вечно - структуризация подсистем - естественная граница

Скорость развития других подсистем (бекофис)

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

О насDigital Zone - энтерпрайз веб

E-Legion - мобильная разработка (Номер 1 в России)

Aprentise - конструктор бизнес-приложений

(растём, не всё говорим вслух)

Порядка 150 сотрудников в 5 городах

Стабильные партнёры - аутсорсим 15-25% работы

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

Вопросы

Дмитрий Завалишин

[email protected]

Основатель DZ systems

http://dz.ru