Масштабирование в rails

17
МАСШТАБИРОВАНИЕ RAILS Голубев Павел Июнь 2009 20 июня 2009 г.

Upload: -

Post on 13-Jan-2017

188 views

Category:

Data & Analytics


0 download

TRANSCRIPT

Page 1: Масштабирование в Rails

МАСШТАБИРОВАНИЕ RAILSГолубев ПавелИюнь 2009

20 июня 2009 г.

Page 2: Масштабирование в Rails

МАСШТАБИРОВАНИЕ RAILSГолубев ПавелИюнь 2009

Кто-то еще пользуется gif?

20 июня 2009 г.

Page 3: Масштабирование в Rails

МАСШАТАБИРОВАНИЕ

ГоризантальноеУвеличение производительности системы за счет подключения дополнительных серверов.Функциональное разделение.Шардинг.

ВертикальноеУвеличение производительности за счет наращивания мощности

сервера.

20 июня 2009 г.

Page 4: Масштабирование в Rails

ОБЩИЕ РЕСУРСЫ

Статика— Файловая система— Организация кеша— Распределенная ФС

Application сервера— Как их незаметно деплоить

База данных— Большое количество записей— Функциональное разделение— Денормализация

Shared memory

20 июня 2009 г.

Page 5: Масштабирование в Rails

ОБЩИЕ РЕСУРСЫ

Статика— Файловая система— Организация кеша— Распределенная ФС

Application сервера— Как их незаметно деплоить

База данных— Большое количество записей— Функциональное разделение— Денормализация

Shared memory

Секретарша— Длительный рабочий день— Большая команда— Месячные

20 июня 2009 г.

Page 6: Масштабирование в Rails

СТАТИКА

Файловая системаМного маленьких файлов? Наш выбор — ReiserFS.

Древовидный кеш/users/g/o/lubeff.html вместо /users/golubeff.html

Распределенная файловая системаЖелезо и DFS

NFS хорош, но есть нюансы

20 июня 2009 г.

Page 7: Масштабирование в Rails

NFS

Пишем только из одного местаРельсы вообще не используем для генерации статики. Вместо этого пишем простенькие крон-таски.

Пишем из разных мест, читаем только с masterПроксирование по url на уровне nginx.

20 июня 2009 г.

Page 8: Масштабирование в Rails

КАК ДЕПЛОИТЬ

Вариат 1. Nginx

20 июня 2009 г.

Page 9: Масштабирование в Rails

КАК ДЕПЛОИТЬ

Вариат 2. No restart, baby!

20 июня 2009 г.

Page 10: Масштабирование в Rails

ОЧЕРЕДИ

Front-end:

Back-end:

20 июня 2009 г.

Page 11: Масштабирование в Rails

ОЧЕРЕДИ

Позволяет выполнить логику, не занимая railsПолучили запрос, отдали пустой ответ.Через несколько секунд вычислили ответ, сообщили поль-лю.

Забудь про reload

20 июня 2009 г.

Page 12: Масштабирование в Rails

ОЧЕРЕДИ

Слишком много задач в очереди?Запускаем множество демонов

20 июня 2009 г.

Page 13: Масштабирование в Rails

БАЗА ДАННЫХ

Выносим старые данные

Функциональное разбиение

20 июня 2009 г.

Page 14: Масштабирование в Rails

БАЗА ДАННЫХ

Денормализация

cardscharacters

storages

character_id

storage_id

20 июня 2009 г.

Page 15: Масштабирование в Rails

БАЗА ДАННЫХ

Денормализация

cardscharacters

storages

character_id

storage_idcharacter_id

20 июня 2009 г.

Page 16: Масштабирование в Rails

www.play-me.ru

20 июня 2009 г.