Implementing a CI/Deployment Pipeline for a Node app
I will shortly be in the process of rewriting a node app with the intention of implementing Continuous Integration and TDD. I also want to design and set up a deployment pipeline for development, staging, and production. Currently I'm using Shipit to push changes to different instances that have pre-configured environments. I've heard about deploying Docker containers with the needed environments, and I'd like to learn more about that. I'm looking at TravisCI and for automated testing/builds, and from my understanding, one can push the Docker image to a registry after the build succeeds. I'm also learning about scaling, and looking at a design for production that incorporates Google Cloud servers/services serving 3 clustered versions of the node app, a Redis cluster, and 2 PostgreSQL nodes, which each service being behind a load balancer. I've heard of Kubernetes being used to manage and deploy containerized applications, but I'm curious on how it all fits together. In my head I think that it would seem like the process would be as follows: commit changes on dev machine - push to repository. TravisCI builds and runs tests, (what about migrations and pushing changes to the postgreSQL service?), pushes to a Google Cloud Container Registry. Log into the Google Container Engine and run the app with Kubernetes. What about the Redis Cluster? The PostgreSQL nodes? I apologize in advance if this question is lacking in clarity and knowledge, but I'm trying to learn more before I move along.
Have you considered Google Cloud Container Builder? It's very easy to set up a trigger from your Github repository, which would start a new build on changes (branch or tag). As part of the build, you can push the new image to GCR. And you could also deploy to Kubernetes as part of the same build.
A Dummy's guide Offline install of NPM Packages Windows
How to get read headers in node.js using body-parser?
horizon js can not access rethinkdb in port 28025 without --dev flag . Error : action not permitted
Nodejs - Passport - Failed to serialize user into session
How to access uploaded file from multer?
how to compare column of other table in join sequelize
Which model to put certain fields for a MongoDb schema
NodeJS: How do I enable CHACHA20_POLY1305 in https?
Change the default content of a site if the site is redirected
Is there an htmlentities like for node js?
NodeJS - Why is node reporting wrong version..?
Chrome Devtools with no internet connection
electron - process.env.npm_package* variables missing
Mongoose: only show populated results
Woocommerce API Variable Subscription Product update
Alexa Skill - Keep Intent alive for dialogue