Tupitsyn High Load

Post on 01-Nov-2014

1.848 views 3 download

Tags:

description

 

Transcript of Tupitsyn High Load

   

Amazon Web Services: инструменты обеспечения

масштабируемости иотказоустойчивости

Дмитрий Тупицынdt@nevesomo.com

HighLoad++HighLoad++20082008

   

Структура доклада

Преимущества EC2 Проблемы EC2 Дополнительные службы

Simple Storage Service (S3) SimpleDB (SDB) Simple Queue Services (SQS)

Языки и библиотеки

   

1Часть

Преимущества EC2

   

Простота

Простой интерфейс к EC2 и другим службам Просто запускать сервера Время запуска/останова инстанции (обычно) меньше 1 минуты

Не нужен системный администратор Нет проблем с сетью и железом

   

Минимизация затрат

Временное добавление серверов Пиковая нагрузка зачастую в 10 и более раз выше средней но длится 1­3 часа в сутки

Повышенная нагрузки во время PR­акций или сезоных изменений

Сервера для инфраструктурных,периодических задач (бакап, подсчет статиситки)

Временное отключение серверов Часть времени (ночью, выходные) сервера простаивают

   

Переход к фактическойнагрузке

Обычно:  Параметр ­ пиковая нагрузка Задача – минимизация количества серверов во время пиковой нагрузки

В облаках:  Параметр – фактическая загрузка Задача – минимизация серверов во время всего цикла работы системы

   

Снижение рисков

Не требуется больших финансовых вливаний в инфраструктуру Особенно важно для нефинансируемых стартапов

Бизнес модель работает? (ДА) Быстро добавляем сервера (НЕТ) Не тратимся на аренду

   

2Часть

Проблемы EC2

   

?Что изменилось

Все проблемы с сетью и железом решаются отключением проблемных и запуском новых серверов

При выключении сервера теряются все его данные не сохраненные во внешние службы (S3 и т.д.)

Новый сервер имеет неизвестный заранее IP адрес (как внешний так и внутренний)

   

:Проблема Потеря данных серверов

Диски сервера /dev/sda1   10Gb / (image образ системы) /dev/sda2 147Gb /mnt (временный диск)

/ ­ при запуске копируется из image /mnt – при запуске всегда чистый При остановке сервера/instance ничего не сохраняется!!!

   

1:РешениеSimple Storage Service (S3) Самое простое решение Неограниченный объем хранилища Доступен как из EC2 так и ”снаружи” Цена: 0.15$Гб + $ за количество запросов Недостаток

чтобы избежать потерь данных при ”падении” серверов необходимо часто реплицировать данные на S3

Медлено работает с большим количеством файлов

   

2:РешениеElastic Block Store (EBS)

Монтируется как блочное устройство Размер от 1Гб до 1Тб Механизм создания снэпшотов в S3 Снэпшоты инкрементальные Данные реплицируются между несколькими серверами в одном дата­центре (S3­в разных)

Цена: 0.1$/Гб + 0.1$ за 1М операций

   

:Проблема IP Изменение адресов

ip remap средствами EC2 Ограничение 5 адресов. Можно увеличить Фиксированный ip стоит 0.01$/час ~ 7.2$/месяц

Традиционные методы Развернуть свой DNS сервер Развернуть свой Proxy сервер

   

:Проблема Расположение

-дата центров США Европа России нет

Это может стать серьезным препятствием для сервисов нацеленных на российский рынок

   

3Часть

Дополнительные службы

   

Simple Storage Service (S3)

Простой интерфейс Масштабируемость

Неограниченный объем хранилища и размер отдельных файлов

Высокая скорость доступа

Отказоустойчивость Репликация данных в различных дата­центрах

   

S3Применение

Хранилище (файлы, фотки ..) Бекапы Images – образы машин Снэпшоты EBS Хранение состояний серверов Эмуляция файловой системы – плохая идея 

(используйте EBS) Медленно работает с большим количеством маленьких файлов

   

SimpleDB (SDB)

Домен = Таблица

   

SDBЗапросы к

Бинарные операторы: =, !=, <, > <=, >=, STARTS­WITH, AND, OR, NOT, INTERSECTION, UNION

Унарный оператор: SORT Примеры:

[ 'Type' = 'db' ] [ 'IP' starts­with '75.101.249.' ] [ 'Status'='running' ] intersection [ 'Type'='db' ]

   

SDB Преимущества над БД Простота

Нет формата данных  Нет  индексирования

Большие объемы (до 10Гб в домене, до 100 доменов/таблиц)

Не требуется администрировать Масштабируемость Отказоустойчивость

   

SDBНедостатки

Примитивные запросы Нет связей между таблицами Латентность

Запись распростроняется не мгновенно. При большом объеме задержка до нескольких секунд

Только лексикографический порядок Для текстового поиска придется строить свой индекс

   

SDBПример использования

Хранение информации о системе в целом Адреса серверов Состояния серверов Измерения производительности серверов

Логи системы Время запуска/останова серверов Обнаруженные ошибки Время поступление и время обработки заданий

   

Simple Queue Services (SQS)

Неограниченное количество очередей и сообщений

Сообщения текстовые до 8Кб Хранятся 4 дня

   

SQS?Зачем

Уменьшает связность между серверами поставщиками заданий и обработчиками Ассинхронность Легко масштабировать Аналогия ­ паттерн цепочка ответственности

Сохранность связи При падении сервера сообщение не потеряется Аналоги – Java Message Service, Microsoft Message 

Queuing

   

Передача тяжелыхсообщений

Максимальная длинна сообщения 8Кб Можно использовать ссылки вместо данных

SimpleDB ( ItemID=3752 ) S3 ( storage/images/img436.jpg ) Сервера и данные на нем (server3, /var/storage/user342)

   

Выводы по службам

Для гибкого управления серверной инфраструктурой требутся некоторый слой промежуточного ПО

Можно создавать свое промежуточное ПО Придется самостоятельно обеспечивать масштабируемость и отказоустойчивость

Проще воспользоваться службами Amazon (S3, SDB, SQS ...)

   

4Часть

Языки и библиотеки

   

Библиотеки

”Родные” библиотеки на aws.amazon.com EC2: Command­Line tools для unix shell AWS: Java, C#, Perl, PHP, VB.NET

Python http://code.google.com/p/boto/

Erlang EC2: http://code.google.com/p/erlawys/ AWS: http://code.google.com/p/erlaws/

   

Вопросы?

Если возникнут позже,задавайте на dt@nevesomo.com