Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XcodeServerProxy (proxy, load balancer) #123

Open
czechboy0 opened this issue Oct 15, 2015 · 4 comments
Open

XcodeServerProxy (proxy, load balancer) #123

czechboy0 opened this issue Oct 15, 2015 · 4 comments

Comments

@czechboy0
Copy link
Member

In order to support buildasaurs/Buildasaur#180, we need to add a new object, XcodeServerProxy, which will look like a plain old Xcode Server on the outside, however on the inside it will talk to multiple real Xcode Servers, distribute work between them and when e.g. asked for Bots, will gather Bots from all real instances (and keep an internal map of which Bot lives on which instance).

This will get complicated, but is another step in powering awesome usecases which devs are coming up with - in this case, having a farm of Xcode Servers and distributing work between them.

All feedback is welcome, because I've never done anything like this. Should be fun.

(Note: this will require heavy tests to be written probably before we start implementing it to be able to lock down the behavior).

@cojoj
Copy link
Contributor

cojoj commented Oct 16, 2015

Form a quick look into this idea I can think of some thoughts...

  • Syncing data between instances (Info about bots etc.)
  • Handling user permissions
  • Firing integrations and checking if instances are free

The problem is that it's probably not possible to run multiple instances of Server.app at one machine, right?
And yeah, writing this with TDD approach can be very helpful and also can really improve the quality of written code.

@czechboy0
Copy link
Member Author

Yeah we're talking multiple machines, each with a separate Xcode Server running on it. The SDK would have a Proxy object in memory, which knows about all the slave Xcode Servers. It would also keep a mapping to remember where each Bot/Integration lives, so that it doesn't have to refetch from all whenever we want to send a command to one Bot (living on one particular instance).

From quickly thinking about this, I don't see any major reason why this won't work, but it will be a good piece of effort, no question. However, I believe it could be very valuable (at least to Buildasaur, hopefully to more projects out there).

@tychop
Copy link

tychop commented May 10, 2017

What's the status of this load balancing feature?
Has it been implemented?

@cojoj
Copy link
Contributor

cojoj commented May 15, 2017

@tychop unfortunately not. So far it was just planned and started being discussed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants