class Server::Cloud < Server::Hardware

Содержание

Слайд 2

Что такое «облачный хостинг»?

По определению nist.gov, ключевые характеристики:
On-demand self service (хотите получить

Что такое «облачный хостинг»? По определению nist.gov, ключевые характеристики: On-demand self service
больше — получаете больше)
Ubiquitous network access (доступно всегда и отовсюду)
Metered use (оплата «по факту» с коротким промежутком тарификации)
Elasticity (гибкие модели масштабирования и аренды)
Resource pooling (устойчивость к аппаратным сбоям)

Amazon Web Services

Rackspace Cloud

Terremark

Heroku

Google app engine

IaaS

PaaS

Примеры?

Слайд 3

Что такое IaaS, PaaS и SaaS?

— Пользователь арендует инфраструктуру виртуальных серверов
— Пользователь имеет доступ

Что такое IaaS, PaaS и SaaS? — Пользователь арендует инфраструктуру виртуальных серверов
к ОС
— Пользователь занимается управлением инфраструктурой и ОС самостоятельно

— Пользователь арендует платформу, заточенную под конкретную технологию
— Пользователь не контролирует ОС или платформу, а только устанавливает свое приложение в нее

— Пользователь арендует конкретное приложение
— У пользователя нет доступа к платформе и ОС
— Администратор полностью контролирует железо, операционную систему, платформу и приложение.

SaaS

IaaS

PaaS

Слайд 4

Что такое масштабирование?

Веб-приложение масштабируется под нагрузкой, либо для выполнения прикладных задач. Для

Что такое масштабирование? Веб-приложение масштабируется под нагрузкой, либо для выполнения прикладных задач.
некоторых видов масштабирования достаточно просто использовать подходящую облачную платформу. Для других — одного облака будет не достаточно и придется переписать часть приложения.

Слайд 5

Вертикальное масштабирование

Веб-сервер
1Гб ram

Веб-сервер
8Гб ram

При увеличении нагрузки:
Кол-во ресурсов одного сервера увеличивается
Приложения

Вертикальное масштабирование Веб-сервер 1Гб ram Веб-сервер 8Гб ram При увеличении нагрузки: Кол-во
подхватывают и используют новые ресурсы
Плюсы:
Минимум доработок в существующем коде
Минусы:
Не все приложения корректно работают при увеличении объема памяти :(
Скорее всего, будет существовать потолок масштабирования

Слайд 6

Горизонтальное масштабирование

App-сервер
1Гб ram

Веб-сервер
1Гб ram

Веб-сервер
1Гб ram

Веб-сервер
1Гб ram

Веб-сервер
1Гб ram

При

Горизонтальное масштабирование App-сервер 1Гб ram Веб-сервер 1Гб ram Веб-сервер 1Гб ram Веб-сервер
увеличении нагрузки:
Стартует еще несколько виртуальных машин, нагрузка распределяется между ними
Плюсы:
Не плюс, но характеристика: больший шаг масштабирования. Не N ресурсов, а целый сервер
Нет проблем несовместимости ПО с этой моделью масштабирования
Минусы:
Требует использования балансировщика нагрузки
Слишком большой для рынка РФ шаг масштабирования, негибко

Слайд 7

Cloud API

Для высоконагруженных (очень) проектов, стандартных средств автомасштабирования недостаточно
Если нужно реагировать на

Cloud API Для высоконагруженных (очень) проектов, стандартных средств автомасштабирования недостаточно Если нужно
нагрузки очень быстро — нужно делать полный мониторинг самостоятельно
Если облако не предоставляет средств автомасштабирования, масштабировать инфраструктуру нужно самостоятельно
Как правило, облачные провайдеры предоставляют программный интерфейс (API) для всех этих операций

Слайд 8

Cloud API: примеры

Amazon Web Services
Rackspace cloud

Cloud API: примеры Amazon Web Services Rackspace cloud …

Слайд 9

Оверсан — Скалакси

Облачный хостинг
Инфраструктура
Платформа & сообщество

Оверсан — Скалакси Облачный хостинг Инфраструктура Платформа & сообщество

Слайд 10

Оверсан — Скалакси:
инфраструктура

VRT — физические машины, хосты виртуаализации
BS — физические машины, массивы дисков
IB-pipe

Оверсан — Скалакси: инфраструктура VRT — физические машины, хосты виртуаализации BS —
— Infiniband шина внутренней сети на 40 Гбит/с
VM — пользовательская виртуальная машина

Слайд 11

Виртуальные машины

Единица измерения ресурсов — слот
512 Мб оперативной памяти
5 Мбит/с полоса в Интернет
Доступны

Виртуальные машины Единица измерения ресурсов — слот 512 Мб оперативной памяти 5
все 8 ядер процессора
Размер машины — от 1 до 64 слотов, то есть от 512 Мб до 32 Гб оперативной памяти
Вертикальное масштабирование без перебоев в работе
Создание и старт машины — менее чем за 60 секунд
Изменение размера виртуальной машины — практически мгновенно
Почасовая оплата выделенных машине ресурсов
Два вида слотов: development vs production: 0.65 vs 2.0 рублей в час

Слайд 12

Виртуальные машины:
масштабирование

Изменить мощность виртуальной машины можно:
Вручную на любое количество слотов
По расписанию
Автоматически

Виртуальные машины: масштабирование Изменить мощность виртуальной машины можно: Вручную на любое количество
(по нагрузке)
Управляемый минимальный и максимальный размер виртуальной машины

Слайд 13

Виртуальные машины:
автомасштабирование

Автоматическое управление количеством выделенных ресурсов, основываясь на текущей загрузке в

Виртуальные машины: автомасштабирование Автоматическое управление количеством выделенных ресурсов, основываясь на текущей загрузке
реальном времени
Постоянный мониторинг параметров виртуальных машин
Триггер по объему занятой оперативной памяти, загруженности сети

Слайд 14

Блочное хранилище

Неограниченное число блочных устройств
Объем диска от 1Гб до 1Тб
Гарантированная скорость — 300

Блочное хранилище Неограниченное число блочных устройств Объем диска от 1Гб до 1Тб
iops для рандомной записи
8 рублей в месяц за гигабайт, тарификация ежечасно (около 11 копеек)

Слайд 15

API Скалакси

Что можно сделать с его помощью?
Как оно реализовано?
Зачем его использовать?

API Скалакси Что можно сделать с его помощью? Как оно реализовано? Зачем его использовать?

Слайд 16

API Скалакси

Что можно сделать с его помощью?
Просмотреть список машин и их состояние
Создать

API Скалакси Что можно сделать с его помощью? Просмотреть список машин и
виртуальную машину
Запустить или остановить машину
Масштабировать машину
Создать или удалить блочные устройства
Создать, удалить или изменить правила масштабирования
Все действия, доступные панели управления
Панель = клиент к API
Как оно реализовано?
Зачем его использовать?

Слайд 17

API Скалакси: реализация

Cloud Engine / API

Что можно сделать с его помощью?
Как оно

API Скалакси: реализация Cloud Engine / API Что можно сделать с его
реализовано?
HTTPS
RESTful Web Service
HTTP-авторизация
JSON
Зачем его использовать?

Слайд 18

API Скалакси

Что можно сделать с его помощью?
Как оно реализовано?
Зачем его использовать?
Высоконагруженные приложения
Гибкая

API Скалакси Что можно сделать с его помощью? Как оно реализовано? Зачем
балансировка нагрузки
Гибридные архитектуры с горизонтальным и вертикальным масштабированием
Максимально гибкая экономия ресурсов и денег :)

