Непрерывное развертывание для Node.js Существует ли стандарт?

Мне нужно научиться автоматически развертывать приложения nodejs (стек MEAN). Впрочем, со всеми этими вещами...

  • Глоток,
  • Мокко,
  • вебпак,
  • просматривать,
  • Требовать,
  • План полета,
  • Дженкинс,
  • СемафорCI...

Я действительно смущен. Каков стандартный способ сделать это?


person Grateful    schedule 24.09.2016    source источник
comment
Это невероятно широкий вопрос (есть миллион возможных ответов), и я не знаю, как будет сформирован ответ, который не будет в основном мнением о лучшем пути - и то, и другое, вероятно, делает этот вопрос не по теме. для переполнения стека.   -  person jfriend00    schedule 24.09.2016
comment
Это можно сказать практически о любой технологии, особенно учитывая период, через который она проходит... так что да, я с вами согласен. Однако то, что я ищу здесь, это то, что в настоящее время очень популярно среди разработчиков и, возможно, что-то, к чему все быстро движется... например, веб-пакет.... Надеюсь, теперь вы понимаете, что я имею в виду.   -  person Grateful    schedule 24.09.2016
comment
Итак... у вас есть предложения? :)   -  person Grateful    schedule 24.09.2016
comment
Пожалуйста, прочтите stackoverflow.com/help/on-topic, конкретный пункт № 4. Я не устанавливаю здесь правила, я просто пытаюсь их донести. Нет стандартного способа сделать то, что вы просили. Вместо этого есть миллион способов сделать это.   -  person jfriend00    schedule 24.09.2016
comment
+1 @jfriend00 также здесь есть смесь разных концепций, развертывание cont - это не то же самое, что интеграция cont или объединение (и ни одна из этих трех вещей не должна быть связана), node.js, angular и mongodb развертываются по-разному, развертывание в основном зависит от службы, на которую вы развертываете (AWS, heroku, ваш сервер и т. д.). Вам следует искать примеры стека MEAN или учебные пособия, это не тот вопрос, который может дать полезный материал для других читателей.   -  person Benja    schedule 24.09.2016
comment
@Benja - Хороший вопрос. Еще одно объяснение того, насколько этот вопрос слишком широк и неспецифичен для переполнения стека.   -  person jfriend00    schedule 24.09.2016
comment
@ Бенджа О, вау ... Большое тебе спасибо за это. Я хотел бы услышать больше об этом от вас. Например, какие инструменты рекомендуются для непрерывного развертывания, непрерывной интеграции и объединения. Если нет, не могли бы вы указать мне на ресурс? Действительно ценится.   -  person Grateful    schedule 24.09.2016
comment
@Grateful - вы, кажется, не понимаете, что этот вопрос не по теме переполнения стека и должен быть закрыт. Пожалуйста, пересмотрите правила публикации и сформируйте новый вопрос, соответствующий правилам.   -  person jfriend00    schedule 24.09.2016
comment
@jfriend00 Еще раз, спасибо. Итак, давайте будем политкорректны и перейдем в другое пространство... где я могу задать тот же вопрос. Это нормально для вас?   -  person Grateful    schedule 24.09.2016


Ответы (2)


это JS, приятель, стандартного способа нет :)

Чтобы развернуть приложение NodeJS, вам на самом деле не нужно многого, например, если вы развертываете его в Heroku, просто получите коммит из созданной вами ветки, а затем просто запустите npm install и все, что вы написали в конфигурации.

С Angular это сложнее, вам обычно нужно связать его, скомпилировать LESS и проделать другие трюки.

В результате я бы предложил использовать какой-нибудь генератор MEAN, например yeoman https://github.com/angular-fullstack/generator-angular-fullstack, чтобы понять, как это может работать и, возможно, вы сможете использовать что-то подобное в своем собственном проекте.

person Traveler    schedule 24.09.2016
comment
Я слышал, что йомен хорош, когда вы хотите быстро раскрутить много проектов. Однако я ищу что-то, что позволит мне легко перейти от кода к автоматической минимизации, сборке, тестированию и развертыванию. Какой самый популярный способ сделать это в javascript? - person Grateful; 24.09.2016

Автоматизируйте настройку системы/сервера с помощью Ansible

Я думаю, вам следует взглянуть на Ansible.

Ansible — это чрезвычайно простая платформа автоматизации ИТ, которая упрощает развертывание ваших приложений и систем. Ознакомьтесь с репозиторием github< /а>

Ansible — это простой безагентный инструмент, работающий только на ssh.

Он состоит из набора ролей, которые могут быть включены в определение хоста. Роль, в свою очередь, состоит из задач

Простая задача выглядит следующим образом:

//Download  and unpacking node js 
name: Download and unpack nodejs
unarchive: src={{nodejs_tarball_url}} dest={{nodejs_path}} copy=no

//Installing node-gyp on system 
name: Install node-gyp
npm: name=node-gyp global=yes executable={{nodejs_bin_path}}/npm state=present

// More task as per need for e.g setting up mongodb, setting redis etc. 

Ознакомьтесь с некоторыми примерами, чтобы избавиться от этого.

Задачи перед развертыванием

Для задач перед развертыванием, таких как запуск тестового примера, объединение, минимизация и т. д., интегрируйте некоторые средства запуска задач javascript, такие как Grunt

Непрерывная интеграция и непрерывное развертывание

  1. Обвести Ci
  2. Дженкинс
person RootHacker    schedule 24.09.2016
comment
По-видимому, ansible рекомендуется для простого развертывания... однако, когда вам нужно также собрать, протестировать и т. д.... другие инструменты могут быть лучше. Итак, это возвращает меня к моему первоначальному вопросу... - person Grateful; 24.09.2016
comment
В этом случае вы можете интегрировать grunt или gulp в свое приложение для запуска задачи перед развертыванием, например, запуск тестового примера, минимизация и т. д. - person RootHacker; 24.09.2016