SlideShare a Scribd company logo
1 of 31
Александр Сербул
Руководитель направления контроля качества интеграции и внедрений
Архитектура Битрикс24
в Amazon Web Services
– изнутри, с пристрастием
Битрикс24
www.bitrix24.ru
Социальный интранет
Структура компании, календари
Работа с задачами
Документы, поиск
Управление временем
CRM
Битрикс24.Диск
и многое другое.
Технологические цели
Высокая отказоустойчивость
Высокая, «неограниченная» производительность
Автомасштабирование
Простота развития, прозрачность архитектуры
Не усложнять без необходимости 
Битрикс24 – в цифрах
• Зарегистрировано компаний: 54 000 +
• Каждый день используют 4 000 + компаний
• Еще 2 100 + компаний - через день
• 1 600 + сотрудников в максимальной
компании
• 22 Гб - максимальный размер
использованного пространства компаний
• Общий размер файлов в облаке Amazon –
790 Гб
• 10 000 000 программных страниц в день
• Максимальное число подключенных
интернет-магазинов к одной CRM – 12
S3
Elastic Load Balancing
Web 1
Elastic Load Balancing
Dynamic
Web N
…
CloudWatch
+
AutoScaling
Web 1 Web 2 Web N
…
CloudWatch
+
AutoScaling
Архитектура – с птичьего полета
S3
management,
monitoring,
backup
Static
CDN
js, css
DynamicStatic
CDN
js, css
images(clients)
images(clients)
local
cache
local
cache
local
cache
local
cache
local
cache
control cache: memcached
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
master-master replication
master-master replication
master-master replication
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
Web 2
local
cache
AWS – это «живые»
паттерны проектирования
Приложения тоже имеют «нормальные формы»
Многие этого не понимают
Риск изобретения неудачного велосипеда
Риск: «Зачем делать просто, если можно сложно?»
Используем опыт взрослых расширяемых архитектур
Собираем из «кубиков»
Архитектор собирает костяк проекта «из «LEGO»
Основные усилия тратим на нестандартный функционал
Собираем из «кубиков»
Несколько датацентров
Можно быстро мигрировать машины, данные и сервисы
между датацентрами
Спасает при авариях
Свобода перемещения IP-адресов
EC2
EC2
Elastic IP:
23.34.176.15
#!/bin/sh
NODE_INSTANCE_ID=$1
# http://aws.amazon.com/ec2/instance-types/
NODE_TARGET_TYPE='m2.2xlarge'
NODE_ELASTIC_IP=$2
ec2-stop-instances $NODE_INSTANCE_ID
while ec2-describe-instances $NODE_INSTANCE_ID | grep -q stopping
do
sleep 5
echo 'Waiting'
done
ec2-modify-instance-attribute --instance-type $NODE_TARGET_TYPE $NODE_INSTANCE_ID
ec2-start-instances $NODE_INSTANCE_ID
ec2-associate-address $NODE_ELASTIC_IP -i $NODE_INSTANCE_ID
Диски
Elastic Block Store: 1GB – 1TB
Блочное устройство
AFR (annual failure rate) ~0.1-0.5% (при регулярных
снепшотах)
IO: десятки MB/sec – серьезно уступают «железным»
Хорошо помогает софтварный рейд (md)
raid0 или raid0+1?
Диски живут в одном «ДЦ», а их снепшоты между «ДЦ», на
уровне региона
«Provisioned EBS»: до 4000 IOPS/диск
Снепшоты данных и серверов
Делать снепшоты рейдов можно и нужно
Нет инструментов очистки устаревших снепшотов и образов
машин, их нужно писать
Unix: ec2-consistent-snapshot
или:
fsfreeze –f mountpoint (Linux Ext3/4, ReiserFS, JFS, XFS)
AWS SDK for PHP:
AmazonEC2::create_snapshot ( $volume_id, $opt )
AmazonEC2::create_image ( $instance_id, $name, $opt )
fsfreeze –u mountpoint
Сервер веб-приложений
PHP + APC
Модифицированный «1C-Битрикс:
Корпоративный портал» - кластерная
редакция
nginx
Сервер веб-приложений
Балансировщик ELB (SSL)
Сервер MySQL
MySQL (Percona/XtraDB)
Кэш данных (чтение): APC
Кэш данных (запись): memcached
Изменяемые файлы
Simple Storage Service (s3)
Кластер серверов веб-приложений
Region = группа связанных датацентров
ДЦ1 ДЦ2
Балансировщик (ELB)
Группа автомасштабирования (AutoScaling)
Мониторинг (CloudWatch)
Образ машины (AMI)
Автомасштабирование
Балансировка
Работа с файлами в s3
API хранилища для «прозрачной» работы с файлами
API для разработчиков (не используем стандартные
функции для работы с файлами)
Избегаем «диких» файлов
«Прозрачность» для всех модулей системы
Таблица с данными обо всех подключенных хранилищах
Таблица со списком файлов, и указанием, где они хранятся
(можно сразу хранить дополнительную информацию)
Не используем file_size, getimagesize и т.п. – сохраняем все
данные при аплоаде
Раздача статики: s3 + CDN
Веб-сервер
Временные токены к s3 и др.
Раньше для каждой учетки - новый IAM пользователь,
получаем AccessKey, SecretKey. Но есть лимит: макс. 15 000
(по умолчанию – 5 000)
Сейчас используем Security Token Service (STS) – временные
учетные записи
Права внутри одной директории:
PutObject
GetObject
DeleteObject
Масштабирование БД
ДЦ1 ДЦ2
Балансировщики (ELB)
AutoScaling
Мониторинг
(CloudWatch)
Образ машины (AMI)
Percona XtraDB Master-
Master (Active/Passive)
Масштабирование PHP
Вертикальныйшардинг
DB1
(Passive)
DB1
(Active)
DB2
(Passive)
DB2
(Active)
DB3
(Passive)
DB3
(Active)
Миллионы таблиц,
десятки тысяч баз данных
Бэкап БД
Диск (EBS)
Буферы MySQL
(InnoDB) в памяти
Unix: ec2-consistent-snapshot
или:
“FLUSH TABLES WITH READ
LOCK”
fsfreeze –f mountpoint (Linux
Ext3/4, ReiserFS, JFS, XFS)
AWS SDK for PHP:
AmazonEC2::create_snapshot (
$volume_id, $opt )
AmazonEC2::create_image (
$instance_id, $name, $opt )
fsfreeze –u mountpoint
“UNLOCK TABLES”
Данные MySQL
(InnoDB) на диске
Хранилище данных
(на базе S3 = Simple
Storage Service)
Снепшоты.
Автоматически:
консолидация бэкапов,
сохранение только
инкрементов
Обновление кластера
Web 1
Web 2
Web N
Сервер
обновлений
Новый
образ AMI
Elastic
Load
Balancing
Как ставить
обновления на
нодах, не
допустив
рассинхрони-
зации данных
(веб и база)?
Обновление кластера
Как ставить обновления на серверах, не допустив
рассинхронизации данных (веб и база):
Каждое клиентское приложение работает с собственной базой.
Все обновления ставятся на выделенный instance, куда не приходит
нагрузка.
Из этого инстанса делается новый образ AMI.
Последовательно каждая машина помечается «плохой», при этом
новые веб-ноды стартуют уже из нового образа.
В веб-приложении существует механизм проверки соответствия версии
ПО и базы.
Если клиентский запрос приходит на ноду с новым ПО, а база еще
старая, по первому хиту происходит обновление.
Мониторинг
Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не
самописные.
Дежурная смена и/или мгновенные уведомления.
Мониторить – всё.
Но – аккуратно. Тысячи уведомлений будут бесполезны.
Автоматизация типовых реакций.
Мониторить систему мониторинга.
В идеальном мире – распределенная система мониторинга.
«Мониторинг безопасности» – изменения файлов и т.п.
Мониторинг - тест
Nagios
AWS SDK for PHP
Тест
Тест
Тест
Тест
Обработчик события
Обработчик события
Обработчик события
CloudWatch -
автомасштабирование
Обработчик события
Ядро
Прослойка
вспомогательного кода
(PHP, bash)
Утилиты AWS
для консоли
API Амазона
Тест nagios
Pinba
Тест
Мониторинг - обработчик
Nagios
AWS SDK for PHP
Тест
Тест
Тест
Тест
Обработчик события
Обработчик события
Обработчик события
CloudWatch -
автомасштабирование
Обработчик события
Ядро
Обработчик события
Прослойка вспомогательного кода (PHP, bash)
Утилиты AWS
для консоли
API Амазона
Мониторинг и аналитика
В CloudWatch недостаточно возможностей, но используем его
максимально
AWS SDK for PHP и вообще работа с API амазона не всегда
прямолинейна – нужна прослойка
Для основного мониторинга и активной обратной связи
используем Nagios и его обработчики событий
Для аналитики в основном используем Munin, часть данных
берем из CloudWatch
Присматриваемся к gearman, используем SQS (сервис очередей
AWS)
S3
Elastic Load Balancing
Web 1
Elastic Load Balancing
Dynamic
Web N
…
CloudWatch
+
AutoScaling
Web 1 Web 2 Web N
…
CloudWatch
+
AutoScaling
Архитектура – с птичьего полета
S3
management,
monitoring,
backup
Static
CDN
js, css
DynamicStatic
CDN
js, css
images(clients)
images(clients)
local
cache
local
cache
local
cache
local
cache
local
cache
control cache: memcached
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
master-master replication
master-master replication
master-master replication
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
mysqld
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
control cache: memcached
Web 2
local
cache
Спасибо за внимание!
Вопросы?
Александр Сербул
serbul@1c-bitrix.ru
@AlexSerbul

