4. О чем будет доклад?
• Маркетинговый bullshit в trash
• Как построить API: REST vs …
• Краткое введение в cloud
• Построение API на примере
масштабирования в облаке
• Плюсы и минусы облаков
• Переезд в облако — оно вам надо?
• Это все?
5. Что такое Cloud Computing
• Технология обработки данных, в которой программное
обеспечение предоставляется пользователю как
интернет-сервис
• Пользователь имеет доступ к собственным данным, но
не должен заботиться об «железной» инфраструктуре
• «Не ограниченные» вычислительные ресурсы
8. Какие бывают облака?
• IaaS (Infrastructure-as-a-Service)
• PaaS (Platform-as-a-Service)
предоставление какой-либо платформы (для
разработки ПО или хостинга веб-приложений)
AppEngine (Google), Mosso, Apatana Cloud, Azure и др.
• SaaS (Software-as-a-Service)
• ...aaS (Communication, Workplace)
9. Какие бывают облака?
• IaaS (Infrastructure-as-a-Service)
• PaaS (Platform-as-a-Service)
• SaaS (Software-as-a-Service)
использование какого-то конкретного ПО, например,
корпоративные системы, в виде сервиса по подписке
Google Docs, MobileMe (Apple), LotusLive (IBM)
• ...aaS (Communication, Workplace)
10. Какие бывают облака?
• IaaS (Infrastructure-as-a-Service)
• PaaS (Platform-as-a-Service)
• SaaS (Software-as-a-Service)
• ...aaS (Communication, Workplace)
и многие другие — в основном вариации трех
базовых
12. Структура облака
CE
CPL CW
Панель управления:
• Знает все о пользователе
• Взаимодействие с пользователем
• Биллинг
13. Структура облака
CE
CPL CW
Cloud Engine:
• Знает о «железе»
• Управляет объектами облака
14. Структура облака
CE
CPL CW
Cloud Watch:
• Глаза сервиса — система мониторинга
• Генератор Event'ов
15. Структура облака
Взаимодействие сервисов
CE
CPL CW
• SOA — принципы:
- Архитектура не привязана к какой-то технологии
- Независимость системы от платформы,
- Независимость от языков программирования,
- Сервисы независимы от приложений, с единообразными
интерфейсами доступа к ним,
- Сервисы - слабо-связанные компоненты
• REST (простота общения)
16. REST — с чем его едят
REpresentational State Transfer
• подход к архитектуре сетевых протоколов, описан в 2000 году
Ройем Филдингом
• сетевой ресурс должен поддерживать операции - GET, PUT, POST и
DELETE
• данные передаются в виде стандартных форматов (HTML, XML,
JSON)
• не зависит от сетевого уровня
• не сохраняет состояний между запросами (на практике накладно)
• позволяет легко масштабироваться и добавлять новые свойства
Ссылки:
• Roy Fielding - Architectural Styles and the Design of Network-based Software Architectures
• Джон Фландерс - Введение в службы RESTful с использованием WCF
17. Почему REST?
REST vs RPC
RPC позволяет использовать небольшое количество сетевых ресурсов с большим
количеством методов и сложным протоколом. REST - количество методов и
сложность протокола ограничены, следовательно количество отдельных ресурсов
должно быть большим.
SOAP
Плюсы:
• Жесткая проверка типов
• Имеются специальные средства разработки
Минусы:
• Большой объем (XML)
• Тяжело читаем человеком
• Сложней в реализации
19. Как защититься от
продвинутого пользователя?
1. Открыть HTML и проанализировать запросы
2. Эмулировать браузер (cURL)
Как защититься от умного клиента?
30. AutoScale
• Увеличение ресурсов в
реальном времени
• Вертикальный:
– По времени суток
– По достижению
критических параметров
• Горизонтальный — в
ближайшем будущем
31. Плюсы облака
• Масштабирование
ресурсов под нагрузку
• Отсутствие «железных»
проблем
• Аппаратная защита от
DOS, DDOS
• CDN «из коробки»
• Экономия $
32. Минусы облака
• Зарубежные
сервисы —
задержки
• Мало у кого есть
реальный scale —
сложности
масштабирования
• Scalaxy — этап бета-
тестирования :)
33. Для кого? И для чего?
• Не регулярный трафик
• Экономия на «железе»
• Большие объемы данных
• CPU на время
• StartUp
• Новостные ресурсы
• Файловые хранилища
• Научные расчеты
• Все остальные :)