SlideShare a Scribd company logo
1 of 40
Download to read offline
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
S3	+	Athena NoSQL	on	EC2
Полностью	управляемый	
сервис	баз	данных	NoSQL,	
обеспечивающий	
прогнозируемую	высокую	
производительность	с	
эффективной	
масштабируемостью.	
Amazon DynamoDB дает	
клиентам	возможность	
переложить	на	AWS	
административную	нагрузку,	
по	управлению	
распределенными	базами	
данных	и	их	
масштабированием.
Amazon Athena – это	
интерактивный	сервис	
запросов,	позволяющий	
легко	анализировать	
данные	в	хранилище	
Amazon S3	с	помощью	
стандартных	средств SQL.	
У	Athena –нет	
инфраструктуры,	
требующей	настройки	или	
управления,	поэтому	
можно	сразу	же	
приступить	к	анализу	
данных.	
Вычислительное	облако	
Amazon Elastic Compute
Cloud (Amazon EC2) – это	
веб-сервис,	
предоставляющий	
безопасные	
масштабируемые	
вычислительные	ресурсы	
в	облаке.	Он	помогает	
разработчикам,	облегчая	
проведение	
крупномасштабных	
вычислений	в	облаке.
Amazon EMR – это	веб-
сервис,	который	
позволяет	компаниям,	
ученым,	аналитикам	и	
разработчикам	легко	и	
недорого	обрабатывать	
огромные	объемы	
данных.	В	нем	
используется	удаленная	
инфраструктура	Hadoop,	
работающая	в	
масштабной	
вычислительной	
инфраструктуре	Amazon
Elastic Compute Cloud.
EMR
Подход	к	проектированию	глобально	
распределенных	NoSQL	БД
• Оценка	необходимости	создания	
распределенной	системы	и	
применимости	NoSQL
• Проектирование	сценария	
использования
• Выбор	технологии	NoSQL
• Проектирование	приложений
• Проектирование	технической	
реализации
• Проектирование	и	организация	
операционной	деятельности
Нужны	ли	в	вашем	проекте	распределенные	NoSQL	
решения
• Высокая	нагрузка	существенно	
изменяющаяся	во	времени
• Отсутствие	критических	требований	к	
консистентности данных
• Парадоксально	высокий	uptime
• Относительно	простая	схема	без	наличия	
значительного	количества	связей
• Отсутствие	необходимости	моментально	
строить	отчетность	по	всему	объему	данных
• Высокие	требования	к	latency	со	стороны	
клиентских	приложений
• Высокие	требования	к	консистентности данных
• Стабильная	нагрузка	без	существенных	
изменений	в	течение	времени
• Относительно	редко	меняющаяся	схема	в	
хорошо	определенной	предметной	области
• Отсутствие	сверх	высоких	требований	по	
доступности	и	latency	по	запросам	со	стороны	
приложений
• Необходимость	строить	отчетность	/	анализ	с	
использованием	полного	функционала	SQL
Проектирование	сценария	использования
Выбор	технологии:	Обзор
Пример подхода	к	выбору	технологии
Изучение	технологии
Crash	course:	Cassandra
Crash	course:	MongoDB
Проектирование	схемы	данных
• Наборы	данных	(keyspaces,	
collections)
• Идентификационные	ключи	
и	ключи	распределения	
данных
• Структура	индексов
• Структура	коллекций
• Структура	запросов
• Структура	связей
Проектирование	схемы	данных	существенно	различается	в	зависимости	от	класса	
БД	(document-oriented,	key-value,	graph,	etc.) и	в	большой	степени	зависит	от	
особенностей	реализации	конкретной	БД.
Проектирование	схемы	данных
Проектирование	схемы	данных
• Правильный	выбор	
PRIMARY_KEY
• Корректное	разделение	на	
keyspaces и	column	families
• Массовое	дублирование	
данных
• Структура	запросов
• Пред	процессинг	данных	
для	формирования	
отчетности	и	read-intensive	
workloads
Проектирование	взаимодействия	приложений	с	БД
Проектирование	взаимодействия	
приложений	с	БД
Проектирование	взаимодействия	
приложений	с	БД
Выбор	географии	развертывания
Проектирование	архитектуры	развертывания
Проектирование	архитектуры	
развертывания
Проектирование	архитектуры	
развертывания
Выбор	типов	вычислительных	ресурсов	и	хранилищ
Всегда	базируется	на	специфике	базы	данных,	специфике	схемы	и	паттернов	
доступа.	Тип	вычислительных	ресурсов	и	хранилищ	должен	адаптироваться	под	
конкретные	нужды.
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

