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
470
1
Share
Building Multi-Tenant Applications With Riak CS
Christopher Meiklejohn
November 20, 2012
More Decks by Christopher Meiklejohn
See All by Christopher Meiklejohn
Towards a Solution to the Red Wedding Problem
cmeiklejohn
0
430
Language Support for Cloud-Scale Distributed Systems
cmeiklejohn
0
570
Towards a Systems Approach to Distributed Programming
cmeiklejohn
3
380
Scaling a Startup with a 21st Century Programming Language
cmeiklejohn
0
430
Practical Evaluation of the Lasp Programming Model at Scale
cmeiklejohn
4
2.8k
Just-Right Consistency - Closing the CAP Gap
cmeiklejohn
3
300
Declarative, Convergent, Edge Computation
cmeiklejohn
1
220
Just-Right Consistency - Closing the CAP Gap
cmeiklejohn
3
1.4k
A Certain Tendency of the Database Community
cmeiklejohn
0
480
Other Decks in Programming
See All in Programming
Reactive ❤️ Loom: A Forbidden Love Story
franz1981
2
210
今年もTECHSCOREブログを書き続けます!
hiraoku101
0
210
Codex CLI でつくる、Issue から merge までの開発フロー
amata1219
0
270
AI時代の脳疲弊と向き合う ~言語学としてのPHP~
sakuraikotone
1
1.8k
AIと共にエンジニアとPMの “二刀流”を実現する
naruogram
0
120
「速くなった気がする」をデータで疑う
senleaf24
0
120
ファインチューニングせずメインコンペを解く方法
pokutuna
0
250
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4k
Claude Code Skill入門
mayahoney
0
460
Feature Toggle は捨てやすく使おう
gennei
0
400
見せてもらおうか、 OpenSearchの性能とやらを!
shunta27
1
170
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
580
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
The Spectacular Lies of Maps
axbom
PRO
1
670
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
92
Leo the Paperboy
mayatellez
6
1.6k
We Are The Robots
honzajavorek
0
210
The Pragmatic Product Professional
lauravandoore
37
7.2k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
230
Designing for Timeless Needs
cassininazir
0
180
Raft: Consensus for Rubyists
vanstee
141
7.4k
Optimizing for Happiness
mojombo
378
71k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
150
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