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
390
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
340
Language Support for Cloud-Scale Distributed Systems
cmeiklejohn
0
440
Towards a Systems Approach to Distributed Programming
cmeiklejohn
3
270
Scaling a Startup with a 21st Century Programming Language
cmeiklejohn
0
380
Practical Evaluation of the Lasp Programming Model at Scale
cmeiklejohn
4
2.6k
Just-Right Consistency - Closing the CAP Gap
cmeiklejohn
3
240
Declarative, Convergent, Edge Computation
cmeiklejohn
1
180
Just-Right Consistency - Closing the CAP Gap
cmeiklejohn
3
1.2k
A Certain Tendency of the Database Community
cmeiklejohn
0
420
Other Decks in Programming
See All in Programming
今、知っておきたい! 生成AIエージェントの世界
elith
3
340
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
220
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
440
見た目から始める生産性向上
ikumatadokoro
4
170
Zero Waste, Radical Magic, and Italian Graft – Quarkus Efficiency Secrets
hollycummins
0
220
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
100
1인 개발자로 행복하게 살기 - GDG 송도 헬로월드 2024
benjaminkim
1
5.6k
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1.2k
Semantic search with Django and pgvector
pauloxnet
0
240
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
310
Code Reviews
bkuhlmann
4
880
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
500
Featured
See All Featured
How GitHub (no longer) Works
holman
304
140k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
29
6k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Mobile First: as difficult as doing things right
swwweet
216
8.6k
Gamification - CAS2011
davidbonilla
76
4.6k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
How to train your dragon (web standard)
notwaldorf
72
5.1k
Designing the Hi-DPI Web
ddemaree
276
33k
Done Done
chrislema
178
15k
BBQ
matthewcrist
80
8.7k
Clear Off the Table
cherdarchuk
83
310k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
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