Highload++ 2017 завершён!

Профессиональная конференция разработчиков высоконагруженных систем

СКОЛКОВО, Москва 7 и 8 ноября

11-я ежегодная конференция для разработчиков highload-систем, которая соберет   2 700 участников из разных регионов России и мира. Мероприятие направлено на обмен знаниями о технологиях, позволяющих одновременно обслуживать многие тысячи и миллионы пользователей.

Программа охватывает такие аспекты веб-разработок, как архитектуры крупных проектов, базы данных и системы хранения, системное администрирование, нагрузочное тестирование, эксплуатация крупных проектов и другие направления, связанные с высоконагруженными системами.

RESTful архитектура для масштабируемых систем
Основная секция

Доклад принят в Программу конференции

Исполнительный директор Openstat, FreeBSD committer, Perl adept и прочая, прочая...

    Специализация и профессиональные навыки
  • Превращаю идеи в продукты
  • Постоянно отслеживаю и отлаживаю процессы
  • Слежу за правильным давлением в проектах
  • Конструирую молекулу команды с нужными свойствами
  • Анализ и синтез: архитектуры и бизнес-модели
  • Поддерживаю баланс, усмиряя хаос и сдерживая порядок
  • Пытаюсь успевать жить

Тезисы




RESTful архитектура для масштабируемых систем / Сергей Скворцов

Тезисы

Цель доклада – рассказать о преимуществах RESTful архитектур для использования в масштабируемых системах.

REST – это настоящий веб!

  • Что есть «ресурс»?
  • Representation – как это?
  • Почему «State transfer»? “Application state” vs. “resource state”.
  • Programmable Web vs. Human Web
  • Web Service vs. Web Application

Альтернативы:

  • XML-RPC
  • SOAP
  • WS-*

Что такое «истинный REST»?

  • Addressability
  • Statelessness
  • Connectedness
  • Uniform interface

Почему REST?

  • HTTP – это application protocol, а не transport protocol
    • Lingua franca для веб-девелоперов
    • Понятные всем методы
    • Понятные всем коды ответа
    • Прозрачен, легко отлаживать, есть библиотеки клиентов (и серверов!) для всех языков
    • Кэшируемость – это важно!
  • «Существительные» (ресурсы) против «глаголов» (методов)
    • GET, POST, PUT, DELETE, (+ HEAD)
    • CRUD?
    • SQL: SELECT, INSERT, UPDATE, DELETE

Масштабируемость

  • Components, Connectors, Data elements
  • Одна точка входа (end-point) RPC против полного URI – лучше распределяется нагрузка в последнем случае
  • Состояние на стороне клиента vs. “session affinity”
  • Statelessness – лучший load balancing.
  • Масштабируемость по URI «на пальцах»
  • Слоевая архитектура: веб-уровень для людей -> веб-уровень для программ -> application/DB/etc.
  • Общий интерфейс -> независимость компонентов + loose coupling.
  • Надежность: идемпотентность GET, PUT, DELETE.
  • REST as Unix Way!

Где используется REST:

  • True REST:
    • Atom Publishing Protocol – классический reference case
    • Google: Search, OpenSocial, Feeds, Translate, …
    • Amazon: S3, etc.
    • Yahoo!: почти все API
    • Ваше API?

Advanced topics:

  • Кошерны ли cookies?
  • Method override.
  • Форматы представлений:
    • JSON
    • YAML
    • XML (POX, Plain Old XML)
    • Plain Text?
  • Нужен ли WADL?
  • XHTML 5
    • form method=”PUT” template="/user/{username}"
    • form method=”DELETE”
  • REST и транзакции

В итоге, почему REST?

  • Просто, понятно и прозрачно
  • Логическая изоляция ресурсов от пользовательского веб-уровня
  • Масштабируемо, кэшируемо, надёжно.

Целевая аудитория

Веб-разработчики, которые хотят знать «что такое», «почему» и «где». В частности, про REST.

Где применимо?

Везде, где есть HTTP. Или так: везде, где есть Интернет.

О докладчике

Сергей Скворцов - технический руководитель, committer FreeBSD, Perl adept, RESTafarian, и прочая, прочая.

Контакты: skv@protey.ru

Другие доклады секции
Основная секция

Rambler's Top100