More Related Content

What's hot

Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"ActiveCloud
 
TCO аренда облачной IT инфраструктуры Онланты vs покупка серверов
TCO аренда облачной IT инфраструктуры Онланты vs покупка серверовTCO аренда облачной IT инфраструктуры Онланты vs покупка серверов
TCO аренда облачной IT инфраструктуры Онланты vs покупка серверовZaur Abutalimov
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?Clouds NN
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)Ontico
 
Снижение затрат на ERP системы с облачными технологиями
Снижение затрат на ERP системы с облачными технологиямиСнижение затрат на ERP системы с облачными технологиями
Снижение затрат на ERP системы с облачными технологиямиActiveCloud
 
Development on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir KhramtsovDevelopment on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir Khramtsovphp-user-group-minsk
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, ParallelsNikolay Samokhvalov
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest
 
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Tanya Denisyuk
 
Alexei Vladishev - Zabbix 3.0 что дальше
Alexei Vladishev - Zabbix 3.0 что дальшеAlexei Vladishev - Zabbix 3.0 что дальше
Alexei Vladishev - Zabbix 3.0 что дальшеZabbix
 
Масштабирование социальных приложений с помощью AWS
Масштабирование социальных приложений с помощью AWSМасштабирование социальных приложений с помощью AWS
Масштабирование социальных приложений с помощью AWSz-tech
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ontico
 
Автоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchАвтоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchPositive Hack Days
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийVyacheslav Nikulin
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Ontico
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Ontico
 
опыт Clickberry.com стартап на drupal в облаке павел загор
опыт Clickberry.com   стартап на drupal в облаке павел загоропыт Clickberry.com   стартап на drupal в облаке павел загор
опыт Clickberry.com стартап на drupal в облаке павел загорdrupalconf
 

What's hot (19)

Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
Презентация Сафонова и Прусенка на семинаре "Продавайте больше"
 
TCO аренда облачной IT инфраструктуры Онланты vs покупка серверов
TCO аренда облачной IT инфраструктуры Онланты vs покупка серверовTCO аренда облачной IT инфраструктуры Онланты vs покупка серверов
TCO аренда облачной IT инфраструктуры Онланты vs покупка серверов
 
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
CloudsNN 2013 Демидов Александр. Как жить в облаке без админов?
 
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...
 
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
NAS, Predictions, Preloading, Presudo-Isomorphism / Охрименко Алексей (Acronis)
 
Снижение затрат на ERP системы с облачными технологиями
Снижение затрат на ERP системы с облачными технологиямиСнижение затрат на ERP системы с облачными технологиями
Снижение затрат на ERP системы с облачными технологиями
 
Development on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir KhramtsovDevelopment on the Knee by Vladimir Khramtsov
Development on the Knee by Vladimir Khramtsov
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // ...
 
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
Максим Барышников, Что такое типовые проблемы нагруженных проектов и как их р...
 
