Реализация конвейера непрерывной интеграции/развертывания для приложения Node.

Вскоре я буду переписывать приложение узла с намерением реализовать непрерывную интеграцию и TDD.

Я также хочу спроектировать и настроить конвейер развертывания для разработки, подготовки и производства.

В настоящее время я использую Shipit для отправки изменений в разные экземпляры с предварительно настроенными средами. Я слышал о развертывании контейнеров Docker с необходимыми средами и хотел бы узнать об этом больше.

Я смотрю на TravisCI и на автоматизированное тестирование/сборку, и, насколько я понимаю, образ Docker можно отправить в реестр после успешной сборки.

Я также изучаю масштабирование и рассматриваю проект для производства, который включает серверы/службы Google Cloud, обслуживающие 3 кластерные версии приложения узла, кластер Redis и 2 узла PostgreSQL, каждый из которых находится за балансировщиком нагрузки.

Я слышал, что Kubernetes используется для управления контейнерными приложениями и их развертывания, но мне любопытно, как все это сочетается друг с другом.

В моей голове я думаю, что, казалось бы, процесс будет следующим:

  1. зафиксировать изменения на машине разработчика — отправить в репозиторий.
  2. TravisCI создает и запускает тесты (как насчет миграции и отправки изменений в службу postgreSQL?), отправляет в реестр Google Cloud Container Registry.
  3. Войдите в Google Container Engine и запустите приложение с помощью Kubernetes.
  4. Как насчет кластера Redis? Узлы PostgreSQL?

Заранее извиняюсь, если этому вопросу не хватает ясности и знаний, но я пытаюсь узнать больше, прежде чем двигаться дальше.


person Sean Gregory    schedule 11.05.2017    source источник


Ответы (1)


Рассматривали ли вы Google Cloud Container Builder? Очень легко настроить триггер из вашего репозитория Github. , который запускал бы новую сборку при изменениях (ветви или теге).

В рамках сборки вы можете отправить новый образ в GCR.

Вы также можете развернуть в Kubernetes в рамках той же сборки.

person Philmod    schedule 11.05.2017
comment
Спасибо за предложение! Я не смотрел в это, но я буду сейчас! Мне все еще интересно, как развернуть изменения базы данных как часть сборки. - person Sean Gregory; 11.05.2017
comment
Вы говорите об изменении схемы базы данных? Я бы не рекомендовал автоматически развертывать изменения рабочей базы данных с помощью сборки. - person Philmod; 12.05.2017