Size: a a a

2017 July 21

MS

Mikhail Sytchev in Rubyata
Mikhail Sytchev
просто если задача настолько однотипная, то проще настроить один VPS снять с него образ и реплицировать под каждого клиента на самом низком уровне
насчет этого что скажешь? есть возможность просто образы снимать?
источник

PT

Pavel Tkachenko in Rubyata
Серверы могут отличаться. Часть на DO, часть здесь с разными версиями ОС, которые нам дают клиенты. Остается однотипным стек, так как ПО ставим одно и тоже
источник

MS

Mikhail Sytchev in Rubyata
Ок
источник

PT

Pavel Tkachenko in Rubyata
А если докер настроить и кидать его на все VPS?
источник

MS

Mikhail Sytchev in Rubyata
------------------— вещи относительно постоянные —------------------
1) Берем сервак (Ubuntu, CentOS)
2) Настраиваем, обновляем, ставим либы, базы, устанавливаем пользователей — chef или ansible скрипт
3) Ставим nginx+passenger, nginx, postgresql, docker daemon (обоснование ниже) — chef или ansible скрипт
4) Настройка бекапов файлов, конфигов nginx и БД
—------------------------------------------------------------------------------------------

—------------------- уровень приложения (частые изменения, много вариаций) —-------------------------------------
5)  ruby, rvm, конкретная ветка репозитория, конкретная версия. специфичные для приложения настройки
Я бы собрал Docker контейнер со всем этим и поставлял только его через Docker Registry
—------------------------------------------------------------------------------------------


Капистрана отпадает в данном случае. Поставляется только контейнер определенной версии из реестра контейнеров.
Как он туда попадает? Его собирает CI из нужной ветки и ложит в реестр.

Мониторинг доступности приложения в контейнере (ф-ть monit) можно реализовать через Docker Healthcheck (встроенная фича докера). Мониторинг доступности всей системы в твоих требованиях отсутствует, но по-хорошему надо этим озаботиться и поставить какой-нить zabbix, или решение по-проще.
источник

MS

Mikhail Sytchev in Rubyata
Причем на первую группу у тебя получится 2 набора скриптов: для убунты и для центос. Второая группа постоянна и не меняется.
источник

MS

Mikhail Sytchev in Rubyata
ну или будут ветвления в провижн скриптах chef
источник

MS

Mikhail Sytchev in Rubyata
еще если прям заморочиться, то есть serverspecs — Rspec-подобные скрипты для проверки что установлено на сервере. Это для того, чтобы протестировать, что провизионирование закончилось успешно. Работы по автоматизации много, но если все выстроить грамотно, то будет автоматически деплоиться по нажатию одной кнопки.
источник

MS

Mikhail Sytchev in Rubyata
почему nginx и postgres в докере не поставлять? Хорошая на первый взгляд идея. Но в постгри много низкоуровневых оптимизаций, которые не будут работать за счет дополнительного уровня абстрации от системы, и как следствие падение производительности. Nginx в принципе можно засунуть в докер, но надо будет линковать контейнеры, и у него тоже есть сильные завязки на чтение/запись с ФС. Я бы не стал его в контейнр сувать для продакшна. Для демо среды — норм
источник

PT

Pavel Tkachenko in Rubyata
Спасибо!
источник

PT

Pavel Tkachenko in Rubyata
Будем изучать короче
источник

MS

Mikhail Sytchev in Rubyata
спрашивайте свои ответы, если что
источник

С

СчАсТлИвАя НО НЕ ТВОЯ ❤️❤️❤️ in Rubyata
Mikhail Sytchev
почему nginx и postgres в докере не поставлять? Хорошая на первый взгляд идея. Но в постгри много низкоуровневых оптимизаций, которые не будут работать за счет дополнительного уровня абстрации от системы, и как следствие падение производительности. Nginx в принципе можно засунуть в докер, но надо будет линковать контейнеры, и у него тоже есть сильные завязки на чтение/запись с ФС. Я бы не стал его в контейнр сувать для продакшна. Для демо среды — норм
Годно расписал, спасибо
источник

DO

Denis Oster in Rubyata
Вопрос по настройке редиректов на nginx, как их реализовать?
Чтобы, когда пользователь заходит на domain.com, его автоматом перебрасывало на domain.com/ru.
И так же, чтобы если пользователь зайдет просто на domain.com/product/123, его перекинуло на domain.com/ru/product/123.
При этом чтобы в исключениях был domain.com/admins и все выше лежащие от admins.
Конфиг который у меня есть на данный момент: https://gist.github.com/denisoster/eaaa1766ddd52d4c93f0422ffb9b01c5/edit
источник

PT

Pavel Tkachenko in Rubyata
Denis Oster
Вопрос по настройке редиректов на nginx, как их реализовать?
Чтобы, когда пользователь заходит на domain.com, его автоматом перебрасывало на domain.com/ru.
И так же, чтобы если пользователь зайдет просто на domain.com/product/123, его перекинуло на domain.com/ru/product/123.
При этом чтобы в исключениях был domain.com/admins и все выше лежащие от admins.
Конфиг который у меня есть на данный момент: https://gist.github.com/denisoster/eaaa1766ddd52d4c93f0422ffb9b01c5/edit
У тебя за локализацию отвечает рельса, сделай на ней. Выше же были примеры. Не сработало?
источник

DO

Denis Oster in Rubyata
Ничего не сработало
источник

Z

Zulkar in Rubyata
Denis Oster
Ничего не сработало
скинь роут файл в гисте
источник

DO

Denis Oster in Rubyata
источник

PT

Pavel Tkachenko in Rubyata
Почему ты не используешь resoureses?
источник

PT

Pavel Tkachenko in Rubyata
    get 'news' => 'news#index', as: :news_index
   get 'news/new' => 'news#new', as: :news_new
   post 'news/create' => 'news#create', as: :news_create
   get 'news/:id/edit' => 'news#edit', as: :news_edit
   patch 'news/:id/update' => 'news#update', as: :news_update
   delete 'news/:id/destroy' => 'news#destroy', as: :news_destroy
источник