• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Riak at Kivra
 

Riak at Kivra

on

  • 1,242 views

 

Statistics

Views

Total Views
1,242
Views on SlideShare
575
Embed Views
667

Actions

Likes
0
Downloads
3
Comments
0

12 Embeds 667

http://basho.com 507
http://basho.co.jp 115
http://cloud.feedly.com 19
https://www.google.com 9
http://www.toddpigram.com 8
http://feedly.com 3
http://newsblur.com 1
http://digg.com 1
http://hivereader.com 1
http://www.inoreader.com 1
http://translate.googleusercontent.com 1
http://webcache.googleusercontent.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

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

    Riak at Kivra Riak at Kivra Presentation Transcript

    • RIAK at KIVRABip Thelin@bipthelin
    • BIP THELIN CTO & Co-founder OO / SQL-background Open Source / Tomcat Committer Scalable platforms / Hosting Beer Homebrewer / Judge
    • API / Delivery serviceContent compositionContent creationDigital mailbox
    • ResponsiveWebiOS App
    • z zState machine y xInternal, External & c aTime Events b p f dHard to test / debug qError prone g eHardcoded flow rNo overview e i t u
    • Weoutgrew our system
    • QUOTE: Marriage is a wonderful institution, but who wants to live in an 24 / 7 / 365 institution? SECURE / Stable TESTABLE / OPERATIONAL Distributable / ScALABLE
    • Our PhilosophyKeep it simple, StupidDo one thing and do it wellSeparation of concernRight tool for the jobHasty generalization
    • RIAK + ErlangLightweightDistributedScalableResilient to failure
    • Frontend Service x y x y REST API z q Backend service z qExternal Services RIAK Internal Services
    • Right datastore for the job 3 x Riak Clusters
    • ManyONEBACKEND (s)to rule them all
    • RIAKLeveldbBitcask stackRiak-erlang-client (PB)JSON
    • OAUTH2Authorization layer on top of Riak
    • LAZYUPGRADE
    • -­‐record(user,  {        password                  =  <<"l0ln00b">,        name                          =  <<"noname">>, Get object        i_primary_email    =  <<"ih@ck.se">,        i_primary_phone    =  <<"461337">>,        i_ssn                        =  <<"0123456789">>,        l_tenant                  =  {<<"B">>,  <<"K">>} }).Check version Upgrade object [1...n] RIAK
    • LOGGING
    • 1. MetricsAnything youd want toplot on a graph
    • 2. (Un)structured Log data logging youd want to process
    • 3. Applicationlogging Error, Notice, Warning, etc
    • Lager Logglygithub.com/kivra/lager_loggly.git
    • Lager Sysloggithub.com/basho/lager_syslog
    • ~197 SLOC ~23 SLOC
    • Lager{lager,  [ {handlers,  [             {lager_console_backend,  info},                    {lager_loggly_backend,  [<<"Riak">>,                          info,  5,  3,                    "https://<Loggly  URI>"]},                      {lager_loggly_backend,  [<<"Riak">>,                      error,  5,  3,                        "https://<Loggly  URI>"]},                      {lager_file_backend,  [                         {"/path/error.log",  error,  10485760,  "$D0",  5},                              {"/path/console.log",  info,  10485760,  "$D0",  5}                    ]} ]},          ...]},
    • DEPLOYMENT Central configuration Infrastructure as Code Bootstrap/Upgrade
    • Data modeling DESIGN Conflict resolution DECISIONS 2i slow and no M/R, Links, Search, etc..TRADEOFFS Key generation Caching
    • What’s up?Riak CoreData encryptionSearchSession backend
    • Thank You!https://www.github.com/kivra Bip Thelin bip@kivra.com @bipthelin