SlideShare a Scribd company logo
1 of 31
Масштабирование решений:
проекты, которые растут вместе с
клиентом
Строев Алексей
Технический директор
ADV / web-engineering co.
Кто я?
Строев Алексей
Технический директор
ADV/web-engineering co.
stroev@adv.ru
facebook.com/alex.stroev.m
Путь к совершенству – вечность.
Для чего нужно масштабирование?
• Расширение бизнес-предложений
• Увлечение хранимой информации
• Рост посещаемости
• Расширение спектра возможностей
• …
Инструменты масштабирования
Кластеризация vs Шардинг vs
Репликация
• Решение проблем разрастания данных
• Решение проблем нагрузки на сервера
• Перенос части логики на БД
Шардинг
Цель должна оправдывать средства
• Не спешите покупать новый дорогой сервер
• Анализируйте и изолируйте проблемные места
(большие таблицы, тяжелые запросы)
• Решений горизонтального масштабирования БД
несколько — выбирайте оптимальное
• Репликация — не единое доступное решение,
анализируйте проблему
• Шардинг — горизонтально масштабируемое
решение, которое практически не имеет
ограничений, но требует грамотного архитектурного
решения
• Продумайте возможность гибридного решения
(совмещение вертикального шардинга и
репликации)
Используйте облака!
Что это дает?
• Минимальные первоначальные затраты
• Высокая доступность и надежность
• Отсутствие эксплуатационных затрат
• Гибкость IT-инфраструктуры
• Мобильность
Кэширование
Что кэшируем?
• Кэширование запросов
– Хранение результатов запроса
• Кэширование статики
– Инструменты – nginx, iis etc…
– Изображения, стили, javascript
• Кэш – хранилища
– MemCache
– APC
Изолирование компонентов
Варианты изолирования
компонентов
• Программные
– Использование IoC
– Реализации:
• Dependency Injection
• Factory Method
• Service locator
• Аппаратные
– Геораспределение
А что дальше?
Рефакторим….
Причины:
– Новый функционал, непредусмотренный
архитектурой
– Необходимо исправить ошибку, причины
возникновения которой сразу не ясны
– Преодоление трудностей в командной
разработке, которые обусловлены сложной
логикой решения
Рефакторим….
Признаки:
– Дублирование кода
– Длинный метод
– Большой класс
– Длинный список параметров
– «завистливые» функции — это метод, который
чрезмерно обращается к данным другого
объекта
– Избыточные временные переменные
– Классы данных
– Не сгруппированные данные
Закончили рефакторинг
• Цель достигнута – сделать код легче для
понимания
• Удален «мертвый код»
• Готова «почва» для реинжинирнга
• Не забываем оборачивать в unit-тесты
Промежуточный итог
• Проект растет…
И начинается
• Масштабирование в ширь (лень)
• Масштабирование в глубь (проще)
Масштабирование за счет мобильности
Чего стоит избегать или типичные
ошибки
• Слепое следование модным на данный момент
трендам и технологиям
• Отсутствие средств мониторинга и планирования
нагрузки
• Принятие решений, основываясь на предыдущем
опыте, абсолютно не связанным с текущим проектом
• Непонимание основных принципов масштабирования
• Масштабирование невозможного
• Single Point of Failure
• Нездоровое стремление использовать
повсюду облачные технологии
Повторенье — мать ученья
Разработчик должен разрабатывать
Анализируйте нагрузки, падения ресурса (площадки) - это
риски, которые можно просчитать.
Находите узкие места до, того как
они найдут вас
Стройте план(карту) проекта
Предлагайте варианты развития клиенту
Документация наше всё…
Анализируйте технологические решения на
предмет масштабирования и избегайте тех, с
которыми могут возникнуть проблемы.
?
Спасибо за
внимание.
Контактная информация:
Строев Алексей
Технический директор
ADV/web-engineering. co
stroev@adv.ru
facebook.com/alex.strove.m
Спасибо за внимание!

More Related Content

Similar to День ADV на Russian Digital Week: Масштабирование решений - проекты, которые растут вместе с клиентом

Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-системRoman Ivliev
 
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системПроектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системTKConf
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
Управление проектами
Управление проектами Управление проектами
Управление проектами Nimax
 
IT Network BACon agile spring. Дмитрий Гузенко - BA for Data Science & Machin...
IT Network BACon agile spring. Дмитрий Гузенко - BA for Data Science & Machin...IT Network BACon agile spring. Дмитрий Гузенко - BA for Data Science & Machin...
IT Network BACon agile spring. Дмитрий Гузенко - BA for Data Science & Machin...it-network
 
Bacon.2018.it pro network.ba for dsml
Bacon.2018.it pro network.ba for dsmlBacon.2018.it pro network.ba for dsml
Bacon.2018.it pro network.ba for dsmlDmitry Guzenko
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данныхОмские ИТ-субботники
 
