CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud < Server::Hardware // Управляй серверами как объектами со свойствами и методами
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 927 views

 

Statistics

Views

Total Views
927
Views on SlideShare
809
Embed Views
118

Actions

Likes
0
Downloads
2
Comments
0

4 Embeds 118

http://codefest.ru 104
http://2010.codefest.ru 11
http://backend.codefest.ru 2
http://backend.2gis.ru 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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