20
Impact Mapping: планирование разработки продукта с учетом бизнес целей Александр Бындю (byndusoft.com) Проектирование архитектуры крупных веб-проектов Роман Ивлиев (banki.ru)

Точка кипения: проектирование крупных веб-систем

Embed Size (px)

Citation preview

Impact Mapping: планирование

разработки продукта с учетом

бизнес целей Александр Бындю (byndusoft.com)

Проектирование архитектуры

крупных веб-проектов Роман Ивлиев (banki.ru)

О себе

2002-....

• Тестировщик

• Разработчик

• Руководитель

разработчиков

• Руководитель

тестировщиков

• Руководитель проектов

• CTO

• CIO

Будьте бдительны

Крупные проекты:

примеры • Социальные сети

• Поисковики

• Онлай-игры

• Рекламные сети

• Интернет-магазины

• Сервисы (а-ля Dropbox)

Крупные проекты:

примеры • Биржи

• Трейдинговые системы

• Космические вычисления

• Вычисления климата

• Информационные системы гос. структур

• Нетрадиционные банки (Дойче банк, например)

Два основных

направления развития

• Как решать существующие задачи используя

меньше ресурсов

• Как решать пропорционально больше задач при

увеличении ресурсов

Основные показатели

• Доступность

• Производительность

• Надёжность

• Масштабируемость

• Управляемость

• Стоимость

Крупные проекты:

решения • Языки программирования и фреймворки

• Веб-акселераторы

• СУБД (в т.ч. NoSQL)

• In-memory решения (кэш, СУБД)

• Сервера очередей

• Front-end-библиотеки

• Распределенные хранилища и средства вычисления

Профиль нагрузки

Профиль

нагрузки:среднее

Стандартная

архитектура веб-проекта

Важно помнить

• Нет стандарта на разработку крупных систем;

• Не всё нужно здесь и сейчас;

• Иногда самое простое примитивное решение

является самым эффективным;

• То, что делают «большие дяди», почти

наверняка вам не нужно

• Hype – это здорово, но опасно

Планирование

приложения • Трехслойная архитектура

• Сервисная архитектура

• Введение дополнительных уровней абстракции

• Модульность на всех уровнях

• Интеграция независимых приложений

• Использование внешних сервисов

Планирование

приложения

Планирование

приложения

Планирование

инфраструктуры • Простота внесения изменений

• Скорость внесения изменений

• Скорость отката изменений

• Простота демонстрации и тестов

• Подготовка персонала

• Подготовка мониторинга

Планирование тестов

• Регрессионное тестирование

• Повышение качества разработки

• Структурирование изменений

• Ускорение разработки

Потери • Потери из-за перепроизводства (лишние мощности)

• Потери времени из-за ожидания (низкая скорость, блокировки)

• Потери при ненужной транспортировке ( «длинные сети»)

• Потери из-за лишних этапов обработки (овнокод)

• Потери из-за лишних запасов (лишние объемы данных)

• Потери из-за ненужных перемещений (репликация и дублирование)

• Потери из-за выпуска дефектной продукции (овнокод++)

СПАСИБО!

@dumtest

[email protected]

roman.ivliyev

Немного ссылок • https://www.youtube.com/watch?v=pn7IT_cG8ck – Алексей Рыбак.

Основы построения высоконагруженных проектов. Мастер-класс. 5 часов. Много технических деталей

• https://www.youtube.com/watch?v=CNVOWgLTmr0 – Олег Бунин. Мини-мастер класс по нагруженным системам. Много про паттерны разработки. Доступно и толково

• https://www.youtube.com/watch?v=JZiQKgx2HJM – Олег Анастасьев. Распределённые системы в Одноклассниках. Как «взрослые дяди» делают хайлод

• https://www.youtube.com/watch?v=tFdEi5ahUkA – Роман Ивлиев. Как Банки.ру пережили утроение нагрузки. Про экстремальную разработку веб-проекта