Tupitsyn High Load

1,399 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,399
On SlideShare
0
From Embeds
0
Number of Embeds
476
Actions
Shares
0
Downloads
36
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tupitsyn High Load

  1. 1. Amazon Web Services: инструменты обеспечения масштабируемости и отказоустойчивости Дмитрий Тупицын dt@nevesomo.com HighLoad++   2008  
  2. 2. Структура доклада  Преимущества EC2  Проблемы EC2  Дополнительные службы  Simple Storage Service (S3)  SimpleDB (SDB)  Simple Queue Services (SQS)  Языки и библиотеки    
  3. 3. Часть 1 Преимущества EC2    
  4. 4. Простота  Простой интерфейс к EC2 и другим службам  Просто запускать сервера  Время запуска/останова инстанции (обычно)  меньше 1 минуты  Не нужен системный администратор  Нет проблем с сетью и железом    
  5. 5. Минимизация затрат  Временное добавление серверов  Пиковая нагрузка зачастую в 10 и более раз выше  средней но длится 1­3 часа в сутки  Повышенная нагрузки во время PR­акций или сезоных  изменений  Сервера для инфраструктурных,периодических задач  (бакап, подсчет статиситки)  Временное отключение серверов  Часть времени (ночью, выходные) сервера    простаивают  
  6. 6. Переход к фактической нагрузке  Обычно:   Параметр ­ пиковая нагрузка  Задача – минимизация количества серверов во время  пиковой нагрузки  В облаках:   Параметр – фактическая загрузка  Задача – минимизация серверов во время всего цикла  работы системы    
  7. 7. Снижение рисков  Не требуется больших финансовых вливаний в  инфраструктуру  Особенно важно для нефинансируемых стартапов  Бизнес модель работает?  (ДА) Быстро добавляем сервера  (НЕТ) Не тратимся на аренду    
  8. 8. Часть 2 Проблемы EC2    
  9. 9. Что изменилось?  Все проблемы с сетью и железом решаются  отключением проблемных и запуском новых  серверов  При выключении сервера теряются все его  данные не сохраненные во внешние службы (S3 и  т.д.)  Новый сервер имеет неизвестный заранее IP  адрес (как внешний так и внутренний)    
  10. 10. Проблема: Потеря данных серверов  Диски сервера  /dev/sda1   10Gb / (image образ системы)  /dev/sda2 147Gb /mnt (временный диск)  / ­ при запуске копируется из image  /mnt – при запуске всегда чистый  При остановке сервера/instance ничего не  сохраняется!!!    
  11. 11. Решение 1: Simple Storage Service (S3)  Самое простое решение  Неограниченный объем хранилища  Доступен как из EC2 так и ”снаружи”  Цена: 0.15$Гб + $ за количество запросов  Недостаток  чтобы избежать потерь данных при ”падении”  серверов необходимо часто реплицировать данные на  S3    Медлено работает с большим количеством файлов  
  12. 12. Решение 2: Elastic Block Store (EBS)  Монтируется как блочное устройство  Размер от 1Гб до 1Тб  Механизм создания снэпшотов в S3  Снэпшоты инкрементальные  Данные реплицируются между несколькими  серверами в одном дата­центре (S3­в разных)  Цена: 0.1$/Гб + 0.1$ за 1М операций    
  13. 13. Проблема: Изменение IP адресов  ip remap средствами EC2  Ограничение 5 адресов. Можно увеличить  Фиксированный ip стоит 0.01$/час ~ 7.2$/месяц  Традиционные методы  Развернуть свой DNS сервер  Развернуть свой Proxy сервер    
  14. 14. Проблема: Расположение дата-центров  США  Европа  России нет  Это может стать серьезным препятствием для  сервисов нацеленных на российский рынок    
  15. 15. Часть 3 Дополнительные службы    
  16. 16. Simple Storage Service (S3)  Простой интерфейс  Масштабируемость  Неограниченный объем хранилища и размер  отдельных файлов  Высокая скорость доступа  Отказоустойчивость  Репликация данных в различных дата­центрах    
  17. 17. Применение S3  Хранилище (файлы, фотки ..)  Бекапы  Images – образы машин  Снэпшоты EBS  Хранение состояний серверов  Эмуляция файловой системы – плохая идея  (используйте EBS)  Медленно работает с большим количеством    маленьких файлов  
  18. 18. SimpleDB (SDB)  Домен = Таблица    
  19. 19. Запросы к SDB  Бинарные операторы: =, !=, <, > <=, >=, STARTS­ WITH, AND, OR, NOT, INTERSECTION, UNION  Унарный оператор: SORT  Примеры:  [ 'Type' = 'db' ]  [ 'IP' starts­with '75.101.249.' ]  [ 'Status'='running' ] intersection [ 'Type'='db' ]    
  20. 20. Преимущества SDB над БД  Простота  Нет формата данных   Нет  индексирования  Большие объемы (до 10Гб в домене, до 100  доменов/таблиц)  Не требуется администрировать  Масштабируемость  Отказоустойчивость    
  21. 21. Недостатки SDB  Примитивные запросы  Нет связей между таблицами  Латентность  Запись распростроняется не мгновенно. При большом  объеме задержка до нескольких секунд  Только лексикографический порядок  Для текстового поиска придется строить свой  индекс    
  22. 22. Пример использования SDB  Хранение информации о системе в целом  Адреса серверов  Состояния серверов  Измерения производительности серверов  Логи системы  Время запуска/останова серверов  Обнаруженные ошибки  Время поступление и время обработки заданий    
  23. 23. Simple Queue Services (SQS)  Неограниченное количество очередей и  сообщений  Сообщения текстовые до 8Кб  Хранятся 4 дня    
  24. 24. Зачем SQS?  Уменьшает связность между серверами  поставщиками заданий и обработчиками  Ассинхронность  Легко масштабировать  Аналогия ­ паттерн цепочка ответственности  Сохранность связи  При падении сервера сообщение не потеряется  Аналоги – Java Message Service, Microsoft Message  Queuing    
  25. 25. Передача тяжелых сообщений  Максимальная длинна сообщения 8Кб  Можно использовать ссылки вместо данных  SimpleDB ( ItemID=3752 )  S3 ( storage/images/img436.jpg )  Сервера и данные на нем (server3, /var/storage/user342)    
  26. 26. Выводы по службам  Для гибкого управления серверной  инфраструктурой требутся некоторый слой  промежуточного ПО  Можно создавать свое промежуточное ПО  Придется самостоятельно обеспечивать  масштабируемость и отказоустойчивость  Проще воспользоваться службами Amazon (S3,  SDB, SQS ...)    
  27. 27. Часть 4 Языки и библиотеки    
  28. 28. Библиотеки  ”Родные” библиотеки на 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/    
  29. 29. Вопросы? Если возникнут позже, задавайте на dt@nevesomo.com    

×