I know this is a broad question, so please bear with me. What I want to achieve is to be able to deploy my Node.js application as smoothly and reliable as possible.
Infrastructure
The infrastructure my project uses is a Node.js frontend utilizing Express.js and Redis, producing the website's content, as well as an ngimx instance as load balancer. The Node.js backend consists of a clustered API using a ZeroMQ RPC communication layer, Redis for caching and InfluxDB for the gathering of statistical time-series data. Plus a distributed scheduling system also built with Node.js, which is running tasks based on intervals.
Goals
As I run this project alone currently and cannot invest much time (and money) in running it, I'd strive for a lightweight solution. I'd prefer to run everything in the cloud, but I have no preferences which cloud provider to use (AWS, Nodejitsu etc.). Ideally the deployment tool would support multiple providers, to be able to shift the application when necessary to another provider without hassle.
I'd like to be able to add more resources (boxes, processes etc.) on demand, for example via the command line. Auto-scaling would be ideal, for now it's not a show-stopper not to have it.
Ideally, the tools shouldn't make extensive use of other programming languages for their configuration.
References
I have looked so far at the following tools:
- Fabric (http://ift.tt/1wpn496)
- Capistrano (http://ift.tt/10hozqu)
- Roco (http://ift.tt/1m9b5fI)
- AWSBox (http://ift.tt/1aFNYPh)
but none of them seemed ideal to me for my setup.
Thanks!
Aucun commentaire:
Enregistrer un commentaire