Подпишитесь на рассылку о самых интересных материалах в мире веб-разработки :)

Deploy.rb. Запусти Rails 5 на Production сервере за 30 минут


(Ilya N Zykin) #1

Большое видео о настройке и деплое Rails 5 приложения. Ребята, го пробовать Rails 5, Пуму и WebSockets!

30 минут и вы на рельсах на реальном сервере!

:white_check_mark: :white_check_mark: :white_check_mark: https://goo.gl/ulJnPL :white_check_mark: :white_check_mark: :white_check_mark:

Deploy.rb Демонстрационно образовательный проект, который поможет вам быстро запустить Rails 5 приложение в Production режиме на настоящем сервере. В этой видео-презентации подробно разобран способ конфигурирования Rails приложения для обеспечения удобной поддержки и развития проекта. Для комфортного конфигурирования и дальнейшего деплоя.


#2

Чем это лучше\отличается от capistrano? Не ради холивала спрашиваю, просто интересно, что-то ведь сподвигло заняться этим вопросом.


(Ilya N Zykin) #3
  1. Капа это DSL инструмент, построенный на геме SSHKit, который построен на основе net-ssh и scp-ssh. Таким образом это многоуровневый, сложный инструмент. Дебаг и отладка которого в не тривиальных случаях является крайне время-затратным процессом.
  2. Капа из коробки не обеспечивает ничего, кроме минимального (и не достаточного) для деплоя набора функций. Ни шаблонизации, ни адекватного конфигурирования вы не найдете в капе.
  3. Как первый инструмент деплоя - капа сверх неочевидный инструмент. С кучей магии и метапрограммирования.
  4. Капа поощряет создание и использование разнородных, разношерстных, не единообразных гемов с кусочками функционала, которые перед использованием надо сперва изучить, а лишь потом принимать решение. стоит ли именно это решение использовать. А отладка проблем в десятках разношерстных гемов - это то еще удовольствие. Особенно для новичка.

Как я уже говорил - я пользовался капой много лет и деплоил большие проекты. Я продвинутый пользователь. Я знаю как ее готовить. Но моя задача была показать как можно обеспечить деплой десятком руби методов, без использования метапрограммирования, DSL и магии. Я использовал очевидные, широко распространенные SSH, SCP, RSYNC тулзы и реализовал деплой играючи с даже почти без ООП.

Я уверен, что для новичка, небольшой студии, небольшого личного проекта - весь этот проект от начала до конца является отличным образовательным примером. Вот и вся суть истории.


(Kvokka) #4

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

но вот делать это через замену на “десяток руби методов” это реально магия. и черная ее сторона в немасштабируемости. или я так ничего и не понял?

пмсм, если разраб не может разобраться с капистрано, то ему нужен не другой инструмент, а просто конторе нужен другой разраб


(Ilya N Zykin) #5

Капистрано - это переусложненный тайм киллер, который потратил десятки тысяч человеко часов только на то, что бы отдежбажить и выяснить, что пошло не так в одном из десятка гемов на которых основан именно ваш деплой процесс.

Вы задавались вопросом что именно делает SSHkit, ка он устроен и на основе чего? Почему SSHkit вообще существует и с какой целью? На каких идеях он основан? Вы читаете исходники связанных с капой гемов, перед из использованием? Вы оценивали время которое вы и ваши коллеги потратили на не решение проблем возникающих при использовании капы? Вы деплоили капой на фряху?

Я лично всегда себе задаю очень много вопросов и в момент выбора и в момент использования конкретного инструмента. По результатам многолетней практики в крупных проектах могу сказать, что капа один из самых неудачных инструментов деплоя. Если вы меня захотите поймать на некомпетентности в этом вопросе, то вам будет сделать это очень не просто - я успешно использовал капу на ряде проектов, я знаю как ее готовить и под каким соусом лучше подать. Я знаю что говорю и все что я говорю подкреплено обширной практикой.

На создание капы, развитие, рефакторинг и дебаг были потрачены годы и труд десятков программистов. Капа обросла даже какой-то искусственной экосистемой, которой по сути грошь цена, тк все эко система всего только и делает, что обслуживает инструмент, который из коробки не делает фактически ничего.

Я наглядно продемонстрировал в своем проекте, что даже начинающий разработчик, может реализовать для своего проекта деплоилку парой десятков простых руби методов с использованием только интерполяции. И эта деплоилка будет без проблем покрывать весь функционал капы на раз-два. А поддержка простых руби методов в несопоставимо проще дебага магии DSL

Руби методы и интерполяция. Это для вас магия? Странно, если так.

Массштабируемость. Я не решал эту задачу, она мне не нужна. Я ничего подобного не заявлял нигде. Проект сделан не для того, что бы показать как развертывать и поддерживать инфраструктуры. Для этого есть специализирванные инструменты. Всякая задача имеет граничные условия. Я их четко определил и в них работал.

если разраб не может разобраться с капистрано
Деплой не задача разраба. Он вообще ничего об этом знать не должен. Только если из острой необходимости или личного интереса. Мой проект предоставляет простой, но демонстративный пример всех этапов именно для тех кому интересен принципиальных ход процесса. Без углубления в детали сис администрирования.


(Kvokka) #6

Ответ, безусловно, исчерпывающий.
Повторюсь, что я не сомневаюсь, что в некоторых простых случаях вполне себе можно и нужно упростить задачу до “десятка методов”, но, что будет дальше? Кода проект будет расти, то к этим методом потребуется еще и еще. А потом придет еще 1 разработчик и будет разбираться во всем написанном. Ненавистная капистрано вполне справляется с поставленной задачей. Срок ее жизни впринципе подходит к концу- контейнеры все заполонят. Это тупо удобно. Вот-вот и инфраструктура доберется и до Hello world приложений. (Хотя, наверное еще ведь есть люди, кто напрямую на ftp заливают :))

Я не могу похвастатья колупанием в SSHkit, но, приходилось хорошенько нырять в net-ssh && net-scp. И, обычно, эти погружения с головой и на долго.

Проект, пмсм, интересен не для продакшен целей, а для более глубинного понимания как в минимальной обвязке работает капа и как ее можно заменить, если уж с ней совсем невмоготу (хотя, представляется с трудом. Но, это, видимо, моя скудщая фантазия)

И, когда я “входил в рельсу” такого контента не было даже на торрентах на английском, а тут и халявно и на русском. Лайки проставлены, плюс к карме выдан :slight_smile:


(Ilya N Zykin) #7

Спасибо за вашу оценку.
Что будет потом - просто должен наступить момент использования других инструментов.
Изначально проект делался для того, что бы за 30 минут успеть запустить рельс 5 на продакшл-лайк сервере, толь ради того, что бы поиграться с новыми возможностями рельса. Глобальной задачи конечно не решалось. Целью было - сделать это самыми не магическими средствами, что бы даже новичек мог попробовать подебажить все вокруг. Ну а насколько это получилось - оценивать конкретным людям. Мне конечно хочется что бы это оказалось хоть как-то полезно. А будет ли - решать не мне.

Еще раз спасибо за вашу реакцию