Хмарний сервер для Ruby on Rails у Європі

Хмарний сервер для Ruby on Rails у Європі

Хмарний сервер для Ruby on Rails у Європі

Ruby on Rails залишається одним з найпродуктивніших веб-фреймворків для побудови повностекових застосунків. Його підхід "конвенція замість конфігурації" дозволяє невеликим командам швидко випускати продукти. Але Rails потребує справжнього сервера - правильно налаштованої, постійно ввімкненої машини, яка може обробляти запити, фонові завдання та компіляцію ресурсів. Для команд, що обслуговують європейських користувачів, цей сервер має бути в Європі.

Чому хостинг у ЄС важливий для Ruby on Rails

Rails-застосунки за своєю природою є повностековими. Вони обслуговують HTML, обробляють автентифікацію, платежі, надсилають листи та часто керують завантаженням файлів. Кожна з цих операцій включає персональні дані користувачів. Відповідно до GDPR, ці дані повинні оброблятися на інфраструктурі в межах ЄС, якщо ви обслуговуєте мешканців ЄС.

Мережева затримка особливо важлива для Rails, оскільки його цикл запитів є синхронним за замовчуванням. Хостинг у Празі або Вільнюсі дає вам 5-20 мс до більшості Західної та Центральної Європи порівняно з 100-150 мс від сервера у США.

Фонові завдання через Sidekiq також виграють від хостингу у ЄС. Якщо ваші завдання надсилають транзакційні листи або синхронізуються з партнерськими сервісами у ЄС, тримання всього в одному регіоні зменшує затримку для цих операцій.

Мінімальні вимоги до сервера

Rails більш ресурсоємний, ніж легші фреймворки. Компіляція ресурсів особливо вимоглива.

  • RAM - мінімум 2 ГБ для запуску Puma та Rails-застосунку. Компіляція ресурсів може пікувати до 1,5-2 ГБ, тому для продакшну рекомендується 4 ГБ.
  • CPU - мінімум 2 ядра. Багатопотокова модель Puma виграє від реального паралелізму CPU. 4 ядра ідеальні для застосунків з середнім трафіком.
  • Диск - мінімум 20 ГБ. Потрібен SSD для прийнятної продуктивності бази даних.
  • Ruby - версія 3.2 або новіша. Ruby 3.3 пропонує значні покращення продуктивності.
  • PostgreSQL - версія 15 або новіша.

Рекомендована конфігурація DCXV

Хмарні плани DCXV починаються від EUR 15/місяць. Для реального продакшн-розгортання з фоновими завданнями практичною відправною точкою є план з 2 ядрами / 4 ГБ RAM.

Rails з Sidekiq запускає два процеси: Puma (веб-сервер) та Sidekiq (фонові завдання). На 4 ГБ RAM можна запустити Puma з 2-3 воркерами, Sidekiq з 5-10 потоками і ще залишити місце для PostgreSQL.

Для більших застосунків доступне виділене обладнання DCXV від EUR 49/місяць. Підтримка інженерів 24/7 включена в кожен план. Деталі на https://dcxv.com/data-center#cloud

Інструкція з налаштування

# Встановлення Ruby 3.3 через rbenv та залежності
sudo apt update && sudo apt install -y git curl libpq-dev postgresql postgresql-contrib redis-server nginx
git clone https://github.com/rbenv/rbenv.git ~/.rbenv && echo 'eval "$(~/.rbenv/bin/rbenv init -)"' >> ~/.bashrc
~/.rbenv/bin/rbenv install 3.3.0 && ~/.rbenv/bin/rbenv global 3.3.0

# Встановлення Bundler та гемів
gem install bundler
cd /var/www/myapp && bundle install --deployment --without development test

# Компіляція ресурсів та міграція БД
RAILS_ENV=production bundle exec rails assets:precompile
RAILS_ENV=production bundle exec rails db:migrate

# Запуск Puma та Sidekiq через systemd
sudo systemctl enable puma sidekiq && sudo systemctl start puma sidekiq

Очікувана продуктивність

Rails-застосунок на інстансі DCXV з 2 ядрами / 4 ГБ у Празі:

  • Час відповіді - 50-150 мс для типових HTML-сторінок із запитами до БД. Статичні ресурси через Nginx повертаються менш ніж за 5 мс.
  • Пропускна здатність - 100-300 запитів на секунду з Puma з 2 воркерами та 5 потоками кожен.
  • Фонові завдання - Sidekiq з 10 потоками обробляє 200-500 завдань на хвилину.
  • Мережева затримка - менше 20 мс до Німеччини, Австрії, Польщі та Чехії з Праги.
Хмарний сервер для Stable Diffusion в Європі: GPU налаштування
cloudaigpu

Хмарний сервер для Stable Diffusion в Європі: GPU налаштування

Запустіть Stable Diffusion на хмарному сервері ЄС з дотриманням GDPR. Охоплює GPU, налаштування AUTOMATIC1111 і ComfyUI, зберігання моделей та орієнтири.

Хмарний сервер для Redis в Європі: малозатримкове налаштування
cloudredisdatabase

Хмарний сервер для Redis в Європі: малозатримкове налаштування

Запустіть Redis на хмарному сервері ЄС з дотриманням GDPR. Охоплює розміщення памяті, режими збереження, кластер та орієнтири затримки для Європи.

Хмарний сервер для PostgreSQL в Європі
cloudpostgresqldatabase

Хмарний сервер для PostgreSQL в Європі

Запустіть PostgreSQL на хмарному сервері в ЄС з дотриманням GDPR. Порівняйте характеристики, витрати та кроки налаштування для розміщення бази даних в Європі.

Хмарний сервер для Ollama в Європі: самохостинг ШІ
cloudaigpu

Хмарний сервер для Ollama в Європі: самохостинг ШІ

Запустіть Ollama на хмарному сервері ЄС з дотриманням GDPR. Охоплює вибір моделі, GPU, налаштування API та орієнтири продуктивності для самохостингу ШІ.

Хмарний сервер для MySQL в Європі
cloudmysqldatabase

Хмарний сервер для MySQL в Європі

Розмістіть MySQL на хмарному сервері ЄС, що відповідає GDPR. Охоплює налаштування InnoDB, реплікацію, рекомендовані характеристики та орієнтири продуктивності.