SlideShare a Scribd company logo
1 of 38
Architecture of NoSQL
distributed clusters on AWS
Andrey Zaychikov
Solutions Architect,
Amazon Web Services,
Luxembourg
Программа и цели презентации
• Рассмотрим основные проблемы, связанные с проектированием глобально
распределенных кластеров NoSQL и опишем подход к проектированию подобных
систем
• Посмотрим, как этот подход может быть использован на примере построения
глобально распределенных кластеров Cassandra и MongoDB
• Разберемся в отличиях и особенностях проектирования в зависимости от типа БД и её
реализации
Почему появились распределенные NoSQL БД?
Сложность
схем данных
Объем данных Uptime
Характерные черты распределенных систем
Сложное поведение Сложная структура
CAP теорема?
NoSQL как технология
Экосистема NoSQL
Значение Cloud Computing для NoSQL
Скорость
масштабирования
Простота организации
глобального
присутствия
On-demand pricing
Решения NoSQL на платформе AWS
DynamoDB S3 + Athena NoSQL on EC2 (+ EBS)
Полностью управляемый сервис
баз данных NoSQL,
обеспечивающий прогнозируемую
высокую производительность с
эффективной масштабируемостью.
Amazon DynamoDB дает клиентам
возможность переложить на AWS
административную нагрузку, по
управлению распределенными
базами данных и их
масштабированием.
Amazon Athena – это
интерактивный сервис
запросов, позволяющий легко
анализировать данные в
хранилище Amazon S3 с
помощью стандартных
средств SQL. У Athena –нет
инфраструктуры, требующей
настройки или управления,
поэтому можно сразу же
приступить к анализу данных.
Вычислительное облако Amazon
Elastic Compute Cloud (Amazon
EC2) – это веб-сервис,
предоставляющий безопасные
масштабируемые вычислительные
ресурсы в облаке. Он помогает
разработчикам, облегчая
проведение крупномасштабных
вычислений в облаке.
Подход к проектированию глобально
распределенных NoSQL БД
• Оценка необходимости создания
распределенной системы и
применимости NoSQL
• Проектирование сценария
использования
• Выбор технологии NoSQL
• Проектирование приложений
• Проектирование технической
реализации
• Проектирование и организация
операционной деятельности
Нужны ли в вашем проекте распределенные NoSQL
решения
• Высокая нагрузка существенно изменяющая
во времени
• Отсутствие существенных требований к
консистентности данных
• Парадоксально высокий uptime
• Относительно простая схема без наличия
существенного количества связей
• Отсутствие необходимости моментально
строить отчетность по всему объему данных
• Высокие требования к latency со стороны
клиентских приложений
• Высокие требования к консистентности данных
• Стабильная нагрузка без существенных
изменений в течение времени
• Относительно редко меняющаяся схема в
хорошо определенной предметной области
• Отсутствие сверх высоких требований по
доступности и latency по запросам со стороны
приложений
• Необходимость строить отчетность / анализ с
использованием полного функционала SQL
Проектирование сценария использования
Выбор технологии
• Специфика приложений
• Сценарий
использования
• Модель развертывания
• Собственная экспертиза
• Необходимость тюнинга
• Схема данных
• Показатели
производительности
• Показатели надежности
• Специфика развития
продукта
• Модель обслуживания
DynamoDB
Cloud-based Self-managed (EC2)
Key-value Document-oriented
Graph
Mixed
Изучение технологии
Crush course: Cassandra
Crush course: MongoDB
Проектирование схемы данных
• Наборы данных (keyspaces,
collections)
• Идентификационные ключи
и ключи распределения
данных
• Структура индексов
• Структура коллекций
• Структура запросов
• Структура связей
Проектирование схемы данных существенно различается в зависимости от класса
БД (document-oriented, key-value, graph, etc.) и в большой степени зависит от
особенностей реализации конкретной БД.
Проектирование взаимодействия приложений с БД
Проектирование взаимодействия
приложений с БД
Проектирование взаимодействия
приложений с БД
Выбор географии развертывания
Проектирование архитектуры развертывания
Проектирование архитектуры
развертывания
Проектирование архитектуры
развертывания
Выбор типов вычислительных ресурсов и хранилищ
Всегда базируется на специфике базы данных, специфике схемы и паттернов
доступа. Тип вычислительных ресурсов и хранилищ должен адаптироваться под
конкретные нужды.
Cassandra MongoDB
Планирование HA & DR
Пример: Планирование HA & DR
Пример: Планирование HA & DR
Планирование вычислительных сетей
• Топология сети
• Конфигурация сети
• Высокая доступность сети /
каналов
• Маршрутизация
• Правила firewall’ов
• MTU
• Оптимизация трафика
Планирование ИБ
Планирование мониторинга
• Мониторинг вычислительных
ресурсов
• CPU
• RAM
• Disk IO, saturation
• Network throughput, saturation
• Мониторинг системных
процессов
• Write Logs
• Garbage Collection
• Locks
• Queueing
• Мониторинг узлов кластера БД
• Read / Write IO
• Read / Write Latency
• Internal tasks
• Мониторинг запросов
приложений
• Unavailable Errors
• Timeout Errors
• Other types of exceptions
• Мониторинг состояния кластера
• Nodes status
• Replication status / lag
Сильно зависит от специфики реализации конкретной базы данных на
уровне узла (чтение / запись данных) и на уровне кластера (репликация).
Пример: Планирование мониторинга
Пример: Планирование
мониторинга
Планирование обслуживания
• Уведомления и реагирование на
инциденты
• Alarms & notifications (правильные
метрики
• RCA
• Playbook
• Настройка и контроль выполнения
рутинных операций на уровне
кластера
• Anti-entropy operations
• Cluster-wide clean-ups
• Cluster-wide / Shard-wide backups
• Other
• Настройка и контроль выполнения
рутинных операций на уровне
узлов кластера
• Defragmentation
• Compression / Compaction
• Encryption
• Incremental and Full Backup
• Index re-build
Пример: Планирование обслуживания
• Regular cluster / partition wide
repair of data (depends on
gc_grace_period)
• Cluster wide time sync
• Per node compactions
procedures
• Manual split of SSTables to
avoid appearance of HUGE
SSTables
• Rotate log files
• Per node data defragmentation
Вместо заключения
• Не существует одного решения на
все случаи жизни
• Контекст имеет значение и
решение должно изменяться вслед
за изменением контекста
• Приложение и код должны быть
адаптированы к БД
• Наилучший способ проверить ваш
выбор БД для применения в
вашем решении – провести Proof-
of-Concept
Спасибо за внимание!

More Related Content

What's hot

Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Ontico
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
Ontico
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Ontico
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Ontico
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Ontico
 
Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012
Yuriy Ryashko
 
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин ЮрийSolit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
solit
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
Sergey Xek
 
Миграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облакоМиграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облако
Natalia Efimtseva
 

What's hot (19)

3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
3rd Moscow cassandra meetup (Fast In-memory Analytics Over Cassandra Data )
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
 
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
В поисках идеальной сети, или зачем нужна еще одна SDN / Андрей Королев (Ионика)
 
Highload++ 2015
Highload++ 2015Highload++ 2015
Highload++ 2015
 
Не по дням, а по часам! Вертикальное и горизонтальное масштабирование приложе...
Не по дням, а по часам! Вертикальное и горизонтальное масштабирование приложе...Не по дням, а по часам! Вертикальное и горизонтальное масштабирование приложе...
Не по дням, а по часам! Вертикальное и горизонтальное масштабирование приложе...
 
Migration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service FabricMigration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service Fabric
 
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
Преждевременная оптимизация архитектуры / Евгений Потапов, Антон Баранов (ITS...
 
CQRS innovations
CQRS innovationsCQRS innovations
CQRS innovations
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...Изоморфные React-приложения производительность и масштабирование / Денис Изма...
Изоморфные React-приложения производительность и масштабирование / Денис Изма...
 
Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012Java cloud platforms. jee conf 2012
Java cloud platforms. jee conf 2012
 
Александр Белоцерковский
Александр БелоцерковскийАлександр Белоцерковский
Александр Белоцерковский
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин ЮрийSolit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
Solit 2014, Обзор Infocloud для разработчиков, Трухин Юрий
 
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
MySQL® и MongoDB® - когда что лучше использовать? / Петр Зайцев (Percona)
 
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
Solit 2013, Разработка приложений в облаке на примере Amazon Web Services, Сл...
 
Javascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только одинJavascript-фреймворки:
 должен остаться только один
Javascript-фреймворки:
 должен остаться только один
 
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
 
Миграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облакоМиграции информационной инфраструктуры бизнес-приложений в облако
Миграции информационной инфраструктуры бизнес-приложений в облако
 

Similar to Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"

Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»
Cisco Russia
 
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Olga Lavrentieva
 
Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)
Andrey Akulov
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
Vyacheslav Nikulin
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд
KewpaN
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQL
Andrey Korshikov
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.com
Ontico
 

Similar to Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS" (20)

Architecture of NoSQL distributed clusters on AWS
Architecture of NoSQL distributed clusters on AWSArchitecture of NoSQL distributed clusters on AWS
Architecture of NoSQL distributed clusters on AWS
 
Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»
 
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
JSLab.Тимур Шемсединов. "Архитектура программных систем на Node.js"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
 
Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)Опыт использования NoSQL-хранилищ (Андрей Новиков)
Опыт использования NoSQL-хранилищ (Андрей Новиков)
 
