Развертывание Nodejs приложения на DotCloud

    Интро

    Dotcloud — это это облачная платформа для развертывания приложений. Стек на DotCloud включает в себя более 10 различных сервисов среди которых есть и Node.JS.

    Мои первые впечатления от DotCloud были весьма положительные. Можно практически забыть о том как развертывать приложение и полностью сосредоточится на коде. Работа по развертыванию сводится к установке DotCloud CLI и настройке файла окружения dotcloud.yml. Установка клиента под Linux/MacOS тривиальна:
    sudo easy_install pip && sudo pip install dotcloud

    Подготовка к развертыванию

    Для развертывания приложения на Dotcloud необходим файл dotcloud.yml, который описывает сервисы к которым приложение будет иметь доступ. Полный список приложений можно посмотреть по ссылке. Для доступа к стеку Node.JS + Redis файл dotcloud.yml может иметь следующий вид:
    www:
     type: nodejs

    data:
     type: redis

    Если приложение на Node.JS использует дополнительные пакеты, то можно использовать файл package.json, в котором указать зависимости от других пакетов. Пакеты будут автоматически установлены при развертывании. Пример файла package.json:
    {
     "engines": {
      "node": ">=v0.4.5"
     },
     "dependencies": {
      "redis": ">=0.6.6",
      "express": ">=2.4.2"
     }
    }

    Для автоматического запуска приложений на Node.JS необходимо создать третий файл с названием supervisord.conf и указать в нем путь запуска
    [program:node]
    command = node index.js
    directory = /home/dotcloud/current


    Использование environment.json

    Получить доступ к стеку сервисов которые были указаны в файле dotcloud.yml очень просто. После развертывания приложения к домашней директории создается файл environment.json, содержащий информацию для доступа к сервисам. Используя этот файл можно настроить приложение для автоматического использования настроек к базам данных не заботясь о ручной настройке. Поскольку я указал Redis в качестве базы данных в файле dotcloud.yml и назвал его data, то для получения настроек к Redis из приложения на Node.JS достаточно написать:
    var envfilepath = '/home/dotcloud/environment.json',
      environment = JSON.parse(require('fs').readFileSync(envfilepath));

    var host = environment['DOTCLOUD_DATA_REDIS_HOST'],
      port = environment['DOTCLOUD_DATA_REDIS_PORT'],
      pass = environment['DOTCLOUD_DATA_REDIS_PASSWORD'];

    Развертывание

    Для создания приложения на Dotcloud необходимо написать в консоле:
    dotcloud create appname
    (appname — в данном случае имя приложения, которое может быть любым)
    Ну и непосредственно пуш приложения на Dotcloud
    dotcloud push appname ~/path-to-node-app/
    При успешном деплое выдадут www адрес для доступа к приложению
    Deployment finished successfully. Your application is available at the following URLs
    www: d07c100d.dotcloud.com

    Что еще можно сделать

    Использование собственного доменного имени.
    Для этого надо прописать DNS запись CNAME gateway.dotcloud.com. для соответствующего домена. И добавить алиас к своему приложению на Dotcloud:
    dotcloud alias add appname.www www.example.com
    Также можно подключится по SSH
    dotcloud ssh appname.www

    Полный список команд можно получить в подробной документации на официальном сайте

    Похожие публикации

    Средняя зарплата в IT

    113 000 ₽/мес.
    Средняя зарплата по всем IT-специализациям на основании 5 381 анкеты, за 2-ое пол. 2020 года Узнать свою зарплату
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 1

      +1
      Вообще dotCloud очень радует, там куча стеков, при чем все что я пробывал (redis, mongodb, nodejs, ruby) — все работает «из коробки» и очень удобно. Немного лихорадит их CLI — натыкался на пару багов, но ребята их фиксят довольно оперативно. Не хватает нормально dashboard'а сервисов, которые у них развернуты и политика ценообразования абсолютно не гибкая. Но мне пока нравится, для dev проектов самое оно — когда не хочется тратить уйму времени на развертывание всего стека.

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое