After weeks of reading the documentation and playing with test codes I think I’m ready to deploy it in production. However I’m having hard time figuring out the deployment scheme (I browsed through the sitemap, this forum and also github issues and can’t find any meaningful resource how to structure a production cluster).
So here is a design I’m thinking about:
- 5 servers
- 8 cores each
- 52GB ram each
- 375GB local ssd as front cache (bcache)
- 3TB SSD cache as storage
- double redundancy
What I’m struggling to understand is how to distribute the communication and how to properly setup different classes of servers.
As each FDB instance is tied up to a CPU, it also has a different port. So to expose all of them to each other, do you put a proxy in front of it? So lets say I have 8 FDBs per server starting at the port 4500, then do I put a proxy on lets say 3333 in front of them and round-robin distribute the load on the server? Or is this somehow done on the client like it’s with aerospike and couple of others. Additionally, as I have 5 servers, do I again load balance the traffic evenly between all the servers through a proxy or is this done again on a client?
I suspect that both are done one the client through the cluster file, but I’m just guessing here.
What are the best practices when deploying and managing this kind of cluster? I haven’t found any extensive provision scripts (ansible or others), so trying to figure out what’s the best way to do so, especially as the cluster is populated through the cluster file. Do you produce it manually before the deployment and then just distribute it everywhere, or?
And finally, what’s the best structure of the process class in this kind of cluster? I read the guide but still not sure what’s the best, at least initial, structure. Does it depend on the purpose of the cluster?
My primary goal right now is to use it as a cache for our micro services but would like to expand the use case later on, replacing most of our NoSQL deployments (including redis).
Any suggestions are greatly appreciated.