senecajs / seneca

A microservices toolkit for Node.js.
http://senecajs.org
MIT License
3.96k stars 313 forks source link

Running Seneca on Google Cloud Platform #525

Open CelsoSantos opened 8 years ago

CelsoSantos commented 8 years ago

Hello guys,

Before stating my questions, I've already read seneca-mesh issue #31 and a this README patch.

I've modified my code to implement the changes from the README patch.

I've been doing some testing on Openshift Enterprise, but that doesn't allow me to open a range of ports to a Pod (neither base service or any other) so the next option is GCE.

Does anyone have any experience deploying seneca microservices in there?

Also, since these will be running on Docker containers, do I need to start seneca or docker with any special flags? I've read somewhere that I should pass the --net=host flag to start the services, but I'm not sure if it should be on Docker or on Node.

Don't know if that matters, but I'm on Seneca 2.1.0 with Node.js v4.5.0

Best Regards, Celso Santos

mcdonnelldean commented 8 years ago

@CelsoSantos I've not seen any examples specifically for google cloud. I'll leave this open for a spell and see if anyone has done it before.

CelsoSantos commented 8 years ago

Thank you @mcdonnelldean . I'm guessing anyone who uses a Kubernetes-based solution should probably be able to answer my questions.

Anyhow, at my company we're building a solution for a client using Seneca and we're having a lot of doubts in which the documentation has been somewhat insufficient to answer them. We have the system pretty much built and working, but that are a few key points which have been more troublesome.

We're supposed to be deploying this in a couple weeks, it's been working fine on dev environments (local machine) but I've already founds some issues on the code and I'm guessing we'll need more than we have currently.

vigneshnrfs commented 8 years ago

I do not know about seneca-mesh... But I've used Seneca on Kubernetes with amqp-transport. So far there has not been any issues that's inherent to Seneca.

grandmore commented 7 years ago

You can use seneca-mesh on Kubernetes but you lose some of its functionality.

Because seneca-mesh connects itself together, without using the kubernetes load balancers, when you do rolling updates, for example, you lose the benefit of the role since it uses load balancers to drain the traffic from one container and move it to another.

I did a lot of testing with mesh but decided that a message queue is simpler, gives guaranteed delivery, and allows you to leverage kubernetes rolling updates etc.

dgonzalez commented 7 years ago

Actually there is a module developed: https://github.com/paolochiodi/seneca-kubernetes for using Seneca on Kubernetes in GCE or outside of it. Have a look to that module and if it is still not clear to you, send me an email and I will workout an example for you.

aabm00 commented 6 years ago

Hello

I'm considering senecaJS as a framework to work with microservices. I'm going to use Kubernetes in GKE and I want to take advantage of all the functionality that kubernetes offers.

For the @grandmore comments I can see that can be some conflicts with seneca-mesh plugin.

So what is it the best way to use SenecaJS leveraging the power of kubernetes?

@dgonzalez when you speak about the plugin seneca-kubernetes, do you mean that it's not necessary to use seneca-mesh then?

I would appreciate some example of senecaJS & kubernetes

NOTE: I have found Fuge as execution environment for developing microservices, and it has a service discovery that emulates Kubernetes.
I would like to know from people that have had experience with seneca and had tried to use it in kubernetes if this fuge-kubernetes emulator could it be a substitute for seneca-mesh and seneca-kubernetes plugins to work with kubernetes?

Thanks

rjrodger commented 6 years ago

Kubernetes on GCP is how we are running voxgig.com based on the Seneca platform. Open source examples covering mesh here: https://github.com/nodezoo/tao

rjrodger commented 6 years ago

but better docs needed!