Еуропада Ruby on Rails үшін бұлттық сервер

Еуропада Ruby on Rails үшін бұлттық сервер

Еуропада Ruby on Rails үшін бұлттық сервер

Ruby on Rails толыққанды қолданбалар жасауға арналған ең өнімді веб-фреймворктердің бірі болып қалды. Оның "конфигурацияның орнына келісім" тәсілі шағын командаларға жылдам шығаруға мүмкіндік береді. Бірақ Rails нақты серверді талап етеді: сұраулармен, фондық міндеттермен және ассеттерді құрастырумен жұмыс істейтін, дұрыс таңдалған, үздіксіз істейтін машина. Еуропалық қолданушылар үшін жұмыс істейтін командаларға бұл серверді Еуропада ұстау керек.

ЕО-дағы хостинг Ruby on Rails үшін неге маңызды

Rails қолданбалары табиғаты бойынша толық функциялы. Олар HTML береді, аутентификацияны өңдейді, төлемдер жүргізеді, хат жібереді және жиі файл жүктеуді басқарады. Бұл операциялардың әрқайсысы қолданушыларыңыздың дербес деректеріне тиеді. GDPR бойынша мұндай деректер, оның резиденттеріне қызмет көрсетсеңіз, ЕО ішіндегі инфрақұрылымда өңделуі керек.

Желі кешігуі Rails үшін айрықша маңызды, себебі оның сұрауды өңдеу циклі әдепкіде синхронды. Rails қолданбасы HTML-ды серверде рендерлейді, сондықтан қолданушы сигналдың өту уақытының әрбір миллисекундын сезінеді. Прагадағы хостинг Батыс және Орталық Еуропаның көп бөлігіне дейін 5-20 мс береді, ал АҚШ серверінен бұл 100-150 мс.

Sidekiq арқылы фондық міндеттер де ЕО-да орналасудан ұтады. Міндеттер транзакциялық хат жіберсе, вебхуктарды өңдесе немесе ЕО-дағы сыртқы сервистермен синхрондалса, барлығының бір өңірде болуы бұл операциялар үшін де кешігуді азайтады.

Серверге қойылатын ең аз талаптар

Rails жеңіл фреймворктерден талапшыл. Әсіресе Propshaft немесе Sprockets арқылы ассеттерді құрастыру талап қояды.

  • RAM - Puma мен Rails қолданбасының жұмысына кемінде 2 ГБ. Тек rails assets:precompile арқылы ассеттерді құрастыру 1,5-2 ГБ-қа шарықтауы мүмкін, сондықтан ассеттер серверде жиналатын продакшенге 4 ГБ қатты ұсынылады.
  • CPU - кемінде 2 ядро. Puma-ның көп ағынды моделі процессордың нақты параллелизмінен ұтады. Трафигі орташа қолданбаларға 4 ядро таптырмайды.
  • Диск - кемінде 20 ГБ. PostgreSQL деректері, жүктелген файлдар (жергілікті сақталса), журналдар және Ruby гемдерінің кеші жинақталады. Дерекқордың қолайлы өнімділігі үшін SSD қажет.
  • Ruby - 3.2 нұсқасы немесе жаңасы. Ruby 3.3 3.1-мен салыстырғанда байқалатын өнімділік өсімін береді.
  • Bundler - гем тәуелділіктерін сенімді басқару үшін 2.4 нұсқасы немесе жаңасы.
  • PostgreSQL - 15 нұсқасы немесе жаңасы. Rails-тегі Active Record продакшенде PostgreSQL-мен ең жақсы жұмыс істейді.

DCXV-тің ұсынылатын конфигурациясы

DCXV бұлттық VPS тарифтері айына EUR 15-тен басталады. Трафигі жеңіл шағын Rails қолданбасы үшін бастапқы тариф ең азын жабады. Фондық міндеттері және дерекқоры бар нақты продакшен үшін тиімді бастау нүктесі - 2 ядро / 4 ГБ RAM тарифі.

Sidekiq-пен Rails екі процесс ұстайды: Puma (веб-сервер) және Sidekiq (фондық міндеттер). Әрқайсысына қор керек. 4 ГБ RAM-да Puma-ны 2-3 воркермен, Sidekiq-ті 5-10 ағынмен іске қосып, сол серверде PostgreSQL жұмыс істесе оған да орын қалдыруға болады.

Ірілеу қолданбаларға немесе өсуге дайындалғандарға айына EUR 49-дан басталатын DCXV бөлінген жабдығы көршілермен бәсекесіз оқшауланған процессор мен жады береді. Чехия мен Португалиядағы дата-орталықтар Орталық Еуропаға тамаша байланыспен қызмет көрсетеді. Тәулік бойғы инженер қолдауы әр тарифке кіреді. sales@dcxv.com адресіне жазыңыз немесе конфигурацияларды https://dcxv.com/data-center#cloud бетінде қараңыз

