• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Ubc presentation
 

Ubc presentation

on

  • 440 views

test

test

Statistics

Views

Total Views
440
Views on SlideShare
439
Embed Views
1

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 1

https://blverf.lms.it.ubc.ca 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Creating Shared ValueSustainable InnovationNatural Selection
  • Deep Listening vs Real-Time AnalysisAppropriate and Scalable EngagementActionable Insight and Empowered Employees

Ubc presentation Ubc presentation Presentation Transcript

  • Scaling for WebArchitecting HootSuite for 5 Million+ Users
  • About UsBeier CaiChief Architectbeier.cai@hootsuite.com@beiercaiBill MonkmanLead Developer, Webbill.monkman@hootsuite.com@bmonkman
  • Hoo’s HootSuite
  • 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
  • TechnologiesPHPMySQL
  • TechnologiesPHPMemcachedMySQL
  • TechnologiesPHPGearmanMemcachedMySQL
  • TechnologiesPHPGearmanMemcachedMySQL MongoDB
  • TechnologiesPHPGearman ZeroMQMemcachedMySQL MongoDB
  • 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
  • Optimization• Push processing up to the front-end, make your users’ computers into adistributed 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.
  • Optimization
  • Optimization Case Study
  • Optimization Case Study
  • Scaling Dev Team• Passion• Commitment• Dedication• Responsibility• General AwesomenessBesides technical competency, we also value
  • Scaling Dev Team• Passion• Commitment• Dedication• Responsibility• General AwesomenessBesides technical competency, we also value
  • Scaling Dev Team
  • Team Work• Entrepreneurial• Communication• Respect• Trust
  • Coding Practice• Clean and Readable• Maintainable• Reusable• Scalable• CommentedHave a well defined coding standard within your dev team, andfollow it!
  • Monitoring, Profiling & Logging
  • Monitoring, Profiling & Logging
  • Case Study
  • Case Study
  • Thank You!Beier Caibeier.cai@hootsuite.comtwitter.com/beiercaiBill Monkmanbill.monkman@hootsuite.comtwitter.com/bmonkman