[[ozbargain_architecture]]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ozbargain_architecture [2019/05/05 12:00]
deanylev [OzBargain Architecture]
ozbargain_architecture [2023/03/16 09:28] (current)
scotty
Line 18: Line 18:
   * Redis for in-memory caching, global variables and blocking queues   * Redis for in-memory caching, global variables and blocking queues
   * Chromium + PhantomJS server for [[help:foxshot|taking the screenshots]].   * Chromium + PhantomJS server for [[help:foxshot|taking the screenshots]].
-  * SphinxSearch for the search backend.+  * Manticore for the search backend.
  
 ===== Hosting ===== ===== Hosting =====
Line 26: Line 26:
   * [[https://aws.amazon.com/s3/|Amazon S3]] for thumbnail and uploaded files storage.   * [[https://aws.amazon.com/s3/|Amazon S3]] for thumbnail and uploaded files storage.
   * [[https://www.binarylane.com.au/|Binary Lane]] VPS in Sydney for the main site.   * [[https://www.binarylane.com.au/|Binary Lane]] VPS in Sydney for the main site.
-  * [[https://www.vultr.com/|Vultr]] VPS in Sydney for front-end caching for Amazon S3.+  * [[https://www.cloudflare.com/|Cloudflare]] as front-end proxy / CDN.
  
 ===== Architecture ===== ===== Architecture =====
Line 32: Line 32:
 Currently the whole OzBargain main site sits on a few KVM VPS at Binary Lane (4GB-8GB RAM, 60GB-100GB hard disk) -- two running replicated MySQL & Redis, and the another one running the rest of stack. Nginx on port 80/443 handles all the HTTP requests, and then pass the requests to either Drupal/PHP via FastCGI, or to customised Python/Tornado based server via proxy. MySQL is the main database used, and Redis is used for session storage, in memory cache and blocking queues. Blocking queues are used to let front-end processes send asynchronous commands to backend processes, which is also implemented in Python. Currently the whole OzBargain main site sits on a few KVM VPS at Binary Lane (4GB-8GB RAM, 60GB-100GB hard disk) -- two running replicated MySQL & Redis, and the another one running the rest of stack. Nginx on port 80/443 handles all the HTTP requests, and then pass the requests to either Drupal/PHP via FastCGI, or to customised Python/Tornado based server via proxy. MySQL is the main database used, and Redis is used for session storage, in memory cache and blocking queues. Blocking queues are used to let front-end processes send asynchronous commands to backend processes, which is also implemented in Python.
  
-RabbitMQ is also used as broker for micro-services. RabbitMQ cluster is hosted on a pair of VPS at Vultr in Sydney.+RabbitMQ is also used as broker for micro-services. 
 ===== See Also ===== ===== See Also =====
  
   * [[help:credits]] page.   * [[help:credits]] page.