SlideShare uma empresa Scribd logo
1 de 37
Развертывание среды RubyonRails для промышленного использования.Методы, технологии, приемы. Антон Веснин (locum.ru)
Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development)
Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development) - Подробное логирование - Отладочная информация
Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development) - Стабильность - Производительность - Поддержка и развитие - Подробное логирование - Отладочная информация
Элементы системы Сервер приложений Код приложения База данных Дополнительные приложения (прокси, memcached и т.п.)
Автоматизация процесса размещения новой версии кода Capistrano - Сохранение копии предыдущей версии - Загрузка новой версии кода - Изменения в базе данных (по необходимости) - Перезапуск сервера приложений ,[object Object],[object Object]
Mongrelhttp://github.com/fauna/mongrel Mongrel 0 Proxy — сервер Mongrel 1 Mongrel 2 Mongrel 3 Пользователи Mongrel N Связь между Mongrel и proxy-сервером через tcp-порт
Mongrelhttp://github.com/fauna/mongrel Плюсы: - Простота: один сервер — один запрос - Сервера не связаны между собой - Легко увеличить количество серверов - Работает с JAVA и JRuby
Mongrelhttp://github.com/fauna/mongrel Плюсы: - Простота: один сервер — один запрос - Сервера не связаны между собой - Легко увеличить количество серверов - Работает с JAVA и JRuby Минусы: - Потребление оперативной памяти - Долгий перезапуск - Проблемы с разграничением прав на tcp-порты
Thinhttp://code.macournoyer.com/thin/ Thin 0 Proxy — сервер Thin 1 Thin 2 Thin 3 Thin N Связь между Thin и proxy сервером через TCP-порт или UNIX-сокет Через сокет - быстрее
Thinhttp://code.macournoyer.com/thin/ Плюсы: - Быстрее чем Mongrel - Может работать через Unix-сокет - Просто увеличить количество серверов
Thinhttp://code.macournoyer.com/thin/ Плюсы: - Быстрее чем Mongrel - Может работать через Unix-сокет - Просто увеличить количество серверов Минусы: - Потребление оперативной памяти - Долгий перезапуск
Unicornhttp://unicorn.bogomips.org  Более технологичен: Есть мастер-процесс и много процессов обработчиков Мастер следит за обработчиками, балансирует нагрузку
Unicornhttp://unicorn.bogomips.org  Обработчик Unicorn Master Обработчик Proxy сервер Разделяемый сокет Обработчик Пользователи Обработчик
Преимущества такого подхода: 1. Мастер всегда знает кто из обработчиков свободен 2. Мастер может остановить обработчик по необходимости 3.Если один из обработчиков аварийно завершился, почти мгновенно запускается новый 4.Процесс перезапуска приложения можно сделать почти незаметным для пользователя
Перезапуск Unicorn с новой версией кода Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
(этап 1) Администратор USR2 сигнал Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
(этап 2) НовыйUnicorn Master Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
(этап 3) Обработчик НовыйUnicorn Master Обработчик Обработчик Обработчик Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
(этап 3) Обработчик НовыйUnicorn Master Обработчик Обработчик Обработчик Proxy сервер QUITсигнал Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
(Перезапуск Unicornзавершен) Обработчик НовыйUnicorn Master Обработчик Обработчик Обработчик Proxy сервер Разделяемый сокет Пользователи
Unicornhttp://unicorn.bogomips.org  Плюсы: - Решается проблема долгой перезагрузки - Стабильность за счет мгновенного перезапуска обработчиков - Проще отслеживать нештатные ситуации
Unicornhttp://unicorn.bogomips.org  Плюсы: - Решается проблема долгой перезагрузки - Стабильность за счет мгновенного перезапуска обработчиков - Проще отслеживать нештатные ситуации Минусы: - Потребление памяти больше чем у thin
Passenger или mod railshttp://modrails.com Особенности: - Не является самостоятельным сервером - Модуль для Apache 2 и Nginx - Рассчитан на запуск большого количества rails-приложений
Passenger или mod railshttp://modrails.com Плюсы: - Удобен для хостинг-серверов - Позволяет сократить единовременное потребление памяти - Возможность указать альтернативную версию ruby
Passenger или mod railshttp://modrails.com Плюсы: - Удобен для хостинг-серверов - Позволяет сократить единовременное потребление памяти - Возможность указать альтернативную версию ruby Минусы: - Не так быстр как thin - В случае работы с Nginx при нагрузке периодически возникают проблемы - Недостаточно возможностей лимитировать ресурсы
Jruby и Rails - Большое количество j2ee серверов - Возможность использовать java-классы из ruby
Организация отдачи статики ,[object Object],[object Object]
Организация отдачи статики - Все рассмотренные сервера приложений могут отдавать статику - Ни один из них не будет делать это действительно хорошо - Статические файлы должен отдавать быстрый веб-сервер (nginx, lighttpd, etc) - Организация отдачи статических данных после обработки запроса rails-кодом - X-Sedn-File и X-Accel-Redirect
Общие выводы Много проектов и не постоянная загрузка — Passenger
Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn
Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn Критично потребление памяти и редки обновления — Thin или Unicorn
Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn Критично потребление памяти и редки обновления — Thin или Unicorn + Статические данные всегда отдаются веб-сервером
Спасибо за внимание!Вопросы?
Антон Веснин avesnin@locum.ru locum.ru Презентация в электронном виде: labs.locum.ru/rit.ppt
антон веснин Rails Application Servers
антон веснин Rails Application Servers

