Deploying akka cluster on Clever Cloud/Heroku

100 views
Skip to first unread message

equipo...@gmail.com

unread,
Sep 20, 2016, 12:23:12 AM9/20/16
to Akka User List
Hello everyone,
Currently, the project I am working on can be divided into a web frontend that uses Play! framework and several backend nodes that are developed in Akka. The goal was to set them up on different apps/dynos, so I would be able to scale the frontend horizontally and vertically, as well as manage the backend nodes. These backend nodes have no http interface and merely do the jobs that are sent to them by the frontend and return them. I set up an akka cluster to communicate between the nodes, and also to set up ssl between them. Locally, everything worked perfectly, but when I tried to deploy on Clever Cloud, I found out that the only way they can communicate is throught HTTP on port 80, and my cluster is communicating through TCP on port 2551. I tried setting up port 80 on the remoting configuration to listen on it, but it doesn't seem to work as my app appears to be non responsive. I started reading up on what could be done, and the only solution I found was to use RabbitMQ, and, as I understand it, that would mean that I would have to give up on using akka cluster and rewire the communications and security protocols, now to be used by this message broker. I would like to know if anyone has encountered a similar situation and has found a configuration that works so I can keep using akka cluster, or if I am missing something.
Thanks in advance.
Juan CABALLERO

Johan Andrén

unread,
Sep 20, 2016, 11:20:23 AM9/20/16
to Akka User List
Hi Juan,

As far as I know (a bit dated knowledge) Heroku does not allow generic TCP communication to the nodes at all, only HTTP on a port that you get from the $PORT environment variable, which will be routed from the public address through Herokus HTTP routing infrastructure, so I'm afraid that if it is still like this it makes it impossible to run Akka Cluster on Heroku.

There seems to be something nowadays called Private Spaces nowadays which gives you a private virtual network between your nodes. If that really allows connections from any of your nodes to any other on whatever TCP port you like you will be able to run Akka Cluster in such an environment (https://devcenter.heroku.com/articles/dynos#private-spaces-runtime-networking

--
Johan
Akka Team

equipo...@gmail.com

unread,
Sep 20, 2016, 5:52:40 PM9/20/16
to Akka User List
Thank you very much for your response. I checked them out and, as you pointed out, they would work. Nonetheless they are a bit out of my price range, so I was wondering if you knew which vendors/systems are usually used to run akka clusters.
Juan CABALLERO

Justin du coeur

unread,
Sep 20, 2016, 11:09:25 PM9/20/16
to akka...@googlegroups.com
On Tue, Sep 20, 2016 at 5:52 PM, <equipo...@gmail.com> wrote:
Thank you very much for your response. I checked them out and, as you pointed out, they would work. Nonetheless they are a bit out of my price range, so I was wondering if you knew which vendors/systems are usually used to run akka clusters.

The majority that I hear about (including my own product) run on AWS... 
Reply all
Reply to author
Forward
0 new messages