Your SlideShare is downloading. ×
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
развертывание среды Rails (антон веснин, Locum Ru)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

развертывание среды Rails (антон веснин, Locum Ru)

3,767

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,767
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
21
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Развертывание среды RubyonRails для промышленного использования.Методы, технологии, приемы.
    Антон Веснин (locum.ru)
  • 2. Что такое промышленное использование?

    Промышленное использование
    Запуск в режиме разработки
    (production)
    (development)
  • 3. Что такое промышленное использование?

    Промышленное использование
    Запуск в режиме разработки
    (production)
    (development)
    - Подробное логирование
    - Отладочная информация
  • 4. Что такое промышленное использование?

    Промышленное использование
    Запуск в режиме разработки
    (production)
    (development)
    - Стабильность
    - Производительность
    - Поддержка и развитие
    - Подробное логирование
    - Отладочная информация
  • 5. Элементы системы
    Сервер приложений
    Код приложения
    База данных
    Дополнительные приложения (прокси, memcached и т.п.)
  • 6. Автоматизация процесса размещения новой версии кода
    Capistrano
    - Сохранение копии предыдущей версии
    - Загрузка новой версии кода
    - Изменения в базе данных (по необходимости)
    - Перезапуск сервера приложений
    • Откат на предыдущую версию в случае сбоя
  • Автоматизация процесса размещения новой версии кода
    Удобства:
    - Система релизов
    - Легко создавать свои методы и задачи
    Неудобство:
    - Требует специальной структуры директорий на сервере и ssh-доступ
  • 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. Организация отдачи статики
    • Все рассмотренные сервера приложений могут отдавать статику
  • Организация отдачи статики
    - Все рассмотренные сервера приложений могут отдавать статику
    - Ни один из них не будет делать это действительно хорошо
    - Статические файлы должен отдавать быстрый веб-сервер (nginx, lighttpd, etc)
  • 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
    +
    Статические данные всегда отдаются веб-сервером
  • 34. Спасибо за внимание!Вопросы?
  • 35. Антон Веснин
    avesnin@locum.ru
    locum.ru
    Презентация в электронном виде:
    labs.locum.ru/rit.ppt

×