2. Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development)
3. Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development) - Подробное логирование - Отладочная информация
4. Что такое промышленное использование? ≠ Промышленное использование Запуск в режиме разработки (production) (development) - Стабильность - Производительность - Поддержка и развитие - Подробное логирование - Отладочная информация
5. Элементы системы Сервер приложений Код приложения База данных Дополнительные приложения (прокси, memcached и т.п.)
9. Mongrelhttp://github.com/fauna/mongrel Плюсы: - Простота: один сервер — один запрос - Сервера не связаны между собой - Легко увеличить количество серверов - Работает с JAVA и JRuby Минусы: - Потребление оперативной памяти - Долгий перезапуск - Проблемы с разграничением прав на tcp-порты
12. Thinhttp://code.macournoyer.com/thin/ Плюсы: - Быстрее чем Mongrel - Может работать через Unix-сокет - Просто увеличить количество серверов Минусы: - Потребление оперативной памяти - Долгий перезапуск
15. Преимущества такого подхода: 1. Мастер всегда знает кто из обработчиков свободен 2. Мастер может остановить обработчик по необходимости 3.Если один из обработчиков аварийно завершился, почти мгновенно запускается новый 4.Процесс перезапуска приложения можно сделать почти незаметным для пользователя
16. Перезапуск Unicorn с новой версией кода Proxy сервер Разделяемый сокет Обработчик Пользователи Unicorn Master Обработчик Обработчик Обработчик
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
31. Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn
32. Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn Критично потребление памяти и редки обновления — Thin или Unicorn
33. Общие выводы Много проектов и не постоянная загрузка — Passenger Постоянная нагрузка и критичен период простоя при перезапуска — Unicorn Критично потребление памяти и редки обновления — Thin или Unicorn + Статические данные всегда отдаются веб-сервером