Работа с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииРабота с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииAndrii Mandrika
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub.NET User Group Dnipro
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ontico
 
Продуктовый дизайн в рамках подрядных отношений
Продуктовый дизайн в рамках подрядных отношенийПродуктовый дизайн в рамках подрядных отношений
Продуктовый дизайн в рамках подрядных отношенийArthur Arsyonov
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаPavel Veinik
 
Анализ и визуализация данных на базе платформы Microsoft bi
Анализ и визуализация данных на базе платформы Microsoft biАнализ и визуализация данных на базе платформы Microsoft bi
Анализ и визуализация данных на базе платформы Microsoft biМаксим Войцеховский
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summaryAnton Zhukov
 
Артур Арсёнов
Артур АрсёновАртур Арсёнов
Артур АрсёновCodeFest
 
инструментальные средства управления проектами
инструментальные средства управления проектамиинструментальные средства управления проектами
инструментальные средства управления проектамиAndrew Fadeev
 

Similar to День ADV на Russian Digital Week: Масштабирование решений - проекты, которые растут вместе с клиентом (20)

Точка кипения: проектирование крупных веб-систем
Точка кипения:  проектирование крупных веб-системТочка кипения:  проектирование крупных веб-систем
Точка кипения: проектирование крупных веб-систем
 
Проектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-системПроектирование архитектуры крупных веб-систем
Проектирование архитектуры крупных веб-систем
 
Discovery phase
Discovery phaseDiscovery phase
Discovery phase
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
Java Presentation.pptx
Java Presentation.pptxJava Presentation.pptx
Java Presentation.pptx
 
Управление проектами
Управление проектами Управление проектами
Управление проектами
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
IT Network BACon agile spring. Дмитрий Гузенко - BA for Data Science & Machin...
IT Network BACon agile spring. Дмитрий Гузенко - BA for Data Science & Machin...IT Network BACon agile spring. Дмитрий Гузенко - BA for Data Science & Machin...
IT Network BACon agile spring. Дмитрий Гузенко - BA for Data Science & Machin...
 
Bacon.2018.it pro network.ba for dsml
Bacon.2018.it pro network.ba for dsmlBacon.2018.it pro network.ba for dsml
Bacon.2018.it pro network.ba for dsml
 
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
2014-01-04 02 Алексей Зиновьев. Выбор NoSQL базы данных
 
Работа с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформацииРабота с требованиями в условиях Agile трансформации
Работа с требованиями в условиях Agile трансформации
 
Top big data architecture patterns by Igor Chub
Top big data architecture patterns  by Igor ChubTop big data architecture patterns  by Igor Chub
Top big data architecture patterns by Igor Chub
 
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
Ошибки проектирования высоконагруженных проектов / Максим Ехлаков (OneTwoRent)
 
Продуктовый дизайн в рамках подрядных отношений
Продуктовый дизайн в рамках подрядных отношенийПродуктовый дизайн в рамках подрядных отношений
Продуктовый дизайн в рамках подрядных отношений
 
Software craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчикаSoftware craftsmanship 11 online: мотивация и эффектисность разработчика
Software craftsmanship 11 online: мотивация и эффектисность разработчика
 
Артемий Анцупов "Agile PMO"
Артемий Анцупов "Agile PMO"Артемий Анцупов "Agile PMO"
Артемий Анцупов "Agile PMO"
 
Анализ и визуализация данных на базе платформы Microsoft bi
Анализ и визуализация данных на базе платформы Microsoft biАнализ и визуализация данных на базе платформы Microsoft bi
Анализ и визуализация данных на базе платформы Microsoft bi
 
Agile days `16 summary
Agile days `16 summaryAgile days `16 summary
Agile days `16 summary
 
Артур Арсёнов
Артур АрсёновАртур Арсёнов
Артур Арсёнов
 
инструментальные средства управления проектами
инструментальные средства управления проектамиинструментальные средства управления проектами
инструментальные средства управления проектами
 

More from ADV/web-engineering

Без чего не работают самые крутые технологии
Без чего не работают самые крутые технологииБез чего не работают самые крутые технологии
Без чего не работают самые крутые технологииADV/web-engineering
 
Стратегия персонализации магазина
Стратегия персонализации магазинаСтратегия персонализации магазина
Стратегия персонализации магазинаADV/web-engineering
 
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...ADV/web-engineering
 
RTB или когда вашим продажам это нужно уже сейчас
RTB или когда вашим продажам это нужно уже сейчасRTB или когда вашим продажам это нужно уже сейчас
RTB или когда вашим продажам это нужно уже сейчасADV/web-engineering
 
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникации
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникацииPerformance Based Marketing: CRM-подход к персонализации клиентской коммуникации
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникацииADV/web-engineering
 
