По материалам конференции .NET разработчиков - http://dotnetconf.ru/materialy/frommonolittodistributed
1 of 40
More Related Content
Переход от монолитной архитектуры к распределенной
1. Переход от монолитной
архитектуры к распределенной
Александр Бындю
http://byndyu.ru
8-я конференция .NET разработчиков
6 апреля 2014
dotnetconf.ru
2. 2
Обо мне
1. Владелец компании ByndyuSoft http://byndyusoft.com
2. Консультант по вопросам разработки приложений и организации работы IT
компаний, Certified CIAgile Professional
3. Внештатный сотрудник Академии АйТи
4. Технический блог http://blog.byndyu.ru
5. Преподаю в ЮУрГУ и ЧелГУ
6. Тренер на AgileCamp
7. Организую конференции .NET-разработчиков
http://dotnetconf.ru
8. Веду группу по проблемам разработки приложений
https://groups.google.com/forum/?hl=ru&fromgroups#!forum/dotnetconf
3. 3
Требования рынка
1. Много данных
2. Много пользователей
3. Быстрое масштабирование
4. Быстрое внесение изменений
13. 13
Что делать?
1. Оптимизировать скрипты выборки
2. Убираем ORM для лучшей оптимизации
3. Убираем весь код выборки в хранимки
4. Оптимизируем индексы
5. Денормализуем данные
14. 14
Денормализация v1.0
Создать дополнительные колонки в текущих
таблицах
SELECT pt.Code
FROM Products p
INNER JOIN ProductType pt ON
p.ProductTypeID = pt.ProductTypeID
WHERE p.ProductID = 20
16. 16
Денормализация v3.0
Создать еще одну БД (хранилище) c
«плоскими» данными для чтения
1. Отдельная реляционная БД с «плоскими»
данными без связей
2. Различные NoSQL
3. Поисковые системы
25. 25
BASE-архитектура
Availability + Partition tolerance
1. Basically Available
(сбой в некоторых узлах не приводит к отказу в обслуживании)
2. Soft-state
(не согласованное состояние)
3. Eventually consistent
(в конце концов информация будет консистентна)
31. 31
DB
1. Сервисы
сбора данных
1. Сервисы
сбора данных
Сервис1
1. Сервисы
сбора данных
1. Сервисы
сбора данных
Сервис2
1. Сервисы
сбора данных
1. Сервисы
сбора данных
Сервис3
1. Сервисы
сбора данных
1. Сервисы
сбора данных
...
Шина сообщений
Событие Событие Событие Событие
36. 36
1. Сервисы
сбора данных
2. Скачивание
HTML
3. Создание
сущностей
4. Анализ
данных
DB
+ Fulltext Search
Sphinx
Веб-приложение
37. 37
1. Сервисы
сбора данных
1. Сервисы
сбора данных
1. Сервисы
сбора данных
1. Сервисы
сбора данных
1. Сервисы
сбора данных
2. Скачивание
HTML
3. Создание
сущностей
4. Анализ
данных
DB
Fulltext Search
Sphinx
Веб-приложение
Шинасообщений(IronMQ)
AWS S3
38. 38
1. Сервисы
сбора данных
1. Сервисы
сбора данных
1. Сервисы
сбора данных
1. Сервисы
сбора данных
1. Сервисы
сбора данных
2. Скачивание
HTML
3. Создание
сущностей
4. Анализ
данных
DB
Веб-приложение
Шинасообщений(IronMQ)
AWS S3
Sphinx
Sphinx
Sphinx
Sphinx
RedisRedisRedis
39. 39
Полезные ссылки
1. Eventually Consistent – Revisited, Werner Vogels
2. If You Have Too Much Data, then 'Good Enough' Is Good
Enough, Pat Helland
3. Ошибки в системах баз данных, согласованность "в
конечном счете" и теорема CAP, Майкл Стоунбрейкер
4. CAP theorem, Wikipedia
5. Reporting Database, Martin Fowler
6. BASE: An Acid Alternative, Dan Pritchett
40. 40
Спасибо за внимание!
Буду рад ответить на ваши
вопросы лично или через:
blog.byndyu.ru
alexanderbyndyu
alexander.byndyu@gmail.com