Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Riak usage at Apollo Group

Riak usage at Apollo Group

Silicon valley riak meetup talk presentation

Pavan Venkatesh

February 13, 2013
Tweet

More Decks by Pavan Venkatesh

Other Decks in Technology

Transcript

  1. 2 § About Apollo Group § About Apollo Learning Platform § Why Riak?

    § How Riak is used @ Apollo § The experience § Q&A Agenda
  2. 3 § Apollo Group is the parent company of University of

    Phoenix § Apollo Group owns many other universities besides UoP § Pioneer in online education – 340K Current students – 1600 Online courses § Apollo Education Service (AES) – To help higher learning institutions produce the most effective and efficient educational delivery systems possible. About Apollo Group
  3. 4 § A highly Scalable LMS – Designed to be multi-tenant – Heavy

    and rich user interaction § Architecture – Large number of services – GWT based browser based application – Mobile client – No SQL and Relational and Graph stores – Riak, Mongodb, RDS, Marklogic About Apollo Learning Platform
  4. 5 § Deployment – SaaS based delivery – Currently hosted in EC2 – Heavy

    integration with systems hosted in private Data Center – Released to UoP in August 2012 About Apollo Learning Platform (Cont…)
  5. 6 § Why No SQL – Scalable – Access patterns § Why Riak – Evaluated

    Cassandra and Riak – Simple data model (key-value based) – Easy to add nodes to a cluster. – Linear scalability. Performance and storage scale as more nodes are added to the cluster – Full support for vector clocks allows conflicts to be resolved (although, the application has it share of responsibilities) – Easy to manage – Master less – CAP – Support Why Riak?
  6. 7 § Configuration – 6 clusters across development and production – Level db

    – Largest 15 nodes, smallest 6 – 1024 ring size – All in EC2 – Started with 0.96 and now on Riak 1.14 – Replication and backup § Data – Domain object storage – Application metadata How Riak is Used @ Apollo
  7. 8 § Access Pattern – Mostly keyed access § Not using – M/R –

    Used once backed off because of performance – 2i – Used once backed off because of performance – Key filter – No links How Riak is Used @ Apollo (cont…)
  8. 9 §  Value added by Apollo –  Riak PB Driver

    • We have our implementation of PB. Early stages the PB driver did not have needed features • Added connection pooling • Connection pruning to shied EC2 socket behavior • Multiple cluster support • Advanced logging • Batch operations –  Distributed Cache • Service on top of Riak memory backend • Easy to implement and support • Have reasonably good performance –  Riak stats collection • List keys and List buckets are not usable at production • POST commit hook to collect data created • Application like list key and key can be build on top of it How Riak is Used @ Apollo (cont…)
  9. 10 § Hosting and operation – Initial challenges • Knowledge gap • Configure and

    reconfigure ring sizes • Lack of monitoring • Sibling explosion – Now • Smooth operation in production • Help from Basho • Setting up Mutli-AZ replication • Self-sufficient • Still lack better monitoring The experience (cont…)
  10. 11 § Support – Excellent from the beginning • Always there to help

    • Help us in production migration • Prompt response • Helped in developing post commit hook The experience (cont…)
  11. 12 § Development – Initial challenges • Use of features • M/R , 2i

    and list keys used but later forced to remove • Developer training – What to use what not to use • Sibling explosion crashed production – Now • Normalized • Uses only for keyed access • No M/R, 2i etc • Experts review developer code to make sure it is safe • Started using more advanced customization using erlang The experience