Мультиканальная персонализация: максимальная конверсия при адресном маркетинге
Мультиканальная персонализация: максимальная конверсия при адресном маркетингеМультиканальная персонализация: максимальная конверсия при адресном маркетинге
Мультиканальная персонализация: максимальная конверсия при адресном маркетингеADV/web-engineering
 
Быстрые продажи VS Лояльность?
Быстрые продажи VS Лояльность?Быстрые продажи VS Лояльность?
Быстрые продажи VS Лояльность?ADV/web-engineering
 
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...ADV/web-engineering
 
Секции ADV на RIW 2013: Управляем жизненным циклом клиента
Секции ADV на RIW 2013: Управляем жизненным циклом клиентаСекции ADV на RIW 2013: Управляем жизненным циклом клиента
Секции ADV на RIW 2013: Управляем жизненным циклом клиентаADV/web-engineering
 
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...ADV/web-engineering
 
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...ADV/web-engineering
 
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.ADV/web-engineering
 
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...ADV/web-engineering
 
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.ADV/web-engineering
 
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...ADV/web-engineering
 
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?ADV/web-engineering
 
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...ADV/web-engineering
 
Секции ADV на RIW 2013: Банальный маркетинг.
Секции ADV на RIW 2013: Банальный маркетинг.Секции ADV на RIW 2013: Банальный маркетинг.
Секции ADV на RIW 2013: Банальный маркетинг.ADV/web-engineering
 
Рефакторим и...получаем удовольствие
Рефакторим и...получаем удовольствиеРефакторим и...получаем удовольствие
Рефакторим и...получаем удовольствиеADV/web-engineering
 

More from ADV/web-engineering (20)

Без чего не работают самые крутые технологии
Без чего не работают самые крутые технологииБез чего не работают самые крутые технологии
Без чего не работают самые крутые технологии
 
Стратегия персонализации магазина
Стратегия персонализации магазинаСтратегия персонализации магазина
Стратегия персонализации магазина
 
3 rif final_ofsys
3 rif final_ofsys3 rif final_ofsys
3 rif final_ofsys
 
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
Необходима ли моему бизнесу автоматизация контекстной рекламы и если да, то к...
 
RTB или когда вашим продажам это нужно уже сейчас
RTB или когда вашим продажам это нужно уже сейчасRTB или когда вашим продажам это нужно уже сейчас
RTB или когда вашим продажам это нужно уже сейчас
 
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникации
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникацииPerformance Based Marketing: CRM-подход к персонализации клиентской коммуникации
Performance Based Marketing: CRM-подход к персонализации клиентской коммуникации
 
Мультиканальная персонализация: максимальная конверсия при адресном маркетинге
Мультиканальная персонализация: максимальная конверсия при адресном маркетингеМультиканальная персонализация: максимальная конверсия при адресном маркетинге
Мультиканальная персонализация: максимальная конверсия при адресном маркетинге
 
Быстрые продажи VS Лояльность?
Быстрые продажи VS Лояльность?Быстрые продажи VS Лояльность?
Быстрые продажи VS Лояльность?
 
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
 
Секции ADV на RIW 2013: Управляем жизненным циклом клиента
Секции ADV на RIW 2013: Управляем жизненным циклом клиентаСекции ADV на RIW 2013: Управляем жизненным циклом клиента
Секции ADV на RIW 2013: Управляем жизненным циклом клиента
 
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
Секции ADV на RIW 2013: Турбированный емейл-маркетинг. Форсируем продажи. Три...
 
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
Секции ADV на RIW 2013: Настоящее и будущее e-commerce-платформ: технологии, ...
 
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
Секции ADV на RIW 2013: Управление лояльностью – самый эффективный путь.
 
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
Секции ADV на RIW 2013: Комплексные IT-решения для компаний дистанционной тор...
 
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
Секции ADV на RIW 2013: Привлечение и ремаркетинг в социальных сетях.
 
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
Секции ADV на RIW 2013: Theory hook - Как из 100 зашедших в онлайн сервис пол...
 
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
Секции ADV на RIW 2013: CPO vs CLV: как понять, куда вкладывать бюджет?
 
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
Социальная персонализация сайта: как приобрести больше клиентов, увеличить пр...
 
Секции ADV на RIW 2013: Банальный маркетинг.
Секции ADV на RIW 2013: Банальный маркетинг.Секции ADV на RIW 2013: Банальный маркетинг.
Секции ADV на RIW 2013: Банальный маркетинг.
 
Рефакторим и...получаем удовольствие
Рефакторим и...получаем удовольствиеРефакторим и...получаем удовольствие
Рефакторим и...получаем удовольствие
 

День ADV на Russian Digital Week: Масштабирование решений - проекты, которые растут вместе с клиентом