Реттеу нұсқаулығы

Rails қолданбасын Ubuntu 22.04-те Puma, PostgreSQL және Sidekiq-пен орналастыру.

# 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-ны systemd арқылы іске қосу (/etc/systemd/system/puma.service жасаңыз)
sudo systemctl enable puma && sudo systemctl start puma

# Sidekiq-ті systemd арқылы іске қосу (/etc/systemd/system/sidekiq.service жасаңыз)
sudo systemctl enable sidekiq && sudo systemctl start sidekiq

Күтілетін өнімділік

Прагадағы 2 ядро / 4 ГБ инстансында, Puma мен PostgreSQL бір машинада тұрған Rails қолданбасы:

  • Жауап беру уақыты - дерекқорға сұраулары бар әдеттегі HTML бет рендері үшін 50-150 мс. Nginx арқылы статикалық ассеттер 5 мс-тен аз уақытта қайтады.
  • Өткізу қабілеті - Puma-да әрқайсысы 5 ағынды 2 воркер болғанда дерекқорға жүгінетін беттер үшін секундына 100-300 сұрау.
  • Фондық міндеттер - 10 ағынды Sidekiq міндет күрделілігіне қарай минутына 200-500 тапсырма өңдейді.
  • Желі кешігуі - Прагадан Германияға, Австрияға, Польшаға және Чехияға дейін 20 мс-тен аз.
  • Ассеттерді құрастыру - орташа Rails жобасы 2 ядрода ассеттерді 60-120 секундта жинайды.

Продакшендегі Rails-ті жеңіл деп айта алмайсың, бірақ ол жақсы зерттелген және сенімді. ЕО дата-орталығында сервер дұрыс реттелгенде сіз тұрақты өнімділік және еуропалық қолданушыларыңыз күтетін сәйкестік деңгейін аласыз.

Бұл өз зертханамыздағы өлшеу емес, осы сыныптағы жабдыққа арналған күтілім. Оларды өлшемді есептеудің бастау нүктесі деп санаңыз және өз жүктемеңізді өлшеңіз: нақты сандар провайдерден гөрі сіздің деректеріңізге, сұрауларыңызға және баптауыңызға әлдеқайда қатты байланысты.

Жаңа бұлттық серверге SSH арқылы қалай қосылу керек
sshtutorialcloud

Жаңа бұлттық серверге SSH арқылы қалай қосылу керек

Сервер дайын, ал панельде IP, логин және құпиясөз бар. Міне, SSH арқылы алғашқы қосылу, ең жиі кездесетін төрт қате және алғашқы он минут.

Windows серверіне қашықтағы жұмыс үстелі арқылы қалай қосылу керек
rdpwindowstutorialcloud

Windows серверіне қашықтағы жұмыс үстелі арқылы қалай қосылу керек

Сізде мекенжай, пайдаланушы аты және құпиясөз бар. Оларды өз экраныңыздағы Windows жұмыс үстеліне қалай айналдыруға болады - ПК, Mac немесе телефоннан, қадам-қадаммен.

Еуропадағы Stable Diffusion үшін бұлт сервері: GPU баптау
cloudaigpu

Еуропадағы Stable Diffusion үшін бұлт сервері: GPU баптау

Stable Diffusion-ге қандай GPU жабдығы қажет, ең танымал екі интерфейсті қалай көтеру керек және ЕО ішінде сурет жасаудың қандай жылдамдығын күтуге болады.

Еуропада LLM хостингіне арналған бұлт сервері: AI және GDPR нұсқаулығы
cloudaigpu

Еуропада LLM хостингіне арналған бұлт сервері: AI және GDPR нұсқаулығы

LLM-ді продакшенде хостингілеуге қандай жабдық қажет, модель өлшемі мен кванттау деңгейін қалай таңдау керек және ЕО бұлтында қандай қызмет көрсету фреймворктары жақсы жұмыс істейді.

Claude Code, Codex және Grok CLI-ды өз бұлттық серверіңізде іске қосыңыз
cloudaivps

Claude Code, Codex және Grok CLI-ды өз бұлттық серверіңізде іске қосыңыз

Debian немесе Ubuntu бұлттық серверін Claude Code, Codex және Grok CLI сияқты жасанды зерде агенттеріне арналған құм жәшігіне айналдырыңыз. Кез келген жерден, тіпті телефоннан код жазыңыз.