$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Building Multi-Tenant Applications With Riak CS
Search
Christopher Meiklejohn
November 20, 2012
Programming
1
460
Building Multi-Tenant Applications With Riak CS
Christopher Meiklejohn
November 20, 2012
Tweet
Share
More Decks by Christopher Meiklejohn
See All by Christopher Meiklejohn
Towards a Solution to the Red Wedding Problem
cmeiklejohn
0
420
Language Support for Cloud-Scale Distributed Systems
cmeiklejohn
0
560
Towards a Systems Approach to Distributed Programming
cmeiklejohn
3
370
Scaling a Startup with a 21st Century Programming Language
cmeiklejohn
0
420
Practical Evaluation of the Lasp Programming Model at Scale
cmeiklejohn
4
2.8k
Just-Right Consistency - Closing the CAP Gap
cmeiklejohn
3
280
Declarative, Convergent, Edge Computation
cmeiklejohn
1
210
Just-Right Consistency - Closing the CAP Gap
cmeiklejohn
3
1.3k
A Certain Tendency of the Database Community
cmeiklejohn
0
470
Other Decks in Programming
See All in Programming
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
150
TerraformとStrands AgentsでAmazon Bedrock AgentCoreのSSO認証付きエージェントを量産しよう!
neruneruo
4
1.4k
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
390
TestingOsaka6_Ozono
o3
0
170
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
160
The Art of Re-Architecture - Droidcon India 2025
siddroid
0
120
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
200
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
140
AIコーディングエージェント(skywork)
kondai24
0
190
ゲームの物理 剛体編
fadis
0
370
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
0
290
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
800
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
0
23
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
0
160
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Agile that works and the tools we love
rasmusluckow
331
21k
From π to Pie charts
rasagy
0
88
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
140
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
200
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
65
Transcript
Building Multi-Tenant Applications With Riak CS Christopher Meiklejohn @cmeik Tuesday,
November 20, 12
@cmeik Tuesday, November 20, 12
API Tuesday, November 20, 12
Signed Requests s3curl, pkgcloud, fog, other client libraries Tuesday, November
20, 12
Multiple Formats Accept header; JSON, XML Tuesday, November 20, 12
Proper Responses 404, 409, 201, etc. Tuesday, November 20, 12
Provisioning API Tuesday, November 20, 12
PUT /riak-cs/users { "email": "
[email protected]
", "name": "foo bar" } Tuesday,
November 20, 12
GET /riak-cs/users Tuesday, November 20, 12
{ "email": "
[email protected]
", "display_name": "foobar" "key_id": "324ABC07131274900EFC086821BFAE7ED81442C", "key_secret": "5BE84D7EEA1AAAAACF070A1982DDA74DA0AA5DA7", "name":
"foo bar", "id": "8d6f05190095117120d4449484f5d8769....", "buckets": [] } Tuesday, November 20, 12
GET /riak-cs/user GET /riak-cs/user/key_id Tuesday, November 20, 12
PUT /riak-cs/user PUT /riak-cs/user/key_id { “status”: “enabled” } Tuesday, November
20, 12
PUT /riak-cs/user PUT /riak-cs/user/key_id { “new_key_secret”: true } Tuesday, November
20, 12
Usage API Tuesday, November 20, 12
{ "Storage":[{ "StartTime":"20120316T123318Z", "EndTime":"20120316T123319Z", "foo":{"Objects":1,"Bytes":32505856}, "bar":{"Objects":4,"Bytes":130023424} }] } Tuesday, November
20, 12
{ "Access":[{ "Node":"
[email protected]
", "Samples":[{ "StartTime":"20120315T150000Z", "EndTime":"20120315T152931Z", "KeyWrite":{"BytesIn":32505856,"Count":1}, "KeyRead":{"BytesOut":32505856,"Count":1}, "BucketRead":{"BytesOut":3633,"Count":5} ]}
} Tuesday, November 20, 12
GET s3://usage/KeyId/Options/Start/End GET s3://usage/KeyId.Options.Start.End Options = aj | ax Start
= ISO8601 End = ISO8601 GET s3://usage/8NK4FH2SGKJJM8JIP2GU/aj/ 20120315T140000Z/20120315T160000Z Tuesday, November 20, 12
Fog https://github.com/basho/fog Tuesday, November 20, 12
gem 'fog', :git => 'https://github.com/basho/fog.git', :branch => 'riak_cs' Tuesday, November
20, 12
Provisioning API Tuesday, November 20, 12
@client = Fog::RiakCS::Provisioning.new( :riakcs_access_key_id => RIAK_CS_ADMIN_KEY, :riakcs_secret_access_key => RIAK_CS_ADMIN_SECRET, :host
=> RIAK_CS_HOST, :port => RIAK_CS_PORT, :scheme => RIAK_CS_SCHEME ) Tuesday, November 20, 12
@client.create_user(email, name) Tuesday, November 20, 12
@client.list_users Tuesday, November 20, 12
@client.get_user(key_id) Tuesday, November 20, 12
@client.enable_user(key_id) Tuesday, November 20, 12
@client.disable_user(key_id) Tuesday, November 20, 12
@client.regrant_secret(key_id) Tuesday, November 20, 12
Usage API Tuesday, November 20, 12
@client = Fog::RiakCS::Usage.new( :riakcs_access_key_id => RIAK_CS_ADMIN_KEY, :riakcs_secret_access_key => RIAK_CS_ADMIN_SECRET, :host
=> RIAK_CS_HOST, :port => RIAK_CS_PORT, :scheme => RIAK_CS_SCHEME ) Tuesday, November 20, 12
@client.get_usage( key_id, :format => :json :types => [:access, :storage], :start_time
=> start_time, :end_time => end_time ) Tuesday, November 20, 12
Questions? Tuesday, November 20, 12