Here is a small example of one the things you can do with cubicweb's scalable architecture when serving a large number of users.
Obviously you can easily add machines hosting CubicWeb to the middle bit to scale up. Adding multiple postgres servers is possible but more tricky. In a later blog I will also show a way of split CubicWeb servers onto multiple servers (separate the web engine from the data repository part). Debian is one of the possible host systems, you can use something else, it's just easier with debian...
If you want a more detailed explanation of how we setup such an environment, please comment and we'll try to find the time to document it.
As a systems administrator, I can then enjoy the use of the following tools :
- clusterssh - to access all machines at once and do common task by only typing it once (a must!)
- htop - to monitor resources in a nicer way than the simple top
- iotop - to monitor input/output load
- varnishist - to check varnish is properly caching some content
- apachetop - to watch in real time what is being accessed on the apache server
- jnettop - to watch network flows
- apt-get (on debian) to install all this in a a few simple commands...
- cubicweb distributed architecture (cubicweb-architecture.png)
- A simple scalable web server HA architecture suitable for medium sized projects
- libcloud (http://incubator.apache.org/libcloud/)
- toppcloud (http://bitbucket.org/ianb/toppcloud/)
- cubicweb #1910817 switch from the non-scalable thread/request handling to something using processes and queues