Mais conteúdo relacionado

Mais procurados

Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Ontico
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)
Ontico
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)
Ontico
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
Ontico
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
Aleksey Solntsev
 
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Ontico
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проекта
Yandex
 

Mais procurados (20)

Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий Левченко
 
Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)Cистемы автоматической сборки проектов (Полина Фоминых)
Cистемы автоматической сборки проектов (Полина Фоминых)
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)
 
2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
 
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магия
 
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектов
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторинга
 
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
 
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиков
 
"Производительность MySQL: что нового?"
"Производительность MySQL: что нового?""Производительность MySQL: что нового?"
"Производительность MySQL: что нового?"
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проекта
 

Destaque

Alexei shilov 2010 rit-rakudo
Alexei shilov 2010 rit-rakudoAlexei shilov 2010 rit-rakudo
Alexei shilov 2010 rit-rakudo
rit2010
 
Anatol filin pragmatic documentation 1_r
Anatol filin  pragmatic documentation 1_rAnatol filin  pragmatic documentation 1_r
Anatol filin pragmatic documentation 1_r
rit2010
 
анатомия интернет банка Publish
анатомия интернет банка Publishанатомия интернет банка Publish
анатомия интернет банка Publish
rit2010
 
Ilia kantor паттерны серверных comet решений
Ilia kantor паттерны серверных comet решенийIlia kantor паттерны серверных comet решений
Ilia kantor паттерны серверных comet решений
rit2010
 
анатомия интернет банка Publish
анатомия интернет банка Publishанатомия интернет банка Publish
анатомия интернет банка Publish
rit2010
 
Microsoft cluster systems ritconf
Microsoft cluster systems ritconfMicrosoft cluster systems ritconf
Microsoft cluster systems ritconf
rit2010
 
Sphinx new
Sphinx newSphinx new
Sphinx new
rit2010
 

Destaque (8)

Антон Веснин - "Обзорное сравнение серверов приложений ruby-on-rails"
Антон Веснин - "Обзорное сравнение серверов приложений ruby-on-rails"Антон Веснин - "Обзорное сравнение серверов приложений ruby-on-rails"
Антон Веснин - "Обзорное сравнение серверов приложений ruby-on-rails"
 
Alexei shilov 2010 rit-rakudo
Alexei shilov 2010 rit-rakudoAlexei shilov 2010 rit-rakudo
Alexei shilov 2010 rit-rakudo
 
Anatol filin pragmatic documentation 1_r
Anatol filin  pragmatic documentation 1_rAnatol filin  pragmatic documentation 1_r
Anatol filin pragmatic documentation 1_r
 
анатомия интернет банка Publish
анатомия интернет банка Publishанатомия интернет банка Publish
анатомия интернет банка Publish
 
Ilia kantor паттерны серверных comet решений
Ilia kantor паттерны серверных comet решенийIlia kantor паттерны серверных comet решений
Ilia kantor паттерны серверных comet решений
 
анатомия интернет банка Publish
анатомия интернет банка Publishанатомия интернет банка Publish
анатомия интернет банка Publish
 
Microsoft cluster systems ritconf
Microsoft cluster systems ritconfMicrosoft cluster systems ritconf
Microsoft cluster systems ritconf
 
Sphinx new
Sphinx newSphinx new
Sphinx new
 

Semelhante a антон веснин Rails Application Servers

Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
dddpaul
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Anton Baranov
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
it-people
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf Conference
 
евгений потапов Root Conf потапов
евгений потапов Root Conf   потаповевгений потапов Root Conf   потапов
евгений потапов Root Conf потапов
rit2010
 
