node.js


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.

Related Links

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

Categories

HOME
node.js
audio
gnuplot
parsing
slickgrid
openerp
jupyter-notebook
asp-classic
unity5
cordova-plugins
pstricks
autofixture
postgis
delaunay
datepicker
strongloop
photon
libreoffice-base
codecvt
video.js
clang-format
firebase-cloud-messaging
mdm
fork
silex
coap
structured-data
u2
measurement
pgadmin
multiple-domains
easymock
android-debug
umbraco-mvc
bootstrapping
gobject
caliburn.micro
lighttable
audiounit
o365rwsclient
measurement-studio
erpnext
webpack-style-loader
schemaless
ms-project-server-2013
twebbrowser
spoon
correspondence-analysis
xlconnect
archiving
reducers
django-class-based-views
cts
stage3d
scrapyd
integer-overflow
argo
wx
template-strings
sql-server-2008-express
nstablecolumn
acronym
dotdotdot
ekeventstore
puphpet
iec61131-3
vtune
option
restriction
numpad
impactjs
linq-to-lucene
declarative-services
updatemodel
countries
icommand
tandem
apprequests
jsonexception
visual-assist-x
addr2line
struts-config
ubuntu-9.10
silverlight-embedded
test-environments
alasset
language-theory
remote-administration

Resources

Encrypt Message



code
soft
python
ios
c
html
jquery
cloud
mobile