scaling for web - architecting hootsuite for 5+ million users

26
Scaling for Web Architecting HootSuite for 5 Million+ Users

Upload: bmonkman

Post on 17-May-2015

392 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Scaling for Web - Architecting HootSuite for 5+ Million Users

Scaling for WebArchitecting HootSuite for 5 Million+ Users

Page 2: Scaling for Web - Architecting HootSuite for 5+ Million Users

About Us

Beier CaiChief [email protected]@beiercai

Bill MonkmanLead Developer, [email protected]@bmonkman

Page 3: Scaling for Web - Architecting HootSuite for 5+ Million Users

Hoo’s HootSuite

Page 4: Scaling for Web - Architecting HootSuite for 5+ Million Users

Some Numbers

5+ million Members

10+ million Social Networks

25+ million Streams

350+ million Messages Scheduled

1.3+ Billion Messages Sent

2+ Billion Page Views per month

2,000 Web Requests/sec

Page 5: Scaling for Web - Architecting HootSuite for 5+ Million Users
Page 6: Scaling for Web - Architecting HootSuite for 5+ Million Users

Technologies

PHP

MySQL

Page 7: Scaling for Web - Architecting HootSuite for 5+ Million Users

Technologies

PHP

Memcached

MySQL

Page 8: Scaling for Web - Architecting HootSuite for 5+ Million Users

Technologies

PHP

Gearman

Memcached

MySQL

Page 9: Scaling for Web - Architecting HootSuite for 5+ Million Users

Technologies

PHP

Gearman

Memcached

MySQL MongoDB

Page 10: Scaling for Web - Architecting HootSuite for 5+ Million Users

Technologies

PHP

Gearman ZeroMQ

Memcached

MySQL MongoDB

Page 11: Scaling for Web - Architecting HootSuite for 5+ Million Users

Technology Stack

LAMP (Linux, Apache, MySQL, PHP)

Scala

Akka

Python

Clojure

MongoDB

Redis

Memcached

Gearman

ZeroMQ

RabbitMQ/AMQP

jQuery/Backbone

EC2 Cloud / CloudStack

Jenkins / CruiseControl

CloudFront CDN

HAProxy/Nginx/Varnish

Zend

Statsd/Graphite

LogStash

ElasticSearch/Lucene

Nagios/Munin/Sensu

ZooKeeper

Page 12: Scaling for Web - Architecting HootSuite for 5+ Million Users

Optimization

• Push processing up to the front-end, make your users’ computers into a distributed processing network. e.g. stream rendering

• Cache as much as possible, invalidate only when necessary.

• Sometimes features have to take a back-seat to performance/scalability.

• Look at profiler data.

• Watch query execution time, optimize when necessary with indexes, partitions, de-normalization, etc.

• Know what your weak spots are and keep a close eye on them.

Page 13: Scaling for Web - Architecting HootSuite for 5+ Million Users

Optimization

Page 14: Scaling for Web - Architecting HootSuite for 5+ Million Users

Optimization Case Study

Page 15: Scaling for Web - Architecting HootSuite for 5+ Million Users

Optimization Case Study

Page 16: Scaling for Web - Architecting HootSuite for 5+ Million Users
Page 17: Scaling for Web - Architecting HootSuite for 5+ Million Users

Scaling Dev Team

• Passion

• Commitment

• Dedication

• Responsibility

• General Awesomeness

Besides technical competency, we also value

Page 18: Scaling for Web - Architecting HootSuite for 5+ Million Users

Scaling Dev Team

Passion

• Commitment

• Dedication

• Responsibility

• General Awesomeness

Besides technical competency, we also value

Page 19: Scaling for Web - Architecting HootSuite for 5+ Million Users

Scaling Dev Team

Page 20: Scaling for Web - Architecting HootSuite for 5+ Million Users

Team Work

Entrepreneurial

• Communication

• Respect

• Trust

Page 21: Scaling for Web - Architecting HootSuite for 5+ Million Users

Coding Practice

• Clean and Readable

• Maintainable

• Reusable

• Scalable

• Commented

Have a well defined coding standard within your dev team, and follow it!

Page 22: Scaling for Web - Architecting HootSuite for 5+ Million Users

Monitoring, Profiling & Logging

Page 23: Scaling for Web - Architecting HootSuite for 5+ Million Users

Monitoring, Profiling & Logging

Page 24: Scaling for Web - Architecting HootSuite for 5+ Million Users

Case Study

Page 25: Scaling for Web - Architecting HootSuite for 5+ Million Users

Case Study

Page 26: Scaling for Web - Architecting HootSuite for 5+ Million Users

Thank You!

Beier [email protected]/beiercai

Bill [email protected]/bmonkman