Слайд 19

API Скалакси

Высоконагруженные приложения:
Масштабирование с использованием API и собственной системой мониторинга позволяет

API Скалакси Высоконагруженные приложения: Масштабирование с использованием API и собственной системой мониторинга
сократить время реакции на возрастание нагрузки до нескольких секунд
Можно включать виртуальные машины, выполняющие отдельные задачи по расписанию, только тогда, когда они фактически нужны
Программный балансировщик нагрузки может анализировать объем входящего трафика веб-приложения и подключать дополнительные application-серверы по мере необходимости (гибридные архитектуры). Так можно достигнуть максимальной гибкости и экономии

Слайд 20

API Скалакси: сущности

Проект (ограниченное использование)
Инстанс (виртуальная машина)
Группа инстансов
Блочное устройство
Правило масштабирования по расписанию
Правило

API Скалакси: сущности Проект (ограниченное использование) Инстанс (виртуальная машина) Группа инстансов Блочное
автомасштабирования
Домен
Запись домена
Пользователь
Образы операционных систем
Подробные материалы — на сайте сообщества
wiki.scalaxy.ru

Слайд 21

API Скалакси:
работа с REST-интерфейсом

POST-запросы: создание объектов

curl -u username:password-X POST -H "Content-Type:

API Скалакси: работа с REST-интерфейсом POST-запросы: создание объектов curl -u username:password-X POST
application/json" -d"{name: 'Project name'}" https://www.scalaxy.ru/api/projects.json
{"name":"Project name","id":152}

GET-запросы: чтение объектов

curl –u username:password https://www.scalaxy.ru/api/projects.json
[{"name":"Project name","id":152}]

Слайд 22

API Скалакси:
горизонтальный скейлинг

Старт машин

curl -u username:password-X PUT -H "Content-Type: application/json" -d"{name:

API Скалакси: горизонтальный скейлинг Старт машин curl -u username:password-X PUT -H "Content-Type:
'Project name'}" https://www.scalaxy.ru/api/projects/1/instances/2/start.json

Отключение машин

curl -u username:password-X PUT -H "Content-Type: application/json" -d"{name: 'Project name'}" https://www.scalaxy.ru/api/projects/1/instances/2/stop.json

Слайд 23

API Скалакси:
создание инстанса

Создание сервера:

curl -u username:password-X POST -H "Content-Type: application/json" -d"{

API Скалакси: создание инстанса Создание сервера: curl -u username:password-X POST -H "Content-Type:
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’
}

Слайд 24

Roadmap Скалакси

Инфраструктура:
Мультимедийное файловое хранилище и CDN
Репликация блочных хранилищ
Платформа
Wiki
— API integration

Roadmap Скалакси Инфраструктура: Мультимедийное файловое хранилище и CDN Репликация блочных хранилищ Платформа Wiki — API integration