3. Web Server
• The early days of SoundCloud, using Apache to serve the image/style/behavior
resources
• Then, replaced Apache with Nginx and reduced a web tier’s conguration
complexity
4. Load distribution
• HAProxy was added into SoundCloud infrastructure, and it entered as Queuing
Load Balancer
• Apply queue theory to solve “head of the line blocking”
5. Going Asynchronous
• Coordinating these subsystems, SoundCloud need some middleware that would
reliably queue, acknowledge and re-delivery job tickes on failure
• Using AMQP, implemeted by RabbitMQ
6. Caching
• Using Memcached to alleviate IO contention in the database like most
applications
• Add Varnish to handle backend partially rendered template caching and mostly
read-only APU responses