Alexei Vladishev - Zabbix 3.0 что дальше
Alexei Vladishev - Zabbix 3.0 что дальшеAlexei Vladishev - Zabbix 3.0 что дальше
Alexei Vladishev - Zabbix 3.0 что дальше
 
Масштабирование социальных приложений с помощью AWS
Масштабирование социальных приложений с помощью AWSМасштабирование социальных приложений с помощью AWS
Масштабирование социальных приложений с помощью AWS
 
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
Ускорение показа превью изображений в Яндекс.Диске / Сергей Нечаев (Яндекс)
 
Что нового в 11.0?
Что нового в 11.0?Что нового в 11.0?
Что нового в 11.0?
 
Автоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе ElasticsearchАвтоматизация анализа логов на базе Elasticsearch
Автоматизация анализа логов на базе Elasticsearch
 
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событийShadow Fight 2: архитектура системы аналитики для миллиарда событий
Shadow Fight 2: архитектура системы аналитики для миллиарда событий
 
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
Как FB, Apple и Google разрушают традиции в компьютерном бизнесе, и почему эт...
 
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
Настройка и оптимизация высоконагруженных J2EE веб-приложений / Шамим Ахмед (...
 
опыт Clickberry.com стартап на drupal в облаке павел загор
опыт Clickberry.com   стартап на drupal в облаке павел загоропыт Clickberry.com   стартап на drupal в облаке павел загор
опыт Clickberry.com стартап на drupal в облаке павел загор
 

Viewers also liked

Юлия Герасимович: Инструменты автоматизации для мероприятий
Юлия Герасимович: Инструменты автоматизации для мероприятийЮлия Герасимович: Инструменты автоматизации для мероприятий
Юлия Герасимович: Инструменты автоматизации для мероприятийit-people
 
Халиков Антон. Выступление на FailConf 2012
Халиков Антон. Выступление на FailConf 2012Халиков Антон. Выступление на FailConf 2012
Халиков Антон. Выступление на FailConf 2012it-people
 
Борис Дьяконов и Евгений Кобзев. Выступление на FailСonf-2013
Борис Дьяконов и Евгений Кобзев. Выступление на FailСonf-2013Борис Дьяконов и Евгений Кобзев. Выступление на FailСonf-2013
Борис Дьяконов и Евгений Кобзев. Выступление на FailСonf-2013it-people
 
Выжимаем максимум из шаблонизатора - Виктор Коцеруба, PyCon RU 2014
Выжимаем максимум из шаблонизатора - Виктор Коцеруба, PyCon RU 2014Выжимаем максимум из шаблонизатора - Виктор Коцеруба, PyCon RU 2014
Выжимаем максимум из шаблонизатора - Виктор Коцеруба, PyCon RU 2014it-people
 
А. Гейн "Что мы делали с большими графами", DUMP-2014
А. Гейн "Что мы делали с большими графами", DUMP-2014А. Гейн "Что мы делали с большими графами", DUMP-2014
А. Гейн "Что мы делали с большими графами", DUMP-2014it-people
 
ekb.py - Naumen
ekb.py - Naumenekb.py - Naumen
ekb.py - Naumenit-people
 
И. Новиков "Нужен ли нам продукт?", DUMP-2014
И. Новиков "Нужен ли нам продукт?", DUMP-2014И. Новиков "Нужен ли нам продукт?", DUMP-2014
И. Новиков "Нужен ли нам продукт?", DUMP-2014it-people
 
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014it-people
 
тестирование и грабли
тестирование и граблитестирование и грабли
тестирование и граблиit-people
 

Viewers also liked (9)

Юлия Герасимович: Инструменты автоматизации для мероприятий
Юлия Герасимович: Инструменты автоматизации для мероприятийЮлия Герасимович: Инструменты автоматизации для мероприятий
Юлия Герасимович: Инструменты автоматизации для мероприятий
 
Халиков Антон. Выступление на FailConf 2012
Халиков Антон. Выступление на FailConf 2012Халиков Антон. Выступление на FailConf 2012
Халиков Антон. Выступление на FailConf 2012
 
Борис Дьяконов и Евгений Кобзев. Выступление на FailСonf-2013
Борис Дьяконов и Евгений Кобзев. Выступление на FailСonf-2013Борис Дьяконов и Евгений Кобзев. Выступление на FailСonf-2013
Борис Дьяконов и Евгений Кобзев. Выступление на FailСonf-2013
 
Выжимаем максимум из шаблонизатора - Виктор Коцеруба, PyCon RU 2014
Выжимаем максимум из шаблонизатора - Виктор Коцеруба, PyCon RU 2014Выжимаем максимум из шаблонизатора - Виктор Коцеруба, PyCon RU 2014
Выжимаем максимум из шаблонизатора - Виктор Коцеруба, PyCon RU 2014
 
А. Гейн "Что мы делали с большими графами", DUMP-2014
А. Гейн "Что мы делали с большими графами", DUMP-2014А. Гейн "Что мы делали с большими графами", DUMP-2014
А. Гейн "Что мы делали с большими графами", DUMP-2014
 
ekb.py - Naumen
ekb.py - Naumenekb.py - Naumen
ekb.py - Naumen
 
И. Новиков "Нужен ли нам продукт?", DUMP-2014
И. Новиков "Нужен ли нам продукт?", DUMP-2014И. Новиков "Нужен ли нам продукт?", DUMP-2014
И. Новиков "Нужен ли нам продукт?", DUMP-2014
 
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014
 
тестирование и грабли
тестирование и граблитестирование и грабли
тестирование и грабли
 

Similar to DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри - Сербул Александр

Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...ForkConf
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - ПроизводительностьAlexander Demidov
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров 1С-Битрикс
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Artur Baranok
 
Современные технологии сайтостроения для решения бизнес-задач
Современные технологии сайтостроения для решения бизнес-задач Современные технологии сайтостроения для решения бизнес-задач
Современные технологии сайтостроения для решения бизнес-задач simai
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Alexey Bokov
 
Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?
Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?
Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?ActiveCloud
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
Демонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОДДемонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОДCisco Russia
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Ontico
 
1С-Битрикс - Версия 10.0
1С-Битрикс - Версия 10.01С-Битрикс - Версия 10.0
1С-Битрикс - Версия 10.0Alexander Demidov
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 

Similar to DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри - Сербул Александр (20)

Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
(2 часть) 1С-Битрикс. Производительность проекта. Архитектура проекта «Битрик...
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Презентация технологии веб-кластеров
Презентация технологии веб-кластеров  Презентация технологии веб-кластеров
Презентация технологии веб-кластеров
 
Веб-кластер
Веб-кластерВеб-кластер
Веб-кластер
 
Битрикс-Framework
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...Новые возможности развертывания и масштабирования open source приложений в Az...
Новые возможности развертывания и масштабирования open source приложений в Az...
 
Современные технологии сайтостроения для решения бизнес-задач
Современные технологии сайтостроения для решения бизнес-задач Современные технологии сайтостроения для решения бизнес-задач
Современные технологии сайтостроения для решения бизнес-задач
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
 
Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?
Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?
Облачные технологии и инфраструктура как сервис (IaaS). Зачем это нужно бизнесу?
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
Webcluster cases
Webcluster casesWebcluster cases
Webcluster cases
 
Демонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОДДемонстрация возможностей по автоматизации ЦОД
Демонстрация возможностей по автоматизации ЦОД
 
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
Тестирование и оптимизация 1С-Битрикс (Александр Демидов, Олег Бунин)
 
Губкин Александр
Губкин АлександрГубкин Александр
Губкин Александр
 
1С-Битрикс - Версия 10.0
1С-Битрикс - Версия 10.01С-Битрикс - Версия 10.0
1С-Битрикс - Версия 10.0
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 

More from it-people

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Coit-people
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-people
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-people
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндексit-people
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...it-people
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalrit-people
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...it-people
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАНit-people
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банкit-people
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-people
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-people
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-people
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-people
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндексit-people
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-people
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognicianit-people
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...it-people
 

More from it-people (20)

«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
«Про аналитику и серебряные пули» Александр Подсобляев, Rambler&Co
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrains
 
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
«Gevent — быть или не быть?» Александр Мокров, Positive Technologies
 
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
 
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
«How I Learned to Stop Worrying and Love the BFG: нагрузочное тестирование со...
 
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
«Write once run anywhere — почём опиум для народа?» Игорь Новиков, Scalr
 
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
«Gensim — тематическое моделирование для людей» Иван Меньших, Лев Константино...
 
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН«Тотальный контроль производительности» Михаил Юматов, ЦИАН
«Тотальный контроль производительности» Михаил Юматов, ЦИАН
 
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
«Детские болезни live-чата» Ольга Сентемова, Тинькофф Банк
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...
 
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologies
 
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn System
 
«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies«(Без)опасный Python», Иван Цыганов, Positive Technologies
«(Без)опасный Python», Иван Цыганов, Positive Technologies
 
«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс«Python of Things», Кирилл Борисов, Яндекс
«Python of Things», Кирилл Борисов, Яндекс
 
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...
 
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
«Клиенту и серверу нужно поговорить» Прокопов Никита, Cognician
 
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
«Кошелек или деньги: сложный выбор между памятью и процессором» Алексеенко Иг...
 

DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри - Сербул Александр

  • 1. Александр Сербул Руководитель направления контроля качества интеграции и внедрений Архитектура Битрикс24 в Amazon Web Services – изнутри, с пристрастием
  • 2.
  • 3. Битрикс24 www.bitrix24.ru Социальный интранет Структура компании, календари Работа с задачами Документы, поиск Управление временем CRM Битрикс24.Диск и многое другое.
  • 4. Технологические цели Высокая отказоустойчивость Высокая, «неограниченная» производительность Автомасштабирование Простота развития, прозрачность архитектуры Не усложнять без необходимости 
  • 5. Битрикс24 – в цифрах • Зарегистрировано компаний: 54 000 + • Каждый день используют 4 000 + компаний • Еще 2 100 + компаний - через день • 1 600 + сотрудников в максимальной компании • 22 Гб - максимальный размер использованного пространства компаний • Общий размер файлов в облаке Amazon – 790 Гб • 10 000 000 программных страниц в день • Максимальное число подключенных интернет-магазинов к одной CRM – 12
  • 6. S3 Elastic Load Balancing Web 1 Elastic Load Balancing Dynamic Web N … CloudWatch + AutoScaling Web 1 Web 2 Web N … CloudWatch + AutoScaling Архитектура – с птичьего полета S3 management, monitoring, backup Static CDN js, css DynamicStatic CDN js, css images(clients) images(clients) local cache local cache local cache local cache local cache control cache: memcached mysqld mysqld mysqld mysqld mysqld mysqld master-master replication master-master replication master-master replication mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld control cache: memcached control cache: memcached control cache: memcached control cache: memcached control cache: memcached Web 2 local cache
  • 7. AWS – это «живые» паттерны проектирования Приложения тоже имеют «нормальные формы» Многие этого не понимают Риск изобретения неудачного велосипеда Риск: «Зачем делать просто, если можно сложно?» Используем опыт взрослых расширяемых архитектур
  • 8. Собираем из «кубиков» Архитектор собирает костяк проекта «из «LEGO» Основные усилия тратим на нестандартный функционал
  • 10. Несколько датацентров Можно быстро мигрировать машины, данные и сервисы между датацентрами Спасает при авариях
  • 12. #!/bin/sh NODE_INSTANCE_ID=$1 # http://aws.amazon.com/ec2/instance-types/ NODE_TARGET_TYPE='m2.2xlarge' NODE_ELASTIC_IP=$2 ec2-stop-instances $NODE_INSTANCE_ID while ec2-describe-instances $NODE_INSTANCE_ID | grep -q stopping do sleep 5 echo 'Waiting' done ec2-modify-instance-attribute --instance-type $NODE_TARGET_TYPE $NODE_INSTANCE_ID ec2-start-instances $NODE_INSTANCE_ID ec2-associate-address $NODE_ELASTIC_IP -i $NODE_INSTANCE_ID
  • 13. Диски Elastic Block Store: 1GB – 1TB Блочное устройство AFR (annual failure rate) ~0.1-0.5% (при регулярных снепшотах) IO: десятки MB/sec – серьезно уступают «железным» Хорошо помогает софтварный рейд (md) raid0 или raid0+1? Диски живут в одном «ДЦ», а их снепшоты между «ДЦ», на уровне региона «Provisioned EBS»: до 4000 IOPS/диск
  • 14. Снепшоты данных и серверов Делать снепшоты рейдов можно и нужно Нет инструментов очистки устаревших снепшотов и образов машин, их нужно писать Unix: ec2-consistent-snapshot или: fsfreeze –f mountpoint (Linux Ext3/4, ReiserFS, JFS, XFS) AWS SDK for PHP: AmazonEC2::create_snapshot ( $volume_id, $opt ) AmazonEC2::create_image ( $instance_id, $name, $opt ) fsfreeze –u mountpoint
  • 15. Сервер веб-приложений PHP + APC Модифицированный «1C-Битрикс: Корпоративный портал» - кластерная редакция nginx Сервер веб-приложений Балансировщик ELB (SSL) Сервер MySQL MySQL (Percona/XtraDB) Кэш данных (чтение): APC Кэш данных (запись): memcached Изменяемые файлы Simple Storage Service (s3)
  • 16. Кластер серверов веб-приложений Region = группа связанных датацентров ДЦ1 ДЦ2 Балансировщик (ELB) Группа автомасштабирования (AutoScaling) Мониторинг (CloudWatch) Образ машины (AMI)
  • 19. Работа с файлами в s3 API хранилища для «прозрачной» работы с файлами API для разработчиков (не используем стандартные функции для работы с файлами) Избегаем «диких» файлов «Прозрачность» для всех модулей системы Таблица с данными обо всех подключенных хранилищах Таблица со списком файлов, и указанием, где они хранятся (можно сразу хранить дополнительную информацию) Не используем file_size, getimagesize и т.п. – сохраняем все данные при аплоаде
  • 20. Раздача статики: s3 + CDN Веб-сервер
  • 21. Временные токены к s3 и др. Раньше для каждой учетки - новый IAM пользователь, получаем AccessKey, SecretKey. Но есть лимит: макс. 15 000 (по умолчанию – 5 000) Сейчас используем Security Token Service (STS) – временные учетные записи Права внутри одной директории: PutObject GetObject DeleteObject
  • 22. Масштабирование БД ДЦ1 ДЦ2 Балансировщики (ELB) AutoScaling Мониторинг (CloudWatch) Образ машины (AMI) Percona XtraDB Master- Master (Active/Passive) Масштабирование PHP Вертикальныйшардинг DB1 (Passive) DB1 (Active) DB2 (Passive) DB2 (Active) DB3 (Passive) DB3 (Active) Миллионы таблиц, десятки тысяч баз данных
  • 23. Бэкап БД Диск (EBS) Буферы MySQL (InnoDB) в памяти Unix: ec2-consistent-snapshot или: “FLUSH TABLES WITH READ LOCK” fsfreeze –f mountpoint (Linux Ext3/4, ReiserFS, JFS, XFS) AWS SDK for PHP: AmazonEC2::create_snapshot ( $volume_id, $opt ) AmazonEC2::create_image ( $instance_id, $name, $opt ) fsfreeze –u mountpoint “UNLOCK TABLES” Данные MySQL (InnoDB) на диске Хранилище данных (на базе S3 = Simple Storage Service) Снепшоты. Автоматически: консолидация бэкапов, сохранение только инкрементов
  • 24. Обновление кластера Web 1 Web 2 Web N Сервер обновлений Новый образ AMI Elastic Load Balancing Как ставить обновления на нодах, не допустив рассинхрони- зации данных (веб и база)?
  • 25. Обновление кластера Как ставить обновления на серверах, не допустив рассинхронизации данных (веб и база): Каждое клиентское приложение работает с собственной базой. Все обновления ставятся на выделенный instance, куда не приходит нагрузка. Из этого инстанса делается новый образ AMI. Последовательно каждая машина помечается «плохой», при этом новые веб-ноды стартуют уже из нового образа. В веб-приложении существует механизм проверки соответствия версии ПО и базы. Если клиентский запрос приходит на ноду с новым ПО, а база еще старая, по первому хиту происходит обновление.
  • 26. Мониторинг Лучше – стандартные решения (Nagios, Zabbix и т.п.), а не самописные. Дежурная смена и/или мгновенные уведомления. Мониторить – всё. Но – аккуратно. Тысячи уведомлений будут бесполезны. Автоматизация типовых реакций. Мониторить систему мониторинга. В идеальном мире – распределенная система мониторинга. «Мониторинг безопасности» – изменения файлов и т.п.
  • 27. Мониторинг - тест Nagios AWS SDK for PHP Тест Тест Тест Тест Обработчик события Обработчик события Обработчик события CloudWatch - автомасштабирование Обработчик события Ядро Прослойка вспомогательного кода (PHP, bash) Утилиты AWS для консоли API Амазона Тест nagios Pinba Тест
  • 28. Мониторинг - обработчик Nagios AWS SDK for PHP Тест Тест Тест Тест Обработчик события Обработчик события Обработчик события CloudWatch - автомасштабирование Обработчик события Ядро Обработчик события Прослойка вспомогательного кода (PHP, bash) Утилиты AWS для консоли API Амазона
  • 29. Мониторинг и аналитика В CloudWatch недостаточно возможностей, но используем его максимально AWS SDK for PHP и вообще работа с API амазона не всегда прямолинейна – нужна прослойка Для основного мониторинга и активной обратной связи используем Nagios и его обработчики событий Для аналитики в основном используем Munin, часть данных берем из CloudWatch Присматриваемся к gearman, используем SQS (сервис очередей AWS)
  • 30. S3 Elastic Load Balancing Web 1 Elastic Load Balancing Dynamic Web N … CloudWatch + AutoScaling Web 1 Web 2 Web N … CloudWatch + AutoScaling Архитектура – с птичьего полета S3 management, monitoring, backup Static CDN js, css DynamicStatic CDN js, css images(clients) images(clients) local cache local cache local cache local cache local cache control cache: memcached mysqld mysqld mysqld mysqld mysqld mysqld master-master replication master-master replication master-master replication mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld mysqld control cache: memcached control cache: memcached control cache: memcached control cache: memcached control cache: memcached Web 2 local cache
  • 31. Спасибо за внимание! Вопросы? Александр Сербул serbul@1c-bitrix.ru @AlexSerbul