This is for discussing how best to implement Multi-Server capability with internet Multi-Server Control Panel.
Please feel free to add/discuss anything!
To make i-MSCP multi-server capable from a customer standpoint, we can deploy many servers, but there needs to be a central login place, that can at least redirect, this can be the first "quick" step...
Step 1:
1. Central Control Panel login
2. Central Webmail login
3. Central WebFTP login
To be truly muti-server in the future, these are some functions that come to mind...
Step 2:
1. DNS Replication (more than master-> many slaves)
2. Migrate Customer Data between servers (webfiles, databases, email)
3. Isolated roles (email server, web server, database server)
Step 1 Approach:
1. Central login options (customer login only): New Central Login database is created (admin table, column for serverid). From central server, add new server and db login credentials and it updates central user table periodically (faster), or simply will try all known servers in round-robin until login is validated (slower), and redirects user to new server's control panel after authentication
or,
Central server becomes only imscp database server (or specify imscp database location), all child servers use central imscp database (chosen at install), and central db has column added to show server identifier, and after authentication, redirects to new server's control panel.
2. Central Webmail Login: Roundcube currently has plugin to choose webmail login server based on MX lookup. This is quick fix but not real function. Same options as #1 apply, but with mail_users table in db.
3. I don't know enough about ajaxplorer and multiple db logins, so probably needs the central db option.
DNS Needed: Maybe not immediate, but really need complete replication amongst many servers for DNS. There are workarounds for this, and up to 5 servers it's not really needed because of registrar allowing 5 nameserver records for a domain, but it is important functionality.
I think just having the login central is enough to really be Multi-Server functional right now. All the other features to split apart functionality, migrate, super DNS is all future wishlist.
Ideas? Comments? What way do you, would you go about these?