Всем привет! Меня зовут Сергей Спорышев, я директор направления DevOps-продуктов в ITSumma. В этом тексте я хочу рассказать, как задача по переносу в облако простого на первый взгляд проекта оказалась не такой уж простой и превратилась в целый квест.
Рубрика «rubyonrails»
Как перевезти интернет-магазин на Spree и RoR в облако и улучшить стабильность сайта в 4 раза?
2023-05-17 в 9:01, admin, рубрики: devops, kubernetes, postgresql, rubyonrails, spree, Блог компании ITSumma, инфраструктура, кейс, миграция проекта, облачные сервисы, системное администрированиеИзучаем Ruby. Урок 0. Создаем рабочее окружение Ruby
2017-04-22 в 16:56, admin, рубрики: ruby, ruby on rails, rubyonrailsВсем привет!
Хочу поделиться с вами своим опытом в изучении Ruby и фреймверка для веб разработки Ruby on Rails.
Ruby on Rails – один из самых популярных стеков для разработки сайтов и приложений, который состоит из языка программирования Ruby и фреймворка Rails.
Ruby и Rails можно быстро установить с помощью инструмента командной строки RVM (Ruby Version Manager, менеджер версий Ruby). RVM позволяет управлять версиями Ruby, работать в нескольких окружениях Ruby и легко переключать их.
Наш первый урок будет посвящен настройке окружения для разработки в ОС Linux. Использовать в процессе обучения будем Ubuntu Linux 16.04 LTS.
Установка RVM
Сначала нужно получить открытый ключ с помощью команды gpg. В данном случае это ключ проекта RVM, который используется для подписи всех релизов. С помощью ключа RVM можно подтвердить подлинность загружаемого пакета.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
Перейдите в каталог /tmp и загрузите сценарий RVM в файл:
cd /tmp
С помощью команды curl загрузите установочный сценарий RVM с сайта проекта. Обратный слеш в начале команды запустит обычную команду curl, а не её алиас.Читать полностью »
Сайдкик-самоубийца
2016-07-25 в 21:11, admin, рубрики: ruby, ruby on rails, rubyonrails, sidekiq, метки: sidekiqТак уж получилось, что появилась необходимость досрочно останавливать уже запущенный сайдкик-воркер. И, как уже всем причастным известно, запущенную задачу невозможно остановить штатными средствами — этого просто не предусмотрено архитектурой. И когда сайдкик-задача начала уже выполняться, то ее уже ничто не остановит. Конечно же, в интернетах тут же нашлось решение с убиением руби-процесса и с отменой перезапуска оного, но это решение по очевидным причинам не может устраивать ни разработчиков приложения, ни разработчиков сайдкика.
В итоге решение появилось откуда не ждали и оказалось крайне простым и очевидным. Читать полностью »
Apache + FCGI + Ruby + ActiveRecord. Когда RoR много
2016-02-29 в 10:42, admin, рубрики: activerecord, Apache, fcgi, ruby, ruby on rails, rubyonrails, метки: rubyonrailsИстоки стека технологий
В определенный момент пришло моё время написать что-то отдаленно похожее на web сайт. Самый обычный сайт: главная страница с отображением на ней трёх табличек из БД и парой форм для заполнения оных контентом. Такие мной были поставлены начальные требовнаия. Думаю, у каждого при написании первого сайта возникает вопрос: какие инструменты для этого использовать? Для меня были довольно принципиальны критерии:
- использовать Ruby, так как я с ним довольно хорошо знаком (а с php и python — нет)
- использовать объектную модель насколько это возможно
- ограничиться только необходимыми средствами разработки: ведь незачем тащить за собой JQuery, когда нужен всего один POST запрос
Соответственно, взгляд упал на Ruby on Rails: это полноценный framework, довольно популярный и, как ни странно, содержит в себе Ruby.
И тот "подправлен" заботливыми рельсами. Я имею ввиду, что весь встречающийся синтаксис мог внезапно оказаться C++. И никто бы не заметил — всё скрывается framework'ом.
И принялся я его изучать, чего и вам желаю. Хороший гайд: помогает понять, что рельсы — это гигантская сборка gem'ов, которые потом ещё и разворачивать придется на passenger. То есть, кроме мороки с bundler'ом или rvm (чего в итоге не избежать), придется ещё и passenger стыковать с Apache или nginx. Меня эти перспективы напугали и, дочитав таки tutorial, я начал искать чем бы RoR заменить, оставив при этом от него только необходимое. Для меня все ограничилось Ruby и ActiveRecord. Первые поиски пути выполнения Ruby кода на Apache показали, что есть mod_ruby: этот и этот.
Вот на это API и пишутся модули, позвоялющие выполнять скрипты PHP, Python и Ruby. Это не CGI, что сулит повышенную производительность. Вот какие модули я имею ввиду.
Однако, первые же опыты привели меня к такой и вот такой ситуации.
Конечно, не бог весть какие проблемы: всё решаемо, но тут я посмотрел на даты последних коммитов, увидел заветное "пол года назад" и отказался от этой идей.
После этого мой выбор пал на FCGI как довольно перспективное продолжение CGI. Почему не CGI? А потому-что. Т.е. для FCGI у Ruby есть gem, который позволяет обрабатывать запросы не в сыром виде CGI, а посредством интерфейса гема. Смотрится удобно, но об этом позже. Ну вроде всё: есть Apache, есть FCGI, Ruby… И, так как у меня есть небольшой backend в виде БД, а работать с тяжелым mysql или аналогами не хотелось, решил я прихватить ActiveRecord из RoR себе в виде файла sqlite3 БД.
Заинтересовало? Добро пожаловать под кат.Читать полностью »