ASP.NET MVC+ Windows Azure: step by step guide
ASP.NET MVC+ Windows Azure: step by step guideASP.NET MVC+ Windows Azure: step by step guide
ASP.NET MVC+ Windows Azure: step by step guideMykhail Galushko
 
Как построить недорогое и надежное облачное решение?
Как построить недорогое и надежное облачное решение?Как построить недорогое и надежное облачное решение?
Как построить недорогое и надежное облачное решение?DataLine
 
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...Ontico
 

What's hot (7)

Webcluster cases
Webcluster casesWebcluster cases
Webcluster cases
 
ASP.NET MVC+ Windows Azure: step by step guide
ASP.NET MVC+ Windows Azure: step by step guideASP.NET MVC+ Windows Azure: step by step guide
ASP.NET MVC+ Windows Azure: step by step guide
 
Sql azure и все, все, все...
Sql azure и все, все, все...Sql azure и все, все, все...
Sql azure и все, все, все...
 
Как построить недорогое и надежное облачное решение?
Как построить недорогое и надежное облачное решение?Как построить недорогое и надежное облачное решение?
Как построить недорогое и надежное облачное решение?
 
1c bitrix-cluster-et
1c bitrix-cluster-et1c bitrix-cluster-et
1c bitrix-cluster-et
 
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
Реализация бессерверного бэкенда мобильного приложения на базе AWS / Кирилл П...
 
Highload: проблемы и решения
Highload: проблемы и решенияHighload: проблемы и решения
Highload: проблемы и решения
 

Similar to Architecture of NoSQL distributed clusters on AWS

NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015Shamim bhuiyan
 
Облачная стратегия Cisco
Облачная стратегия CiscoОблачная стратегия Cisco
Облачная стратегия CiscoCisco Russia
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"Technopark
 
Особенности тестирования NoSql приложений
Особенности тестирования NoSql приложенийОсобенности тестирования NoSql приложений
Особенности тестирования NoSql приложенийUladzimir Kryvenka
 
Особенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийОсобенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийSQALab
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Cisco Russia
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStackIlya Alekseyev
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureNatalia Efimtseva
 
1С-Битрикс - Веб-кластер
1С-Битрикс - Веб-кластер1С-Битрикс - Веб-кластер
1С-Битрикс - Веб-кластерAlexander Demidov
 
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft AzureJelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft AzureDmitry Lazarenko
 
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!Cisco Russia
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Alexey Zinoviev
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияCisco Russia
 
Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Cisco Russia
 
04.Службы Azure - подробнее
04.Службы Azure - подробнее04.Службы Azure - подробнее
04.Службы Azure - подробнееAlexander Babich
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияCisco Russia
 

Similar to Architecture of NoSQL distributed clusters on AWS (20)

NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015NoSQL - World IT Planet, Saint Petersburg 2015
NoSQL - World IT Planet, Saint Petersburg 2015
 
Облачная стратегия Cisco
Облачная стратегия CiscoОблачная стратегия Cisco
Облачная стратегия Cisco
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
Особенности тестирования NoSql приложений
Особенности тестирования NoSql приложенийОсобенности тестирования NoSql приложений
Особенности тестирования NoSql приложений
 
Особенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложенийОсобенности тестирования NoSQL приложений
Особенности тестирования NoSQL приложений
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
 
Ms it cup win-team - мевв
Ms it cup   win-team - меввMs it cup   win-team - мевв
Ms it cup win-team - мевв
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
Приватный клауд на базе OpenStack
Приватный клауд на базе OpenStackПриватный клауд на базе OpenStack
Приватный клауд на базе OpenStack
 
Миграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows AzureМиграция существующих приложений в Windows Azure
Миграция существующих приложений в Windows Azure
 
1С-Битрикс - Веб-кластер
1С-Битрикс - Веб-кластер1С-Битрикс - Веб-кластер
1С-Битрикс - Веб-кластер
 
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft AzureJelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
Jelastic PaaS for DevOps: Hybrid Cloud based on Microsoft Azure
 
Azure - обзор
Azure - обзорAzure - обзор
Azure - обзор
 
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
 
MW
MWMW
MW
 
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
Выбор NoSQL базы данных для вашего проекта: "Не в свои сани не садись"
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»Готовые решения Cisco для построения «частного облака»
Готовые решения Cisco для построения «частного облака»
 
04.Службы Azure - подробнее
04.Службы Azure - подробнее04.Службы Azure - подробнее
04.Службы Azure - подробнее
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 

More from Aleksandr Maklakov

GraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaGraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaAleksandr Maklakov
 
AWS Certification from scratch
AWS Certification from scratchAWS Certification from scratch
AWS Certification from scratchAleksandr Maklakov
 
How to stop dreaming about security and start implementing
How to stop dreaming about security and start implementingHow to stop dreaming about security and start implementing
How to stop dreaming about security and start implementingAleksandr Maklakov
 
Secure perimeter with AWS workspaces
Secure perimeter with  AWS workspacesSecure perimeter with  AWS workspaces
Secure perimeter with AWS workspacesAleksandr Maklakov
 
How to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startupsHow to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startupsAleksandr Maklakov
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDAleksandr Maklakov
 
Managing users and aws accounts
Managing users and aws accountsManaging users and aws accounts
Managing users and aws accountsAleksandr Maklakov
 

More from Aleksandr Maklakov (14)

GraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS LambdaGraphQL backend with AWS AppSync & AWS Lambda
GraphQL backend with AWS AppSync & AWS Lambda
 
AWS Certification from scratch
AWS Certification from scratchAWS Certification from scratch
AWS Certification from scratch
 
Chronicle of ReInvent 2019
Chronicle of ReInvent 2019Chronicle of ReInvent 2019
Chronicle of ReInvent 2019
 
How to stop dreaming about security and start implementing
How to stop dreaming about security and start implementingHow to stop dreaming about security and start implementing
How to stop dreaming about security and start implementing
 
Secure perimeter with AWS workspaces
Secure perimeter with  AWS workspacesSecure perimeter with  AWS workspaces
Secure perimeter with AWS workspaces
 
Going Serverless on AWS
Going Serverless on AWSGoing Serverless on AWS
Going Serverless on AWS
 
AWS Security Best Practices
AWS Security Best PracticesAWS Security Best Practices
AWS Security Best Practices
 
AWS Container services
AWS Container servicesAWS Container services
AWS Container services
 
How to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startupsHow to implement DevSecOps on AWS for startups
How to implement DevSecOps on AWS for startups
 
AWS CloudFront
AWS CloudFrontAWS CloudFront
AWS CloudFront
 
HOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLDHOW TO DRONE.IO IN CI/CD WORLD
HOW TO DRONE.IO IN CI/CD WORLD
 
Amazon EC2 container service
Amazon EC2 container serviceAmazon EC2 container service
Amazon EC2 container service
 
Continuous operations in AWS
Continuous operations in AWSContinuous operations in AWS
Continuous operations in AWS
 
Managing users and aws accounts
Managing users and aws accountsManaging users and aws accounts
Managing users and aws accounts
 

Architecture of NoSQL distributed clusters on AWS