Архитектура программных систем на Node.js
Архитектура программных систем на Node.jsАрхитектура программных систем на Node.js
Архитектура программных систем на Node.js
 
Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)Предоставление баз данных в виде сервиса (DBaaS)
Предоставление баз данных в виде сервиса (DBaaS)
 
Контроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколенияКонтроль услуг и приложений в центрах обработки данных нового поколения
Контроль услуг и приложений в центрах обработки данных нового поколения
 
Особенности тестирования NoSql приложений
Особенности тестирования NoSql приложенийОсобенности тестирования NoSql приложений
Особенности тестирования NoSql приложений
 
Особенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийОсобенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложений
 
Mасштабируемое управление и автоматизация серверной платформы и интегрирован...
Mасштабируемое управление и автоматизация серверной платформы и интегрирован...Mасштабируемое управление и автоматизация серверной платформы и интегрирован...
Mасштабируемое управление и автоматизация серверной платформы и интегрирован...
 
Cassandra db
Cassandra dbCassandra db
Cassandra db
 
кри 2014 elastic search рациональный подход к созданию собственной системы а...
кри 2014 elastic search  рациональный подход к созданию собственной системы а...кри 2014 elastic search  рациональный подход к созданию собственной системы а...
кри 2014 elastic search рациональный подход к созданию собственной системы а...
 
