Page 1 of 2

For developers: running #vanilla MaNGOS as docker containers

PostPosted: Wed Apr 20, 2016 10:11 am
by wowmad
I saw this post on twitter and I thought that some realm developers would be interested in...
Daniel Reichenbach wrote:Coming soon(tm), running #vanillawow based on MaNGOS as docker containers on your favorite cloud provider. #YouThinkYouDoButYouDont

https://twitter.com/marenkay/status/722726117526872064

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 10:25 am
by theluda
Current plan is to allow people to spin up realm and world servers on their own, so one container with auth, one with the world. If anyone wants to test, alpha will be available within the two weeks.

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 10:48 am
by umandez
Please don't do this, it's not going to help anything really there are plenty of repacks out there if people want to do this. We don't need 1000000 vanilla servers popping up.

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 10:51 am
by wowmad
I have some curiosity in how we can implement clusters with docker, I read the following post http://stackoverflow.com/a/29017596 and thought that maybe Kubernetes is the best option to choose.

What is your opinion about that?

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 10:52 am
by theluda
umandez wrote:We don't need 1000000 vanilla servers popping up.

Honestly, I could not care less. We already have thousands of crappy servers and everyone does their own shit.

This will be one source for running servers based on the official sources. This also means, fixes done will roll out to every server using this automatically.

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 10:57 am
by theluda
wowmad wrote:I have some curiosity in how we can implement clusters with docker

I am running a few larger Docker swarms at work, and Kubernetes is more or less overkill, unless we're talking about thousands of servers. The default Docker swarm with consul/etcd for service registration and a decent failover configuration is sufficient for this.

What I am more concerned about is that to make this work, is to resolve the hard dependency from the world server on the realm database. Unless this is resolved by proper solution, clustering/failover/etc. will not be a reality.

For now the Docker containers will just allow you to spin up both servers using Docker compose command, so you just have to edit some environment variables to start.

Running realm and world containers on different systems will come next.

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 11:32 am
by wowmad
theluda wrote: ...
What I am more concerned about is that to make this work, is to resolve the hard dependency from the world server on the realm database. Unless this is resolved by proper solution, clustering/failover/etc. will not be a reality.
...

I'm not inside the MaNGOS code, but if someone explain to me the current environment, I can try to help.

Database clusters are easy to implement (you only need the service running and replication of database folder), the problem could be more the middleware and how to handle the world server communication requirements... (I don't know what is required, so I imagine that could be complicated)

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 12:15 pm
by theluda
wowmad wrote:I'm not inside the MaNGOS code, but if someone explain to me the current environment, I can try to help.

Currently realm and world server both access realm database, so you need MySQL connection between instances. Works, but is not a good thing. Would be better to have some service as middleware for transferring sessions between realm and world server.

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 12:58 pm
by wowmad
theluda wrote: ...
Currently realm and world server both access realm database, so you need MySQL connection between instances. Works, but is not a good thing. Would be better to have some service as middleware for transferring sessions between realm and world server.

I prefer PostgreSQL because has much more features... and for a game like wow is nice to have a database that supports geographical data. I verified now, you can install "Mysql spatial extension"!
I know that MaNGOS was developed using C Programming Language (C, C++ or C#), but even if I know Java better, I can develop in any language (only take more time).

I notice that you already know that you can share a database web service to be consumed in the language you want, but I think the problem could be the MySql, with PostgreSQL you can solve much more problems inside database, while in MySql you need to go application development.

Re: For developers: running #vanilla MaNGOS as docker contai

PostPosted: Wed Apr 20, 2016 2:06 pm
by theluda
I'd say that does not really matter because MaNGOS can use Postgres too. What I was talking about was, that the communication between realm list and world server should not be done by passing values through the database at all. :-)