class Server::Cloud < Server::Hardware<br />Управляйсерверамикакобъектамисосвойствамииметодами.<br />Нат Гаджибалаев<br />...
Что такое «облачный хостинг»?<br />По определению nist.gov, ключевые характеристики:<br />On-demand self service (хотите п...
Что такое IaaS, PaaSи SaaS?<br />— Пользователь арендует инфраструктуру виртуальных серверов<br />— Пользователь имеет дос...
Что такое масштабирование?<br />Веб-приложение масштабируется под нагрузкой, либо для выполнения прикладных задач. Для нек...
Вертикальное масштабирование<br />Веб-сервер<br />1Гб ram<br />Веб-сервер <br />8Гб ram<br />При увеличении нагрузки:<br /...
Приложения подхватывают и используют новые ресурсы</li></ul>Плюсы:<br /><ul><li>Минимум доработок в существующем коде</li>...
Скорее всего, будет существовать потолок масштабирования</li></li></ul><li>Горизонтальное масштабирование<br />При увеличе...
Нет проблем несовместимости ПО с этой моделью масштабирования</li></ul>Минусы: <br /><ul><li>Требует использования баланси...
Слишком большой для рынка РФ шаг масштабирования, негибко</li></ul>Веб-сервер<br />1Гб ram<br />Веб-сервер<br />1Гб ram<br...
Cloud API<br /><ul><li>Для высоконагруженных (очень) проектов, стандартных средств автомасштабирования недостаточно
Если нужно реагировать на нагрузки очень быстро — нужно делать полный мониторинг самостоятельно
Если облако не предоставляет средств автомасштабирования, масштабировать инфраструктуру нужно самостоятельно
Как правило, облачные провайдеры предоставляют программный интерфейс(API) для всех этих операций</li></li></ul><li>Cloud A...
Rackspace cloud
… </li></li></ul><li>Оверсан — Скалакси<br /><ul><li>Облачный хостинг
Инфраструктура
Платформа & сообщество</li></li></ul><li>Оверсан — Скалакси: <br />								инфраструктура<br /><ul><li>VRT — физические ма...
BS — физические машины, массивы дисков
IB-pipe — Infinibandшина внутренней сети на 40 Гбит/с
VM — пользовательская виртуальная машина</li></li></ul><li>Виртуальные машины<br /><ul><li>Единица измерения ресурсов — слот
512 Мб оперативной памяти
5 Мбит/с полоса в Интернет
Доступны все 8 ядер процессора
Размер машины — от 1 до 64 слотов, то есть от 512 Мб до 32 Гб оперативной памяти
Вертикальное масштабирование без перебоев в работе
Upcoming SlideShare
Loading in …5
×

CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // Управляй серверами как объектами со свойствами и методами

868 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
868
On SlideShare
0
From Embeds
0
Number of Embeds
124
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // Управляй серверами как объектами со свойствами и методами

  1. 1. class Server::Cloud < Server::Hardware<br />Управляйсерверамикакобъектамисосвойствамииметодами.<br />Нат Гаджибалаев<br />— ruby-разработчик<br />— евангелист компании Оверсан<br />nat@oversun.ru<br />@xnutsive<br />Хештег в твиттере: #scalaxy<br />
  2. 2. Что такое «облачный хостинг»?<br />По определению nist.gov, ключевые характеристики:<br />On-demand self service (хотите получить больше — получаете больше)<br />Ubiquitous network access (доступно всегдаи отовсюду)<br />Metered use (оплата «по факту» с коротким промежутком тарификации)<br />Elasticity (гибкие модели масштабирования и аренды)<br />Resource pooling (устойчивость к аппаратным сбоям)<br />Примеры?<br />IaaS<br />PaaS<br />Amazon Web Services<br />Google app engine<br />Heroku<br />Rackspace Cloud<br />Terremark<br />
  3. 3. Что такое IaaS, PaaSи SaaS?<br />— Пользователь арендует инфраструктуру виртуальных серверов<br />— Пользователь имеет доступ к ОС<br />— Пользователь занимается управлением инфраструктурой и ОС самостоятельно<br />— Пользователь арендует платформу, заточенную под конкретную технологию<br />— Пользователь не контролирует ОС или платформу, а только устанавливает свое приложение в нее<br />— Пользователь арендует конкретное приложение<br />— У пользователя нет доступа к платформе и ОС<br />— Администратор полностью контролирует железо, операционную систему, платформу и приложение.<br />SaaS<br />IaaS<br />PaaS<br />
  4. 4. Что такое масштабирование?<br />Веб-приложение масштабируется под нагрузкой, либо для выполнения прикладных задач. Для некоторых видов масштабирования достаточно просто использовать подходящую облачную платформу. Для других — одного облака будет не достаточно и придется переписать часть приложения.<br />
  5. 5. Вертикальное масштабирование<br />Веб-сервер<br />1Гб ram<br />Веб-сервер <br />8Гб ram<br />При увеличении нагрузки:<br /><ul><li>Кол-во ресурсов одного сервера увеличивается
  6. 6. Приложения подхватывают и используют новые ресурсы</li></ul>Плюсы:<br /><ul><li>Минимум доработок в существующем коде</li></ul>Минусы:<br /><ul><li>Не все приложения корректно работают при увеличении объема памяти :(
  7. 7. Скорее всего, будет существовать потолок масштабирования</li></li></ul><li>Горизонтальное масштабирование<br />При увеличении нагрузки:<br /><ul><li>Стартует еще несколько виртуальных машин, нагрузка распределяется между ними</li></ul>Плюсы:<br /><ul><li>Не плюс, но характеристика: больший шаг масштабирования. Не N ресурсов, а целый сервер
  8. 8. Нет проблем несовместимости ПО с этой моделью масштабирования</li></ul>Минусы: <br /><ul><li>Требует использования балансировщика нагрузки
  9. 9. Слишком большой для рынка РФ шаг масштабирования, негибко</li></ul>Веб-сервер<br />1Гб ram<br />Веб-сервер<br />1Гб ram<br />Веб-сервер<br />1Гб ram<br />Веб-сервер<br />1Гб ram<br />App-сервер<br />1Гб ram<br />
  10. 10. Cloud API<br /><ul><li>Для высоконагруженных (очень) проектов, стандартных средств автомасштабирования недостаточно
  11. 11. Если нужно реагировать на нагрузки очень быстро — нужно делать полный мониторинг самостоятельно
  12. 12. Если облако не предоставляет средств автомасштабирования, масштабировать инфраструктуру нужно самостоятельно
  13. 13. Как правило, облачные провайдеры предоставляют программный интерфейс(API) для всех этих операций</li></li></ul><li>Cloud API: примеры<br /><ul><li>Amazon Web Services
  14. 14. Rackspace cloud
  15. 15. … </li></li></ul><li>Оверсан — Скалакси<br /><ul><li>Облачный хостинг
  16. 16. Инфраструктура
  17. 17. Платформа & сообщество</li></li></ul><li>Оверсан — Скалакси: <br /> инфраструктура<br /><ul><li>VRT — физические машины, хосты виртуаализации
  18. 18. BS — физические машины, массивы дисков
  19. 19. IB-pipe — Infinibandшина внутренней сети на 40 Гбит/с
  20. 20. VM — пользовательская виртуальная машина</li></li></ul><li>Виртуальные машины<br /><ul><li>Единица измерения ресурсов — слот
  21. 21. 512 Мб оперативной памяти
  22. 22. 5 Мбит/с полоса в Интернет
  23. 23. Доступны все 8 ядер процессора
  24. 24. Размер машины — от 1 до 64 слотов, то есть от 512 Мб до 32 Гб оперативной памяти
  25. 25. Вертикальное масштабирование без перебоев в работе
  26. 26. Создание и старт машины — менее чем за 60 секунд
  27. 27. Изменение размера виртуальной машины —практически мгновенно
  28. 28. Почасовая оплата выделенных машине ресурсов
  29. 29. Два вида слотов: development vs production: 0.65 vs 2.0 рублей в час</li></li></ul><li>Виртуальные машины: <br /> масштабирование<br /><ul><li>Изменить мощность виртуальной машины можно:
  30. 30. Вручную на любое количество слотов
  31. 31. По расписанию
  32. 32. Автоматически (по нагрузке)
  33. 33. Управляемый минимальный и максимальный размер виртуальной машины</li></li></ul><li>Виртуальные машины: <br />автомасштабирование<br /><ul><li>Автоматическое управление количеством выделенных ресурсов, основываясь на текущей загрузке в реальном времени
  34. 34. Постоянный мониторинг параметров виртуальных машин
  35. 35. Триггер по объему занятой оперативной памяти, загруженности сети</li></li></ul><li>Блочное хранилище<br /><ul><li>Неограниченное число блочных устройств
  36. 36. Объем диска от 1Гб до 1Тб
  37. 37. Гарантированная скорость — 300 iopsдля рандомной записи
  38. 38. 8 рублей в месяц за гигабайт, тарификация ежечасно (около 11 копеек)</li></li></ul><li>API Скалакси<br /><ul><li>Что можно сделать с его помощью?
  39. 39. Как оно реализовано?
  40. 40. Зачем его использовать?</li></li></ul><li>API Скалакси<br /><ul><li>Что можно сделать с его помощью?
  41. 41. Просмотреть список машин и их состояние
  42. 42. Создать виртуальную машину
  43. 43. Запустить или остановить машину
  44. 44. Масштабировать машину
  45. 45. Создать или удалить блочные устройства
  46. 46. Создать, удалить или изменить правила масштабирования
  47. 47. Все действия, доступные панели управления
  48. 48. Панель = клиент к API
  49. 49. Как оно реализовано?
  50. 50. Зачем его использовать?</li></li></ul><li>API Скалакси: реализация<br /><ul><li>Что можно сделать с его помощью?
  51. 51. Как оно реализовано?
  52. 52. HTTPS
  53. 53. RESTful Web Service
  54. 54. HTTP-авторизация
  55. 55. JSON
  56. 56. Зачем его использовать?</li></ul>Cloud Engine / API<br />
  57. 57. API Скалакси<br /><ul><li>Что можно сделать с его помощью?
  58. 58. Как оно реализовано?
  59. 59. Зачем его использовать?
  60. 60. Высоконагруженные приложения
  61. 61. Гибкая балансировка нагрузки
  62. 62. Гибридные архитектуры с горизонтальным и вертикальным масштабированием
  63. 63. Максимально гибкая экономия ресурсов и денег :)</li></li></ul><li>API Скалакси<br /><ul><li>Высоконагруженные приложения:
  64. 64. Масштабирование с использованием API и собственной системой мониторинга позволяет сократить время реакции на возрастание нагрузки до нескольких секунд
  65. 65. Можно включать виртуальные машины, выполняющие отдельные задачи по расписанию, только тогда, когда они фактически нужны
  66. 66. Программный балансировщик нагрузки может анализировать объем входящего трафика веб-приложения и подключать дополнительные application-серверы по мере необходимости (гибридные архитектуры). Так можно достигнуть максимальной гибкости и экономии</li></li></ul><li>API Скалакси: сущности<br /><ul><li>Проект (ограниченное использование)
  67. 67. Инстанс (виртуальная машина)
  68. 68. Группа инстансов
  69. 69. Блочное устройство
  70. 70. Правило масштабирования по расписанию
  71. 71. Правило автомасштабирования
  72. 72. Домен
  73. 73. Запись домена
  74. 74. Пользователь
  75. 75. Образы операционных систем</li></ul>Подробные материалы — на сайте сообщества<br />wiki.scalaxy.ru<br />
  76. 76. API Скалакси: <br />работа с REST-интерфейсом<br />POST-запросы: создание объектов<br />curl -uusername:password-X POST -H "Content-Type: application/json" -d"{name: 'Projectname'}" https://www.scalaxy.ru/api/projects.json<br />{"name":"Project name","id":152}<br />GET-запросы: чтение объектов<br />curl–uusername:passwordhttps://www.scalaxy.ru/api/projects.json<br />[{"name":"Project name","id":152}]<br />
  77. 77. API Скалакси: <br />горизонтальный скейлинг<br />Старт машин<br />curl -uusername:password-XPUT -H "Content-Type: application/json" -d"{name: 'Projectname'}" https://www.scalaxy.ru/api/projects/1/instances/2/start.json<br />Отключение машин<br />curl -uusername:password-XPUT -H "Content-Type: application/json" -d"{name: 'Projectname'}" https://www.scalaxy.ru/api/projects/1/instances/2/stop.json<br />
  78. 78. API Скалакси: <br /> создание инстанса<br />Создание сервера:<br />curl -uusername:password-XPOST -H "Content-Type: application/json" -d"{name: ’Test VM’, slots: 4, os_image_id: 10, root_size: 3000000000, password: ‘password’ }" https://www.scalaxy.ru/api/projects/1/instances.json<br />{<br /> name: ‘name’,<br /> slots: 4,<br />os_image_id: 10,<br />root_size: 3000000000,<br />passwiord: ‘password’<br />}<br />
  79. 79. Roadmap Скалакси<br /><ul><li>Инфраструктура:
  80. 80. Мультимедийное файловое хранилище и CDN
  81. 81. Репликация блочных хранилищ
  82. 82. Платформа
  83. 83. Wiki</li></ul>— API integration<br />
  84. 84. Спасибо! <br />http://scalaxy.ru — Начать тестирование можно сегодня :)<br />Follow us on twitter: @scalaxy, @xnutsive<br />Весь ваш фидбэк пишите в твиттер по тегу #scalaxyили на почту nat@scalaxy.ruили experts@scalaxy.ru<br />

×