31
id: yssk22 (CouchDB-JP)

Couch DB in 15minutes

Embed Size (px)

DESCRIPTION

CouchDB introduction talks at Python Hackathon #3 in Japan.

Citation preview

Page 1: Couch DB in 15minutes

id: yssk22 (CouchDB-JP)

Page 2: Couch DB in 15minutes

About Me

Yohei Sasaki (@yssk22)

Twitter, hatena, github, google, …

CouchDB関係のMLにたまに出没

CouchDB-JP からやってきました。

今年はなんかパッチかく(Erlangで…)

developerWorks のCouchDB 連載書きました。

Page 3: Couch DB in 15minutes

今日の話

CouchDBとはなんですか?を15分で。

いつもと変えます。

さくさくいくので、気になったらあとで捕まえて聞いてください。

To Be Relaxed...

Page 4: Couch DB in 15minutes

いつものCouchDB紹介

JSONをそのままストアできる

最近普通。

HTTP/RESTでデータベース操作できる!

他のKVSでもできるのあるよね。

MapReduceでクエリ!

Hadoop/HBase使えばいいじゃん。

Erlang で実装。

Mnesiaというのが標準であってだな。。。

Page 5: Couch DB in 15minutes

CouchDBとは何ですか?

Page 6: Couch DB in 15minutes

CouchDBとは何ですか?

Web時代のLotus Notes/Domino.

Web時代のLotus Notes/Domino

Page 7: Couch DB in 15minutes

Oracleさん曰く:

Lotus Notes/Domino は、ノーツレガシーと呼ばれるぐらい、ロックインされてしまうソフトウェア(ほめ言葉)。 ある意味中毒性のある環境

CouchDB も邪魔者と呼ばれるようになる日が来るかもしれません。

Page 8: Couch DB in 15minutes

CouchDBとは何ですか?

Web時代のLotus Notes/Domino.

というタイトルをつけてたら、怒られるだろうなPVは伸びないだろうな、と思って非リレーショナルデータベースってことにしました。

最近だと非リレーショナルデータベースに対して、KVS/NoSQLという言葉が定着してきましたが...

Page 9: Couch DB in 15minutes

CouchDB は KVS ですか?

Page 10: Couch DB in 15minutes

CouchDB は KVS ですか?

Web時代のLotus Notes/Domino.

Yes, that's right.

Page 11: Couch DB in 15minutes

CouchDB は KVS ですか?

JSONを格納できます。

{"_id" : "yssk22","_rev" : "2-xxxxxxxx","name" : "Yohei Sasaki","profile" : {

"age" : 27,

"single": true,"intereted_in": ["couchdb", "web"]

}

}

Page 12: Couch DB in 15minutes

他のKVSと何が違うんですか?

Page 13: Couch DB in 15minutes

他のKVSと何が違うんですか?

レプリケーションとアプリケーションホスティング

Page 14: Couch DB in 15minutes

他のKVSと何が違うんですか?

レプリケーションとアプリケーションホスティング

Lotus Notes/Domino 的な思想

See also http://bit.ly/5sbcIt

Page 15: Couch DB in 15minutes

他のKVSのレプリケーション?

key-valueストアの基礎知識より。

たいていは、いくつかのサーバ上に複製(replica)を作ります。これによって耐故障性を高めます。 1台が故障で停止しても他

のサーバから複製を読み出せる、というわけです。

http://www.shudo.net/article/Software-Design-201002-KVS/

Page 16: Couch DB in 15minutes

CouchDBは世界中で複製されます

http://damienkatz.net/pics/ubuntu_couchdb.png

Page 17: Couch DB in 15minutes

Ubuntu 9.10 Desktop の台数<= CouchDB のインスタンス数 Ubuntu One Canonical が提供する

MobileMe のようなサービス

2GB までのディスク

スペース、アドレス帳、メモなどを複数のPCで複製・同期可能にする

Page 18: Couch DB in 15minutes

Nokia N900 にも入る?

http://thomas.apestaart.org/log/?p=1106&cpage=1

gnome-keyring から python-keyring へのポートができれば。

Page 19: Couch DB in 15minutes

CouchDBが目指すスケーラビリティ

App

App

1台になっても、N台になっても対応できるストレージシステム

Page 20: Couch DB in 15minutes

他のKVSと何が違うんですか?

レプリケーションとアプリケーションホスティング

Page 21: Couch DB in 15minutes

ちょっと前のWeb+DB

Web Server Web Server Web Server Web Server

App Server App Server App Server App Server

RDB Server RDB Server

Page 22: Couch DB in 15minutes

最近の Web+DB

Web Server Web Server Web Server Web Server

App Server App Server App Server App Server

DB Server DB Server DB Server DB Server

Page 23: Couch DB in 15minutes

CouchDB = 1人で3役

Relax Relax Relax Relax

Page 24: Couch DB in 15minutes

1人で3役?

Web Server+ JavaScript Application Server

+ JSON Store

Page 25: Couch DB in 15minutes

サンプルサイト

Pure CouchDB のブログ

http://jchrisa.net

Pure CouchDB のTwitter 複製お試しサービス

http://www.yssk22.info/tstore

○ ドメイン契約更新期限切れ中orz

Page 26: Couch DB in 15minutes

つまり。

CouchDBが入ると、Webに必要な環境がすべて手に入る。

スケーラブルなKVSが手に入り

Server Side JavaScript のアプリケーションがくっついてきて

画像やCSSなどの静的コンテンツも配信できる

Page 27: Couch DB in 15minutes

ここは Python Hackathon

OK. Python + CouchDB

Page 28: Couch DB in 15minutes

Mozilla Raindrop

Twisted + CouchDB + いろいろ

Page 29: Couch DB in 15minutes

Pythonで実装されたツール

CouchApp

CouchDBアプリケーション開発ツールキット

python-couchdb

管理ツールからバインディングまで。

couchdbkit

ライブラリ

Page 30: Couch DB in 15minutes

CouchDB-JP

CouchDB Definitive Guide翻訳 http://dl.dropbox.com/u/673631/couchdb/html/index.html

月1回ぐらいで勉強会的な何か。 来月は未定 OSC Tokyo 2010 Spring はやります。

○ CouchDBで作るOpenSocial Container (仮○ Sheeva Plug で動かすポータブルソファ。

今日のHandsOn資料 http://dl.dropbox.com/u/219436/CouchDB/PythonHackathon3

/handson/_build/html/index.html○ Definitive Guide があまり初心者向けじゃないので。。

Page 31: Couch DB in 15minutes

まとめ

CouchDB は 21世紀のLotus Notes

レプリケーションとアプリケーションホスティングにより、他のKVSとは一線を隠す使い方ができる、というかもはやKVSじゃない! ワークフローを流したり、データ解析をしたり、とか。

いろんな企業、団体が使い始めている。 BBCとか。

Python Tool もたくさんあるよ!