Evgeniy Potapov Root Conf потапов
Evgeniy Potapov Root Conf   потаповEvgeniy Potapov Root Conf   потапов
Evgeniy Potapov Root Conf потапов
rit2010
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
Alex Chistyakov
 

Semelhante a антон веснин Rails Application Servers (20)

Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктурой
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализация
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBA
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Sivko
SivkoSivko
Sivko
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks Server
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложения
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in production
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на Rust
 
Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014Open source technologies in Microsoft cloud - MS SWIT 2014
Open source technologies in Microsoft cloud - MS SWIT 2014
 
евгений потапов Root Conf потапов
евгений потапов Root Conf   потаповевгений потапов Root Conf   потапов
евгений потапов Root Conf потапов
 
Evgeniy Potapov Root Conf потапов
Evgeniy Potapov Root Conf   потаповEvgeniy Potapov Root Conf   потапов
Evgeniy Potapov Root Conf потапов
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 

Mais de rit2010

Alexandre.iline rit 2010 java_fxui_extra
Alexandre.iline rit 2010 java_fxui_extraAlexandre.iline rit 2010 java_fxui_extra
Alexandre.iline rit 2010 java_fxui_extra
rit2010
 
Konstantin kolomeetz послание внутреннему заказчику
Konstantin kolomeetz послание внутреннему заказчикуKonstantin kolomeetz послание внутреннему заказчику
Konstantin kolomeetz послание внутреннему заказчику
rit2010
 
Bykov monitoring mailru
Bykov monitoring mailruBykov monitoring mailru
Bykov monitoring mailru
rit2010
 
Alexander shigin slides
Alexander shigin slidesAlexander shigin slides
Alexander shigin slides
rit2010
 
иван василевич Eye tracking и нейрокомпьютерный интерфейс
иван василевич Eye tracking и нейрокомпьютерный интерфейсиван василевич Eye tracking и нейрокомпьютерный интерфейс
иван василевич Eye tracking и нейрокомпьютерный интерфейс
rit2010
 
Andrey Petrov P D P
Andrey Petrov P D PAndrey Petrov P D P
Andrey Petrov P D P
rit2010
 
Andrey Petrov методология P D P, часть 1, цели вместо кейсов
Andrey Petrov методология P D P, часть 1, цели вместо кейсовAndrey Petrov методология P D P, часть 1, цели вместо кейсов
Andrey Petrov методология P D P, часть 1, цели вместо кейсов
rit2010
 
Dmitry lohansky rit2010
Dmitry lohansky rit2010Dmitry lohansky rit2010
Dmitry lohansky rit2010
rit2010
 
Dmitry Lohansky Rit2010
Dmitry Lohansky Rit2010Dmitry Lohansky Rit2010
Dmitry Lohansky Rit2010
rit2010
 
Related Queries Braslavski Yandex
Related Queries Braslavski YandexRelated Queries Braslavski Yandex
Related Queries Braslavski Yandex
rit2010
 
молчанов сергей датацентры 10 04 2010 Light
молчанов сергей датацентры 10 04 2010  Lightмолчанов сергей датацентры 10 04 2010  Light
молчанов сергей датацентры 10 04 2010 Light
rit2010
 
Sergey Ilinsky Rit 2010 Complex Gui Development Ample Sdk
Sergey Ilinsky Rit 2010 Complex Gui Development Ample SdkSergey Ilinsky Rit 2010 Complex Gui Development Ample Sdk
Sergey Ilinsky Rit 2010 Complex Gui Development Ample Sdk
rit2010
 
Serge P Nekoval Grails
Serge P  Nekoval GrailsSerge P  Nekoval Grails
Serge P Nekoval Grails
rit2010
 
Pavel Braslavski Related Queries Braslavski Yandex
Pavel Braslavski Related Queries Braslavski YandexPavel Braslavski Related Queries Braslavski Yandex
Pavel Braslavski Related Queries Braslavski Yandex
rit2010
 
Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2
rit2010
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Sockets
rit2010
 
Alexey Bazhin Balancing
Alexey Bazhin BalancingAlexey Bazhin Balancing
Alexey Bazhin Balancing
rit2010
 
рит, нефункциональная структура команды, безуглый
рит, нефункциональная структура команды, безуглыйрит, нефункциональная структура команды, безуглый
рит, нефункциональная структура команды, безуглый
rit2010
 
левин михаил выступление на рит большие картинки
левин михаил выступление на рит   большие картинкилевин михаил выступление на рит   большие картинки
левин михаил выступление на рит большие картинки
rit2010
 
