SlideShare una empresa de 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

Más contenido relacionado

La actualidad más candente

Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...
Быстрый старт iOS приложения на примере iOS Почты Mail.Ru / Николай Морев (Ma...Ontico
 
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
 
Prometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоPrometheus мониторинг микросервисных приложений / Виталий Левченко
Prometheus мониторинг микросервисных приложений / Виталий ЛевченкоOntico
 
Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»Артём Ерошенко «Рецепт приготовления облачных тестингов»
Артём Ерошенко «Рецепт приготовления облачных тестингов»WrikeTechClub
 
Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Евгений Потапов (Сумма Айти)
Евгений Потапов (Сумма Айти)Ontico
 
Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Конструктор / Денис Паясь (Яндекс)
Конструктор / Денис Паясь (Яндекс)Ontico
 
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 HighloadYehor Herasymchuk
 
DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)DC/OS – больше чем PAAS, Никита Борзых (Express 42)
DC/OS – больше чем PAAS, Никита Борзых (Express 42)Ontico
 
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)
Оптимизация UI потока / Дмитрий Куркин (Mail.Ru)Ontico
 
Maven 3 : уличная магия
Maven 3 : уличная магияMaven 3 : уличная магия
Maven 3 : уличная магияAleksey Solntsev
 
системы сборок проектов
системы сборок проектовсистемы сборок проектов
системы сборок проектовRomero78
 
обзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаобзор архитектуры и подсистем деплоя и мониторинга
обзор архитектуры и подсистем деплоя и мониторингаКонстантин Никифоров
 
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Chef по обе стороны Bamboo / Артем Семенов (Align Technology)
Chef по обе стороны Bamboo / Артем Семенов (Align Technology)Ontico
 
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)
Переезжаем с Zabbix на Prometheus / Василий Озеров (fevlake)Ontico
 
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...Автоматизированное тестирование - от сложного к простому, или Запускаем автот...
Автоматизированное тестирование - от сложного к простому, или Запускаем автот...SQALab
 
Вредные советы для разработчиков
Вредные советы для разработчиковВредные советы для разработчиков
Вредные советы для разработчиковITCrowd Almaty
 
"Производительность MySQL: что нового?"
"Производительность MySQL: что нового?""Производительность MySQL: что нового?"
"Производительность MySQL: что нового?"Badoo Development
 
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...
Подходы и технологии, используемые в разработке iOS-клиента Viber, Кирилл Лаш...Yandex
 
Иван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаИван Крутов - Автоматизация сборки Java-проекта
Иван Крутов - Автоматизация сборки Java-проектаYandex
 

La actualidad más candente (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-проекта
 

Destacado

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

Destacado (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
 

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

Управление облачной инфраструктурой
Управление облачной инфраструктуройУправление облачной инфраструктурой
Управление облачной инфраструктуройdddpaul
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Anton Baranov
 
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...
Мониторинг в высоконагруженных (и не только) проектах: сравнительный анализ с...Ontico
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализацияYandex
 
мониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBAмониторинг производительности приложения на PINBA
мониторинг производительности приложения на PINBASlach
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Co
«Микросервисы наносят ответный удар!» Олег Чуркин, Rambler&Coit-people
 
Надежность World of Tanks Server
Надежность World of Tanks ServerНадежность World of Tanks Server
Надежность World of Tanks ServerLevon Avakyan
 
Изоморфные react-приложения
Изоморфные react-приложенияИзоморфные react-приложения
Изоморфные react-приложенияDenis Izmaylov
 
Net core and linux in production
Net core and linux in productionNet core and linux in production
Net core and linux in productionAnatoly Popov
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeIosif Itkin
 
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...
ZFConf 2011: Воюем за ресурсы: Повышение производительности Zend Framework пр...ZFConf Conference
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Практика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustПрактика разработки веб-серверов на Rust
Практика разработки веб-серверов на RustMichael Pankov
 
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 2014Alexey Bokov
 
евгений потапов 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
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 

Similar 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
 

Más 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_extrarit2010
 
Konstantin kolomeetz послание внутреннему заказчику
Konstantin kolomeetz послание внутреннему заказчикуKonstantin kolomeetz послание внутреннему заказчику
Konstantin kolomeetz послание внутреннему заказчикуrit2010
 
Bykov monitoring mailru
Bykov monitoring mailruBykov monitoring mailru
Bykov monitoring mailrurit2010
 
Alexander shigin slides
Alexander shigin slidesAlexander shigin slides
Alexander shigin slidesrit2010
 
иван василевич 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 Prit2010
 
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 rit2010rit2010
 
Dmitry Lohansky Rit2010
Dmitry Lohansky Rit2010Dmitry Lohansky Rit2010
Dmitry Lohansky Rit2010rit2010
 
Related Queries Braslavski Yandex
Related Queries Braslavski YandexRelated Queries Braslavski Yandex
Related Queries Braslavski Yandexrit2010
 
молчанов сергей датацентры 10 04 2010 Light
молчанов сергей датацентры 10 04 2010  Lightмолчанов сергей датацентры 10 04 2010  Light
молчанов сергей датацентры 10 04 2010 Lightrit2010
 
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 Sdkrit2010
 
Serge P Nekoval Grails
Serge P  Nekoval GrailsSerge P  Nekoval Grails
Serge P Nekoval Grailsrit2010
 
Pavel Braslavski Related Queries Braslavski Yandex
Pavel Braslavski Related Queries Braslavski YandexPavel Braslavski Related Queries Braslavski Yandex
Pavel Braslavski Related Queries Braslavski Yandexrit2010
 
Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2Max Lapshin Erlyvideo V2
Max Lapshin Erlyvideo V2rit2010
 
Eugene Lisitsky Web Sockets
Eugene Lisitsky Web SocketsEugene Lisitsky Web Sockets
Eugene Lisitsky Web Socketsrit2010
 
Alexey Bazhin Balancing
Alexey Bazhin BalancingAlexey Bazhin Balancing
Alexey Bazhin Balancingrit2010
 
рит, нефункциональная структура команды, безуглый
рит, нефункциональная структура команды, безуглыйрит, нефункциональная структура команды, безуглый
рит, нефункциональная структура команды, безуглыйrit2010
 
левин михаил выступление на рит большие картинки
левин михаил выступление на рит   большие картинкилевин михаил выступление на рит   большие картинки
левин михаил выступление на рит большие картинкиrit2010
 
левин михаил выступление на рит
левин михаил выступление на ритлевин михаил выступление на рит
левин михаил выступление на ритrit2010
 

Más 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