Confirmed users
971
edits
No edit summary |
|||
| Line 26: | Line 26: | ||
=== Zeus === | === Zeus === | ||
==== Description ==== | |||
Zeus is the SSL frontend and the load balancer. Ideally Zeus will be able to look at the web service URLs from Firefox Home and based on some value in the request, send the request to the right Web Server. | Zeus is the SSL frontend and the load balancer. Ideally Zeus will be able to look at the web service URLs from Firefox Home and based on some value in the request, send the request to the right Web Server. | ||
| Line 33: | Line 35: | ||
=== Web Server === | === Web Server === | ||
==== Description ==== | |||
The Web Server also periodically pushes sync requests to the Sync Queue. For example every 15 minutes. | The Web Server runs the Firefox Home web application. It serves both static content and JSON web services. The site will be very HTML5/JS based, but in a later version we probably also want to serve more static HTML4. | ||
The Web Server also periodically pushes sync requests to the Sync Queue. For example every 15 minutes. It will simply iterate over the sync accounts and based on the status of that account it will push a work request in the sync queue. This can be optimized by syncing less frequently used accounts less often. Or even skip accounts that have been created but not used in a while. | |||
Ideally web servers do not do this kind of work but I think that a simple cron job to queue messages will not cause a major load on these systems. If it does, or when there is a need for more periodic tasks, then we can move those to an extra machine. | Ideally web servers do not do this kind of work but I think that a simple cron job to queue messages will not cause a major load on these systems. If it does, or when there is a need for more periodic tasks, then we can move those to an extra machine. | ||
Each Web Server has a database dedicated to it. The Web Server talks directly to this database. It will need to do real queries. It will of course try to cache as much as it can in for example memcache. | Each Web Server has a database dedicated to it. The Web Server talks directly to this database. It will need to do real queries. It will of course try to cache as much as it can in for example memcache. | ||
==== Software Requirements ==== | |||
The web application will be written in Python. Currently the prototype is a Pyramid/SQLAlchemy type application. Ideally it is hosted on the same kind of platform that Services uses or at least something they approve. | |||
==== Performance Concerns ==== | |||
This application differs from the sync services that it will actually need to run real queries and searches on people's sync data. This will be a very different load/usage pattern. | This application differs from the sync services that it will actually need to run real queries and searches on people's sync data. This will be a very different load/usage pattern. | ||