Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
410
Language Support for Cloud-Scale Distributed Systems
cmeiklejohn
0
540
Towards a Systems Approach to Distributed Programming
cmeiklejohn
3
360
Scaling a Startup with a 21st Century Programming Language
cmeiklejohn
0
410
Practical Evaluation of the Lasp Programming Model at Scale
cmeiklejohn
4
2.8k
Just-Right Consistency - Closing the CAP Gap
cmeiklejohn
3
270
Declarative, Convergent, Edge Computation
cmeiklejohn
1
200
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
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
390
AI駆動開発カンファレンスAutumn2025 _AI駆動開発にはAI駆動品質保証
autifyhq
0
120
iOSでSVG画像を扱う
kishikawakatsumi
0
180
CSC509 Lecture 08
javiergs
PRO
0
280
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
2k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
500
ドメイン駆動設計のエッセンス
masuda220
PRO
15
7.4k
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
0
120
GitHub Copilotを使いこなせ!/mastering_github_copilot!
kotakageyama
2
740
Developer Joy - The New Paradigm
hollycummins
1
400
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
0
370
Vueのバリデーション、結局どれを選べばいい? ― 自作バリデーションの限界と、脱却までの道のり ― / Which Vue Validation Library Should We Really Use? The Limits of Self-Made Validation and How I Finally Moved On
neginasu
3
1.8k
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
116
20k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Speed Design
sergeychernyshev
32
1.2k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Faster Mobile Websites
deanohume
310
31k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Facilitating Awesome Meetings
lara
57
6.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
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