Skip to content

Хостинг node.js на Duostack

14/02/2011

В полку node.js-хостингов опять пополнение. В бой вступают свежие силы в лице Duostack и Nodester. Сегодня мы посмотрим поближе на первого кандидата🙂

Как и многие другие node-хостинги, Duostack пока находится в режиме бета-тестирования. Доступ можно попросить на главной странице проекта, ключи высылаются сериями. Ждать вряд ли придётся долго.

Установка и настройка софта

Для работы с Duostack, как и с Heroku, необходим Ruby. Софт для работы с хостингом устанавливается как ruby gem:

gem install duostack

Либо можно поставить из npm:

npm install duostack

При установке из npm Руби всё равно понадобится. Как вариант, если у Вас не установлены ни gems, ни npm, поставить duostack можно такой командой:

curl -o /tmp/ds.tgz http://www.duostack.com/duostack-client.latest.tgz && sudo tar xfC /tmp/ds.tgz /usr/local/bin/

Когда duostack будет установлен, надо запустить его с любой командой, требующей наличие аккаунта (list, create):0

duostack list

Вам предложат ввести Ваш email и пароль, с которыми Вы регистрировались на Duostack. После этого можно приступать к созданию приложения. Для этого в в директории уже должен быть репозиторий git. Если нет, создаём его командой git init. Создаём приложение на серверах DuoStack:

duostack create appname

Вместо appname подставьте имя Вашего приложения. В git-репозиторий будет добавлен удалённый источник duostack. Чтобы отправить туда свои файлы из ветки master сделайте:

git push duostack master

После этого Duostack сообщит что принял содержимое для деплоя и, если всё прошло успешно — адрес, по которому доступно приложение (appname.duostack.com).

Версии node.js и особенности запуска

Duostack даёт на выбор две версии node, под которыми можно запускать Ваше приложение. По умолчанию используется версия 0.2.5, но можно перейти на 0.4.0 командой duostack config:

duostack config stack node-0.4.0

В отличие от heroku или Joyent, в Duostack необязательно явно получать порт из переменных окружения. Duostack сам перехватит вызов listen() и подставит туда нужный порт. Из того следует правило: для одного приложения — один вызов listen().

Для контроля зависимостей Duostack использует npm. При получении содержимого для деплоя он будет искать в корне файл package.json стандартного для npm формата, откуда и возьмёт информацию о зависимостях. Если Вам нужен какой то особый модуль, прописывайте его туда:

{
  "name": "appname",
  "version": "0.0.0",
  "repository": {},
  "directories": {
    "lib": ""
  },
  "engines": {
    "node": "*"
  },
  "dependencies": {
    // сюда вписываются зависимости, например если Вам нужна последняя версия Express:
    // "express": "*"
  }
  // при желании сюда можно добавить дополнительный ключ "devDependencies"
}

Если у Вас установлен npm, создать файл package.json в текущей директории можно командой npm init.

Базы данных

Сразу после создания приложения Вам будут доступны два хранилища: MySQL и MongoDB. Подключиться к ним очень просто: достаточно получить строку с данными подключения из переменной окружения:

var mysql_connect_string = process.env['DUOSTACK_DB_MYSQL'];
var mongo_connect_string = process.env['DUOSTACK_DB_MONGODB'];

В node.js эту строку можно разбить на компоненты с помощью url.parse():

var parseUrl = require('url').parse;
var components = parseUrl(process.env['DUOSTACK_DB_MYSQL']);
// {
//   href: 'mysql://login1212:password12345@10.10.10.10:3306/testdatabase',
//   protocol: 'mysql:',
//   slashes: true,
//   host: 'login1212:password12345@10.10.10.10:3306',
//   auth: 'login1212:password12345',
//   port: '3306',
//   hostname: '10.10.10.10',
//   pathname: '/testdatabase'
// }

Кроме этого всем Вашим запущенным серверам доступно общее дисковое пространство, примонтированное в директорию mnt/ внутри папки Вашего приложения (это не то же самое что /mnt). Эта директория специально предназначена для записи логов, общих промежуточных данных и т.д. Доступное место ограничено 100 мегабайтами.

По поводу установки других хранилищ Вам необходимо обращаться в поддержку Duostack.

Заключение

Duostack — довольно неплохой выбор хостинга. В плюсах: разные версии node.js, доступные прямо из коробки MySQL и MongoDB, общее дисковое пространство, прозрачное переписывание listen(), позволяющее иногда размещать код вообще без каких либо модификаций, поддержка npm. Из минусов могу отметить разве что необходимость иметь установленный Ruby для работы приложения.

Ссылки по теме

From → Uncategorized

2 комментария
  1. Ну вот начали хостинги появляться очень даже интересные. А я вот только недавно купон получил на joyent🙂

    • Здесь купоны получать не надо — только зарегистрироваться и дождаться приглашения🙂 А вообще я стараюсь получить доступ на все появляющиеся хостинги — надо же их сравнить🙂

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: