Couch DB in 15minutes

Preview:

DESCRIPTION

CouchDB introduction talks at Python Hackathon #3 in Japan.

Citation preview

id: yssk22 (CouchDB-JP)

About Me

Yohei Sasaki (@yssk22)

Twitter, hatena, github, google, …

CouchDB関係のMLにたまに出没

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

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

developerWorks のCouchDB 連載書きました。

今日の話

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

いつもと変えます。

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

To Be Relaxed...

いつものCouchDB紹介

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

最近普通。

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

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

MapReduceでクエリ!

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

Erlang で実装。

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

CouchDBとは何ですか?

CouchDBとは何ですか?

Web時代のLotus Notes/Domino.

Web時代のLotus Notes/Domino

Oracleさん曰く:

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

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

CouchDBとは何ですか?

Web時代のLotus Notes/Domino.

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

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

CouchDB は KVS ですか?

CouchDB は KVS ですか?

Web時代のLotus Notes/Domino.

Yes, that's right.

CouchDB は KVS ですか?

JSONを格納できます。

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

"age" : 27,

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

}

}

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

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

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

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

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

Lotus Notes/Domino 的な思想

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

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

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

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

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

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

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

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

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

MobileMe のようなサービス

2GB までのディスク

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

Nokia N900 にも入る?

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

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

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

App

App

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

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

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

ちょっと前のWeb+DB

Web Server Web Server Web Server Web Server

App Server App Server App Server App Server

RDB Server RDB Server

最近の 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

CouchDB = 1人で3役

Relax Relax Relax Relax

1人で3役?

Web Server+ JavaScript Application Server

+ JSON Store

サンプルサイト

Pure CouchDB のブログ

http://jchrisa.net

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

http://www.yssk22.info/tstore

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

つまり。

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

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

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

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

ここは Python Hackathon

OK. Python + CouchDB

Mozilla Raindrop

Twisted + CouchDB + いろいろ

Pythonで実装されたツール

CouchApp

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

python-couchdb

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

couchdbkit

ライブラリ

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 があまり初心者向けじゃないので。。

まとめ

CouchDB は 21世紀のLotus Notes

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

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

Python Tool もたくさんあるよ!