Ensure that students and teachers are able to access the
website and leave comments, chat, or message with
instant response, notifications and alerts
Ensure that annotations are preserved and not over-written or
cross-published between user groups accessing the same
Ensure background processes that are resource intensive doesn't
slow down the user response for the main website
Ensure fast delivery of video and static content
To meet the above challenges and to deliver the ideal solution for the
client we looked to the solutions offered by clustering and third party
CDNs (Content Delivery Networks).
The first task was to identify the resource intensive processes and identify
how the load could be split between the various activities. User communication
and notifications were identified as the main activity. This was followed by background
requests for downloads and bulk deletion.
The next task was to identify how the processes could be optimized to provide the best user
experience. It was necessary that third party solutions and multiple servers would have to be in
place to resolve this requirement. The solution was as follows. The main application server would
need to be clustered and managed by a load balancer to handle the peak time requests during
school hours. 8 application servers were setup to handle the peak load managed by a load balancer.
Session management was implemented through the database to ensure there is no loss of user
session by switching servers. There would be a standalone database server (with replication
implemented using a master-slave methodology) to handle all database requests. Background
processes would be handled on a stand-alone server which would be isolated from the application
servers so as not to interrupt user activities. All videos would be stored on the Vidly CDN and
Crocodoc was used for holding documents and annotation using their standard tool.