Каковы основы развертывания / создания / создания веб-приложения? - PullRequest
2 голосов
/ 08 декабря 2011

Сейчас я довольно доволен производством веб-приложений. Я использую стек NodeJs на серверной части, и обычно у меня довольно много Javascript на клиентской части. Где мне действительно не хватает понимания, так это процесс развертывания.

Каков типичный процесс развертывания?

Из того, что я почерпнул в своем чтении, процесс развертывания / сборки может включать несколько задач:

  • Проходит через Юнит-тест Комплекты
  • Объединение скриптов и файлов CSS
  • Нумерация версий Ваше приложение
  • Модуль трассировки Зависимости (node_modules)
  • Передача в удаленное хранилище (GitHub)
  • Указание серверам staging отключить последнюю версию репо
  • Указание серверу ' production ' завершить работу с самым последним репо


Это все оставило меня немного ошеломленным. Я не знаю, должен ли я вдаваться в этот уровень детализации для своих собственных проектов, это кажется большой работой! Я использую Sublime Text 2 IDE, и похоже, что Процесс создания сценария , это подходит? Как координировать все эти отдельные задачи? В идеале я представляю, что все они будут запускаться одним щелчком мыши.

Извините, так много вопросов, но мне нужно знать, как люди узнали подобные принципы. Некоторые из моих требований могут быть специфичны для NodeJS, но я уверен, что процессы одинаковы, независимо от того, какой выбор стека вы разрабатываете.

Ответы [ 3 ]

2 голосов
/ 08 декабря 2011

Во-первых, давайте разделим работу на две части: интерфейс и фон . Для обоих вам действительно нужна какая-то булидная система, но их цели и возможности сильно различаются.

Для интерфейса вы хотите, чтобы ваш источник был как можно меньше; объединить / минимизировать JavaScript, CSS и изображения. Мой коллега написал «компилятор», Assetgraph , чтобы сделать это для вас. У него немного просачивающаяся кривая обучения, но он творит чудеса для вашего кода (наши сборки dev обычно составляют ~ 20 мегабайт, производство ~ 500 k ).

Что касается серверной части , вы хотите содержать какие-то легко управляемые пакеты какого-то рода. Мы перепаковываем наши вещи в пакеты debian. Пока make-файл подключен правильно, вы получаете много скучных вещей во время сборки и развертывания бесплатно. Вот мой (до NPM 1.0) Дебианизирующий нод программы . Я видел другие способы сделать это в NPM и на Github, но я не изучал их, поэтому я не могу говорить об их качестве.

Для тестирования / разбивки / развертывания мы используем довольно запутанную комбинацию пакетов-архивов Debian, перехватчиков git, серверов Jenkins и чего-то еще. Хотя я настоятельно рекомендую использовать встроенный менеджер пакетов для развертывания, это может быть слишком много. В общем, мы обычно разворачиваем этапы либо автоматически (на каждом git push), либо полуавтоматически для нестабильных кодовых баз. Развертывание производства всегда выполняется в явном виде.

2 голосов
/ 12 декабря 2011

Для активов я использую asereje https://github.com/masylum/asereje

Недавно я задокументировал процесс развертывания nodejs в блоге: http://pau.calepin.co/how-to-deploy-a-nodejs-application-with-monit-nginx-and-bouncy.html

1 голос
/ 08 декабря 2011

Скрипт сборки действительно звучит как хорошая идея.

Что должен делать этот скрипт компоновки?

  • убедитесь, что все тесты пройдены, иначе немедленно завершите работу
  • объединить ваши javascript и css файлы в один файл js / css и минимизировать их также
  • увеличить номер версии (если вы не решите установить это вручную)
  • отправить в удаленный репозиторий(который инструктирует промежуточные и производственные серверы через git hook )

Это как минимум мое мнение.

Другие ресурсы:

http://howtonode.org/deploying-node-with-sparkhttp://howtonode.org/deploying-node-upstart-monithttp://dailyjs.com/2010/03/15/hosting-nodejs-apps/ Как развернуть зависимости приложения узла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...