Масштабирование в Rails
-
Upload
- -
Category
Data & Analytics
-
view
186 -
download
0
Transcript of Масштабирование в Rails
![Page 1: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/1.jpg)
МАСШТАБИРОВАНИЕ RAILSГолубев ПавелИюнь 2009
20 июня 2009 г.
![Page 2: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/2.jpg)
МАСШТАБИРОВАНИЕ RAILSГолубев ПавелИюнь 2009
Кто-то еще пользуется gif?
20 июня 2009 г.
![Page 3: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/3.jpg)
МАСШАТАБИРОВАНИЕ
ГоризантальноеУвеличение производительности системы за счет подключения дополнительных серверов.Функциональное разделение.Шардинг.
ВертикальноеУвеличение производительности за счет наращивания мощности
сервера.
20 июня 2009 г.
![Page 4: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/4.jpg)
ОБЩИЕ РЕСУРСЫ
Статика— Файловая система— Организация кеша— Распределенная ФС
Application сервера— Как их незаметно деплоить
База данных— Большое количество записей— Функциональное разделение— Денормализация
Shared memory
20 июня 2009 г.
![Page 5: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/5.jpg)
ОБЩИЕ РЕСУРСЫ
Статика— Файловая система— Организация кеша— Распределенная ФС
Application сервера— Как их незаметно деплоить
База данных— Большое количество записей— Функциональное разделение— Денормализация
Shared memory
Секретарша— Длительный рабочий день— Большая команда— Месячные
20 июня 2009 г.
![Page 6: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/6.jpg)
СТАТИКА
Файловая системаМного маленьких файлов? Наш выбор — ReiserFS.
Древовидный кеш/users/g/o/lubeff.html вместо /users/golubeff.html
Распределенная файловая системаЖелезо и DFS
NFS хорош, но есть нюансы
20 июня 2009 г.
![Page 7: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/7.jpg)
NFS
Пишем только из одного местаРельсы вообще не используем для генерации статики. Вместо этого пишем простенькие крон-таски.
Пишем из разных мест, читаем только с masterПроксирование по url на уровне nginx.
20 июня 2009 г.
![Page 8: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/8.jpg)
КАК ДЕПЛОИТЬ
Вариат 1. Nginx
20 июня 2009 г.
![Page 9: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/9.jpg)
КАК ДЕПЛОИТЬ
Вариат 2. No restart, baby!
20 июня 2009 г.
![Page 10: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/10.jpg)
ОЧЕРЕДИ
Front-end:
Back-end:
20 июня 2009 г.
![Page 11: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/11.jpg)
ОЧЕРЕДИ
Позволяет выполнить логику, не занимая railsПолучили запрос, отдали пустой ответ.Через несколько секунд вычислили ответ, сообщили поль-лю.
Забудь про reload
20 июня 2009 г.
![Page 12: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/12.jpg)
ОЧЕРЕДИ
Слишком много задач в очереди?Запускаем множество демонов
20 июня 2009 г.
![Page 13: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/13.jpg)
БАЗА ДАННЫХ
Выносим старые данные
Функциональное разбиение
20 июня 2009 г.
![Page 14: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/14.jpg)
БАЗА ДАННЫХ
Денормализация
cardscharacters
storages
character_id
storage_id
20 июня 2009 г.
![Page 15: Масштабирование в Rails](https://reader031.fdocument.pub/reader031/viewer/2022021919/58780e181a28ab971e8b66a3/html5/thumbnails/15.jpg)
БАЗА ДАННЫХ
Денормализация
cardscharacters
storages
character_id
storage_idcharacter_id
20 июня 2009 г.