Особенности тестирования сloud-приложений
Особенности тестирования сloud-приложенийОсобенности тестирования сloud-приложений
Особенности тестирования сloud-приложений
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд
 
Отказоустойчивые решения SQL
Отказоустойчивые решения SQLОтказоустойчивые решения SQL
Отказоустойчивые решения SQL
 
Управление данными (распределенная обработка)
Управление данными (распределенная обработка)Управление данными (распределенная обработка)
Управление данными (распределенная обработка)
 
Александр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.comАлександр Соловьёв, Griddynamics.com
Александр Соловьёв, Griddynamics.com
 

More from IT Event

Anna Lavrova "How to build a mutually beneficial relationships with the clien...
Anna Lavrova "How to build a mutually beneficial relationships with the clien...Anna Lavrova "How to build a mutually beneficial relationships with the clien...
Anna Lavrova "How to build a mutually beneficial relationships with the clien...
IT Event
 

More from IT Event (20)

Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
Denis Radin - "Applying NASA coding guidelines to JavaScript or airspace is c...
 
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
Sara Harkousse - "Web Components: It's all rainbows and unicorns! Is it?"
 
Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...Max Voloshin - "Organization of frontend development for products with micros...
Max Voloshin - "Organization of frontend development for products with micros...
 
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
Roman Romanovsky, Sergey Rak - "JavaScript в IoT "
 
