devsumi2013【15-e-5】nosqlの野心的な使い方 ~apache cassandra編~

26
NoSQL のののののののの Apache Cassandra の

Upload: kishimotosc

Post on 24-May-2015

5.380 views

Category:

Technology


2 download

DESCRIPTION

Developers Summit 2013 の 【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~ のスライドです。 NoSQLについてのよくある誤解や正解から始めて、 RDBMSとの本当の関係、  フロントエンドシステムがNoSQL  バックヤードシステムがRDBMS という構成が自然な解であることなどを 簡単ながら記載しています。

TRANSCRIPT

Page 1: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

NoSQL の野心的な使い方

~ Apache Cassandra 編~

Page 2: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

誰?誰?

■ 株式会社エスキュービズム    岸本 康二

■EC 系サービスの構築案件から  大規模系の技術開発、  クラウド、 M2M 系など

■ 大学の博士課程まで物理  新技術を使うより   新技術を作るのが好き

Page 3: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL のよくある誤解・正解

■ 誤解

■ 正解

○ 負荷分散に優れている○ 耐障害性が高い○ データ一貫性は弱い

× データ一貫性がないCAP 定理は正しい。が、誤解が異常に多い。

× トランザクションは無理× 業務系フロントシステムには向かない

RDBMS を主役に据えた Not Only SQL …→ なんて言ってるのはもう古い!

Page 4: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■ Apache Cassandra を選んだ理由

MongoDB Redis

ボトルネック

ボトルネック

管理型 マスタ - スレーブ型

Cassandra

ボトルネックなし!

独立協調型

Page 5: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

RDBMS での高速化(負荷分散)

1)レプリケーションで読み込み負荷分散→ 書き込み負荷は分散できず

Page 6: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

RDBMS での高速化(負荷分散)

1)レプリケーションで読み込み負荷分散→ 書き込み負荷は分散できず

2)テーブル単位で複数サーバに分割  2 ' )テーブルを複数サーバに分割

→ 発想は NoSQL 系と同じ

Page 7: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

RDBMS での高速化(負荷分散)

1)レプリケーションで読み込み負荷分散→ 書き込み負荷は分散できず

2)テーブル単位で複数サーバに分割  2 ' )テーブルを複数サーバに分割

→ 発想は NoSQL 系と同じ3)インデックスを張る

→ 発想は NoSQL 系と同じ

Page 8: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

RDBMS での高速化(負荷分散)

1)レプリケーションで読み込み負荷分散→ 書き込み負荷は分散できず

2)テーブル単位で複数サーバに分割  2 ' )テーブルを複数サーバに分割

→ 発想は NoSQL 系と同じ3)インデックスを張る

→ 発想は NoSQL 系と同じ番外) SQL の解析を飛ばして直接ストレージ API の操作

→ もはや SQL では…

Page 9: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

RDBMS でも NoSQL でも設計を深く突き詰めると同じ

そもそも CPU の処理量は DB に関係なく一定↓

CPU 処理量の配分の最適化が大事↓

NoSQL :フロント (オンライン)RDBMS :バックヤード (オフライン)

ログ解析など(← SQL が活きる!)↑「 Not Only SQL 」の構成とは真逆

Page 10: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

■NoSQL・書き込み負荷も容易に分散(スケールアウト)・障害・アクシデントに強い・分散がバックアップも兼ねるので効率的・経済的

→ フロントシステム向き

■RDBMS・ SQL が便利。思いつきの解析もすぐに実行できる・検索、ソートが効率的

→ バックヤードでの分析・統計向き→ 定型に落として Hadoop

Page 11: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

WEB APP

WEB APP

WEB APP

WEB APP

WEB APP

RDBMS

RDBMS

●従来型→DB に負荷集中

Page 12: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

NoSQL

RDBMS

RDBMS

NoSQL

WEB APP

WEB APP

WEB APP

WEB APP

WEB APP● 負荷を軽減しようと・・・

→NoSQL でキャッシュ→DB の書き込み負荷は減らない

Page 13: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

NoSQL

RDBMS

RDBMS

NoSQL

WEB APP

