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