Konstantin Krivlenia - "Continuous integration for frontend"
Konstantin Krivlenia - "Continuous integration for frontend"Konstantin Krivlenia - "Continuous integration for frontend"
Konstantin Krivlenia - "Continuous integration for frontend"
 
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
Illya Klymov - "Vue.JS: What did I swap React for in 2017 and why?"
 
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
Evgeny Gusev - "A circular firing squad: How technologies drag frontend down"
 
Vladimir Grinenko - "Dependencies in component web done right"
Vladimir Grinenko - "Dependencies in component web done right"Vladimir Grinenko - "Dependencies in component web done right"
Vladimir Grinenko - "Dependencies in component web done right"
 
Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"Dmitry Bartalevich - "How to train your WebVR"
Dmitry Bartalevich - "How to train your WebVR"
 
Aleksey Bogachuk - "Offline Second"
Aleksey Bogachuk - "Offline Second"Aleksey Bogachuk - "Offline Second"
Aleksey Bogachuk - "Offline Second"
 
James Allardice - "Building a better login with the credential management API"
James Allardice - "Building a better login with the credential management API"James Allardice - "Building a better login with the credential management API"
James Allardice - "Building a better login with the credential management API"
 
Fedor Skuratov "Dark Social: as messengers change the market of social media ...
Fedor Skuratov "Dark Social: as messengers change the market of social media ...Fedor Skuratov "Dark Social: as messengers change the market of social media ...
Fedor Skuratov "Dark Social: as messengers change the market of social media ...
 
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
Volodymyr Lyubinets "Introduction to big data processing with Apache Spark"
 
Наш ответ Uber’у
Наш ответ Uber’уНаш ответ Uber’у
Наш ответ Uber’у
 
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"Александр Крашенинников "Hadoop High Availability: опыт Badoo"
Александр Крашенинников "Hadoop High Availability: опыт Badoo"
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
 
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
Анатолий Пласковский "Миллионы карточных платежей за месяц, или как потерять ...
 
Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"Mete Atamel "Resilient microservices with kubernetes"
Mete Atamel "Resilient microservices with kubernetes"
 
Andrew Stain "User acquisition"
Andrew Stain "User acquisition"Andrew Stain "User acquisition"
Andrew Stain "User acquisition"
 
Anna Lavrova "How to build a mutually beneficial relationships with the clien...
Anna Lavrova "How to build a mutually beneficial relationships with the clien...Anna Lavrova "How to build a mutually beneficial relationships with the clien...
Anna Lavrova "How to build a mutually beneficial relationships with the clien...
 

