Skip to content
This repository has been archived by the owner on Aug 18, 2020. It is now read-only.

Make Director more scalable #13

Open
ezwang opened this issue Jun 9, 2017 · 1 comment
Open

Make Director more scalable #13

ezwang opened this issue Jun 9, 2017 · 1 comment
Milestone

Comments

@ezwang
Copy link
Member

ezwang commented Jun 9, 2017

Make the interface separate from the server, and change it so that there can be multiple servers.

There could be one server that serves the Director user interface. There could be a collection of servers that serve websites, and are Nginx reverse proxied through the main server. Redis could be used for communication between the user interface and the web servers, and each server could have an agent that is responsible for restarting Nginx / supervisor / PHP-FPM. The servers could have a shared filesystem through NFS.

The option for multiple PostgreSQL or MySQL servers could be added if the need arises. The conductor agent could also be modified to communicate with multiple VM servers.

@ezwang ezwang added this to the Future milestone Jun 9, 2017
@ezwang
Copy link
Member Author

ezwang commented Aug 21, 2017

  • A model for site hosts has been added, but this has not been implemented.
  • The option to add multiple database hosts has been added.
  • A model for virtual machine hosts has been added, but has not been implemented (Rewrite VM management system #38).

Since NFS is being used to serve /web, the file system across Director instances should be synchronized. The only issue is the Nginx/Supervisor/PHP-FPM configurations, which will have to be created and run on the Director instance that is serving the site.

One method to implementing this could be to use a decorator to identify methods that need to be run on a particular host, and then have the decorator redirect the action to the appropriate host if the current host is not the correct one.

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

No branches or pull requests

1 participant