левин михаил выступление на рит
левин михаил выступление на ритлевин михаил выступление на рит
левин михаил выступление на рит
rit2010
 

Mais de rit2010 (20)

Alexandre.iline rit 2010 java_fxui_extra
Alexandre.iline rit 2010 java_fxui_extraAlexandre.iline rit 2010 java_fxui_extra
Alexandre.iline rit 2010 java_fxui_extra
 
Konstantin kolomeetz послание внутреннему заказчику
Konstantin kolomeetz послание внутреннему заказчикуKonstantin kolomeetz послание внутреннему заказчику
Konstantin kolomeetz послание внутреннему заказчику
 
Bykov monitoring mailru
Bykov monitoring mailruBykov monitoring mailru
Bykov monitoring mailru
 
Alexander shigin slides
Alexander shigin slidesAlexander shigin slides
Alexander shigin slides
 
иван василевич Eye tracking и нейрокомпьютерный интерфейс
иван василевич Eye tracking и нейрокомпьютерный интерфейсиван василевич Eye tracking и нейрокомпьютерный интерфейс
иван василевич Eye tracking и нейрокомпьютерный интерфейс
 
Andrey Petrov P D P
Andrey Petrov P D PAndrey Petrov P D P
Andrey Petrov P D P
 
Andrey Petrov методология P D P, часть 1, цели вместо кейсов
Andrey Petrov методология P D P, часть 1, цели вместо кейсовAndrey Petrov методология P D P, часть 1, цели вместо кейсов
Andrey Petrov методология P D P, часть 1, цели вместо кейсов
 
Dmitry lohansky rit2010
Dmitry lohansky rit2010Dmitry lohansky rit2010
Dmitry lohansky rit2010
 
Dmitry Lohansky Rit2010
Dmitry Lohansky Rit2010Dmitry Lohansky Rit2010
Dmitry Lohansky Rit2010
 
Related Queries Braslavski Yandex
Related Queries Braslavski YandexRelated Queries Braslavski Yandex
Related Queries Braslavski Yandex
 
молчанов сергей датацентры 10 04 2010 Light
молчанов сергей датацентры 10 04 2010  Lightмолчанов сергей датацентры 10 04 2010  Light
молчанов сергей датацентры 10 04 2010 Light
 
Sergey Ilinsky Rit 2010 Complex Gui Development Ample Sdk
Sergey Ilinsky Rit 2010 Complex Gui Development Ample SdkSergey Ilinsky Rit 2010 Complex Gui Development Ample Sdk
Sergey Ilinsky Rit 2010 Complex Gui Development Ample Sdk
 
Serge P Nekoval Grails
Serge P  Nekoval GrailsSerge P  Nekoval Grails
Serge P Nekoval Grails
 
Pavel Braslavski Related Queries Braslavski Yandex
Pavel Braslavski Related Queries Braslavski YandexPavel Braslavski Related Queries Braslavski Yandex
Pavel Braslavski Related Queries Braslavski Yandex
 
Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Sockets
 
Alexey Bazhin Balancing
Alexey Bazhin BalancingAlexey Bazhin Balancing
Alexey Bazhin Balancing
 
рит, нефункциональная структура команды, безуглый
рит, нефункциональная структура команды, безуглыйрит, нефункциональная структура команды, безуглый
рит, нефункциональная структура команды, безуглый
 
левин михаил выступление на рит большие картинки
левин михаил выступление на рит   большие картинкилевин михаил выступление на рит   большие картинки
левин михаил выступление на рит большие картинки
 
левин михаил выступление на рит
левин михаил выступление на ритлевин михаил выступление на рит
левин михаил выступление на рит
 

антон веснин Rails Application Servers

  • 1. Развертывание среды RubyonRails для промышленного использования.Методы, технологии, приемы. Антон Веснин (locum.ru)
  • 2. Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development)
  • 3. Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development) - Подробное логирование - Отладочная информация
  • 4. Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development) - Стабильность - Производительность - Поддержка и развитие - Подробное логирование - Отладочная информация
  • 5. Элементы системы Сервер приложений Код приложения База данных Дополнительные приложения (прокси, memcached и т.п.)
  • 6.
  • 7. Mongrelhttp://github.com/fauna/mongrel Mongrel 0 Proxy — сервер Mongrel 1 Mongrel 2 Mongrel 3 Пользователи Mongrel N Связь между Mongrel и proxy-сервером через tcp-порт
  • 8. Mongrelhttp://github.com/fauna/mongrel Плюсы: - Простота: один сервер — один запрос - Сервера не связаны между собой - Легко увеличить количество серверов - Работает с JAVA и JRuby
  • 9. Mongrelhttp://github.com/fauna/mongrel Плюсы: - Простота: один сервер — один запрос - Сервера не связаны между собой - Легко увеличить количество серверов - Работает с JAVA и JRuby Минусы: - Потребление оперативной памяти - Долгий перезапуск - Проблемы с разграничением прав на tcp-порты
  • 10. Thinhttp://code.macournoyer.com/thin/ Thin 0 Proxy — сервер Thin 1 Thin 2 Thin 3 Thin N Связь между Thin и proxy сервером через TCP-порт или UNIX-сокет Через сокет - быстрее
  • 11. Thinhttp://code.macournoyer.com/thin/ Плюсы: - Быстрее чем Mongrel - Может работать через Unix-сокет - Просто увеличить количество серверов
  • 12. Thinhttp://code.macournoyer.com/thin/ Плюсы: - Быстрее чем Mongrel - Может работать через Unix-сокет - Просто увеличить количество серверов Минусы: - Потребление оперативной памяти - Долгий перезапуск
  • 13. Unicornhttp://unicorn.bogomips.org Более технологичен: Есть мастер-процесс и много процессов обработчиков Мастер следит за обработчиками, балансирует нагрузку
  • 14. Unicornhttp://unicorn.bogomips.org Обработчик Unicorn Master Обработчик Proxy сервер Разделяемый сокет Обработчик Пользователи Обработчик
  • 15. Преимущества такого подхода: 1. Мастер всегда знает кто из обработчиков свободен 2. Мастер может остановить обработчик по необходимости 3.Если один из обработчиков аварийно завершился, почти мгновенно запускается новый 4.Процесс перезапуска приложения можно сделать почти незаметным для пользователя
  • 16. Перезапуск Unicorn с новой версией кода Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
  • 17. (этап 1) Администратор USR2 сигнал Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
  • 18. (этап 2) НовыйUnicorn Master Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
  • 19. (этап 3) Обработчик НовыйUnicorn Master Обработчик Обработчик Обработчик Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
  • 20. (этап 3) Обработчик НовыйUnicorn Master Обработчик Обработчик Обработчик Proxy сервер QUITсигнал Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
  • 21. (Перезапуск Unicornзавершен) Обработчик НовыйUnicorn Master Обработчик Обработчик Обработчик Proxy сервер Разделяемый сокет Пользователи
  • 22. Unicornhttp://unicorn.bogomips.org Плюсы: - Решается проблема долгой перезагрузки - Стабильность за счет мгновенного перезапуска обработчиков - Проще отслеживать нештатные ситуации
  • 23. Unicornhttp://unicorn.bogomips.org Плюсы: - Решается проблема долгой перезагрузки - Стабильность за счет мгновенного перезапуска обработчиков - Проще отслеживать нештатные ситуации Минусы: - Потребление памяти больше чем у thin
  • 24. Passenger или mod railshttp://modrails.com Особенности: - Не является самостоятельным сервером - Модуль для Apache 2 и Nginx - Рассчитан на запуск большого количества rails-приложений
  • 25. Passenger или mod railshttp://modrails.com Плюсы: - Удобен для хостинг-серверов - Позволяет сократить единовременное потребление памяти - Возможность указать альтернативную версию ruby
  • 26. Passenger или mod railshttp://modrails.com Плюсы: - Удобен для хостинг-серверов - Позволяет сократить единовременное потребление памяти - Возможность указать альтернативную версию ruby Минусы: - Не так быстр как thin - В случае работы с Nginx при нагрузке периодически возникают проблемы - Недостаточно возможностей лимитировать ресурсы
  • 27. Jruby и Rails - Большое количество j2ee серверов - Возможность использовать java-классы из ruby
  • 28.
  • 29. Организация отдачи статики - Все рассмотренные сервера приложений могут отдавать статику - Ни один из них не будет делать это действительно хорошо - Статические файлы должен отдавать быстрый веб-сервер (nginx, lighttpd, etc) - Организация отдачи статических данных после обработки запроса rails-кодом - X-Sedn-File и X-Accel-Redirect
  • 30. Общие выводы Много проектов и не постоянная загрузка — Passenger
  • 31. Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn
  • 32. Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn Критично потребление памяти и редки обновления — Thin или Unicorn
  • 33. Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn Критично потребление памяти и редки обновления — Thin или Unicorn + Статические данные всегда отдаются веб-сервером
  • 35. Антон Веснин avesnin@locum.ru locum.ru Презентация в электронном виде: labs.locum.ru/rit.ppt