Андрей Зайчиков "Архитектура распределенных кластеров NoSQL на AWS"

  • 1.
  • 2. Architecture of NoSQL distributed clusters on AWS Andrey Zaychikov Solutions Architect, Amazon Web Services, Luxembourg
  • 3. Программа и цели презентации • Рассмотрим основные проблемы, связанные с проектированием глобально распределенных кластеров NoSQL и опишем подход к проектированию подобных систем • Посмотрим, как этот подход может быть использован на примере построения глобально распределенных кластеров Cassandra и MongoDB • Разберемся в отличиях и особенностях проектирования в зависимости от типа БД и её реализации
  • 4. Почему появились распределенные NoSQL БД? Сложность схем данных Объем данных Uptime
  • 5. Характерные черты распределенных систем Сложное поведение Сложная структура
  • 9. Значение Cloud Computing для NoSQL Скорость масштабирования Простота организации глобального присутствия On-demand pricing
  • 10. Решения NoSQL на платформе AWS DynamoDB S3 + Athena NoSQL on EC2 (+ EBS) Полностью управляемый сервис баз данных NoSQL, обеспечивающий прогнозируемую высокую производительность с эффективной масштабируемостью. Amazon DynamoDB дает клиентам возможность переложить на AWS административную нагрузку, по управлению распределенными базами данных и их масштабированием. Amazon Athena – это интерактивный сервис запросов, позволяющий легко анализировать данные в хранилище Amazon S3 с помощью стандартных средств SQL. У Athena –нет инфраструктуры, требующей настройки или управления, поэтому можно сразу же приступить к анализу данных. Вычислительное облако Amazon Elastic Compute Cloud (Amazon EC2) – это веб-сервис, предоставляющий безопасные масштабируемые вычислительные ресурсы в облаке. Он помогает разработчикам, облегчая проведение крупномасштабных вычислений в облаке.
  • 11. Подход к проектированию глобально распределенных NoSQL БД • Оценка необходимости создания распределенной системы и применимости NoSQL • Проектирование сценария использования • Выбор технологии NoSQL • Проектирование приложений • Проектирование технической реализации • Проектирование и организация операционной деятельности
  • 12. Нужны ли в вашем проекте распределенные NoSQL решения • Высокая нагрузка существенно изменяющая во времени • Отсутствие существенных требований к консистентности данных • Парадоксально высокий uptime • Относительно простая схема без наличия существенного количества связей • Отсутствие необходимости моментально строить отчетность по всему объему данных • Высокие требования к latency со стороны клиентских приложений • Высокие требования к консистентности данных • Стабильная нагрузка без существенных изменений в течение времени • Относительно редко меняющаяся схема в хорошо определенной предметной области • Отсутствие сверх высоких требований по доступности и latency по запросам со стороны приложений • Необходимость строить отчетность / анализ с использованием полного функционала SQL
  • 14. Выбор технологии • Специфика приложений • Сценарий использования • Модель развертывания • Собственная экспертиза • Необходимость тюнинга • Схема данных • Показатели производительности • Показатели надежности • Специфика развития продукта • Модель обслуживания DynamoDB Cloud-based Self-managed (EC2) Key-value Document-oriented Graph Mixed
  • 18. Проектирование схемы данных • Наборы данных (keyspaces, collections) • Идентификационные ключи и ключи распределения данных • Структура индексов • Структура коллекций • Структура запросов • Структура связей Проектирование схемы данных существенно различается в зависимости от класса БД (document-oriented, key-value, graph, etc.) и в большой степени зависит от особенностей реализации конкретной БД.
  • 26. Выбор типов вычислительных ресурсов и хранилищ Всегда базируется на специфике базы данных, специфике схемы и паттернов доступа. Тип вычислительных ресурсов и хранилищ должен адаптироваться под конкретные нужды. Cassandra MongoDB
  • 30. Планирование вычислительных сетей • Топология сети • Конфигурация сети • Высокая доступность сети / каналов • Маршрутизация • Правила firewall’ов • MTU • Оптимизация трафика
  • 32. Планирование мониторинга • Мониторинг вычислительных ресурсов • CPU • RAM • Disk IO, saturation • Network throughput, saturation • Мониторинг системных процессов • Write Logs • Garbage Collection • Locks • Queueing • Мониторинг узлов кластера БД • Read / Write IO • Read / Write Latency • Internal tasks • Мониторинг запросов приложений • Unavailable Errors • Timeout Errors • Other types of exceptions • Мониторинг состояния кластера • Nodes status • Replication status / lag Сильно зависит от специфики реализации конкретной базы данных на уровне узла (чтение / запись данных) и на уровне кластера (репликация).
  • 35. Планирование обслуживания • Уведомления и реагирование на инциденты • Alarms & notifications (правильные метрики • RCA • Playbook • Настройка и контроль выполнения рутинных операций на уровне кластера • Anti-entropy operations • Cluster-wide clean-ups • Cluster-wide / Shard-wide backups • Other • Настройка и контроль выполнения рутинных операций на уровне узлов кластера • Defragmentation • Compression / Compaction • Encryption • Incremental and Full Backup • Index re-build
  • 36. Пример: Планирование обслуживания • Regular cluster / partition wide repair of data (depends on gc_grace_period) • Cluster wide time sync • Per node compactions procedures • Manual split of SSTables to avoid appearance of HUGE SSTables • Rotate log files • Per node data defragmentation
  • 37. Вместо заключения • Не существует одного решения на все случаи жизни • Контекст имеет значение и решение должно изменяться вслед за изменением контекста • Приложение и код должны быть адаптированы к БД • Наилучший способ проверить ваш выбор БД для применения в вашем решении – провести Proof- of-Concept