WEB APP

WEB APP

WEB APP

WEB APP● ボトルネック部分を削ってみる

Page 14: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

NoSQL

NoSQL

NoSQL

NoSQL

NoSQL

WEB APP

WEB APP

WEB APP

WEB APP

WEB APP

Page 15: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

NoSQL

NoSQL

NoSQL

NoSQL

NoSQL

WEB APP

WEB APP

WEB APP

WEB APP

WEB APP

Page 16: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

NoSQL

NoSQL

NoSQL

NoSQL

NoSQL

WEB APP

WEB APP

WEB APP

WEB APP

WEB APP

●自然と NoSQL クラスタに行き着く

Page 17: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL と RDBMS との本当の関係

NoSQL

NoSQL

NoSQL

NoSQL

NoSQL

WEB APP

WEB APP

WEB APP

WEB APP

WEB APP

RDBMS

● 最適なシステム構成 →NoSQL はフロント  → RDBMS はバックヤード

Page 18: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

大規模ポイント管理サービス   某大手放送局様

■  実案件での NoSQL

Page 19: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■  実案件での NoSQL

・秒間5000回の「書き込み」の実績→1 時間で 1800 万回の実績(月間130億回)→ スマートメーター系への展開に繋がった

・拡張性の担保→ サーバを追加するだけ→ すでに秒間16000 回は実証(月間400億回)

・サーバ障害もひと通り経験→HD の大規模障害にも耐えた

こんなシステムを 1 人で構築することも可能なのがNoSQL の凄く面白いところ

Page 20: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL あるある ~職場編~

・社長 : 「 NoSQL って何 ? 」→ 「あ、さすがですね !

これから伸びるクラウド時代の技術です」

Page 21: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL あるある ~職場編~

・社長 : 「 NoSQL って何 ? 」→ 「あ、さすがですね !

これから伸びるクラウド時代の技術です」

・人事 : 「新人でもできる ? 」→ 「ちょうど良かったです。

そういう人の方が向いてます ! 」 →人材確保

Page 22: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL 採用への道 ~職場編~

・社長 : 「 NoSQL って何 ? 」→ 「あ、さすがですね !

これから伸びるクラウド時代の技術です」

・人事 : 「新人でもできる ? 」→ 「ちょうど良かったです。

そういう人の方が向いてます ! 」 →人材確保

・部長 : 「お金になるワケ ? 」→ 【会場で具体的にご説明】

Page 23: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■   NoSQL が熱い領域

・ M2M 領域(広い意味で)→ センサーデータ

→ 家電データも相当→ 業界大手は Hadoop による可視化を売っているだけ

→ まだまだ巨大なニーズが残っている

・既存領域でもシステムリニューアルは熱い→ 決済者は DB で選ばない→ より良いシステムをより合理的なコストで

Page 24: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■ Action !

翔泳社Cassandra実用システム・インテグレーション

・ Cloudn 上でお試しができます。・ NoSQL のトランザクションもテスト可能

「 NanaHoshi 」 http://b-rabbit.jp/nanahoshi/

■ 書籍

翔泳社ニフティクラウド IaaS によるシステム構築

Page 25: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■ Action !

・マスタレス・ NoSQL は画面から( RDBMS はモデルから)

→DB は入れ物。だから分散できる。→ ロジックはアプリ側へ。

・ CAP 定理と BASE という概念

・めげない心・ NoSQL はエンジニアの腕の見せ所がとても多い!

NoSQL という新しい「市場」でのキャリア形成にも

■ 合言葉

■ 大切な考え方・キーワード

・ NoSQL で腕を試そう!世の中を変えてしまおう!

Page 26: Devsumi2013【15-e-5】NoSQLの野心的な使い方 ~Apache Cassandra編~

■ データベースの変遷

1970年頃

1990年頃

2010年頃

RDB の誕生

SQL の標準化

RDB黄金期

RDB黎明期

NoSQL の誕生

20年

20年

NoSQL黎明期

NoSQL はこれから大きく成長する領域です !

← RDB の処理限界 ・ネット人口の増加・デバイスの増加・ WEB サービスの増加