...

NanaHoshi - EC

by user

on
Category: Documents
21

views

Report

Comments

Transcript

NanaHoshi - EC
Cassandra上でトランザクションを操る
”NanaHoshi”
とその展開例
株式会社エスキュービズム
http://s-cubism.jp/
社名
株式会社エスキュービズム (英名:S-cubism Inc.)
代表取締役
薮崎 敬祐
取締役(CTO)
神谷 浩之
取締役
武下 真典
監査役
角田 好志、加藤 一夫
資本金
1億1675万円
主要株主
オリックスキャピタル株式会社、BIGLOBEキャピタル株式会社 他
設立
2006年5月
所在地
〒105-0011 東京都港区芝公園2-4−1 芝パークビル A館 4階
事業内容
1.EC・小売事業者向けシステムソリューションサービス
2.NoSQLデータベースソリューションサービス「Nanaohoshi」
3.法人向け営業・マーケティング支援「会社なび法人サービス」
4.ネットショップ事業
EC構築オープンソースとして国内シェア No.1
機能性
安全性
+
拡張性
単店舗
単店舗
モール
単店舗
Logi & Sales
モール
単店舗
Logi & Sales
モール
iPad POS
単店舗
Logi & Sales
モール
iPad POS
↑
受注額
Oracle
MySQL
PostgreSQL
|
1K
|
10K
|
100K
|
1M
|
10M
商品数 →
↑
ランニング
Oracle
MySQL
PostgreSQL
|
|
1K
10K
|
100K
|
1M
|
10M
商品数 →
オープンソース
大規模
中小規模
有償
Oracle
MySQL
PostgreSQL
SQL Server
Cassandra
複数キーに渡るトランザクションができない
Cassandra
複数キーに渡るトランザクションができない
↓
決済ができない・業務アプリに向かない
Cassandra
複数キーに渡るトランザクションができない
↓
決済ができない・業務アプリに向かない
↓
バッファ・キャッシュ・Hadoop系へ
if
Cassandra + α
複数キーに渡るトランザクションができる
Cassandra + α
複数キーに渡るトランザクションができる
↓
決済ができる・業務アプリに向いている
Cassandra + α
複数キーに渡るトランザクションができる
↓
決済ができる・業務アプリに向いている
↓
大規模ECサイト構築・在庫管理 etc.
システム利用・提案の幅が広がる
then
オープンソース
有償
大規模
Cassandra
+
Transaction
Oracle
中小規模
MySQL
PostgreSQL
SQL Server
gihyo.jp
gihyo.jp
gihyo.jp
同時に
● CAP定理での誤解
× 3つの保証を提供できない
○ 3つの保証を「同時に」提供できない
「同時」ではなかったら?
● Cassandraの場合
C A P 定理
two of "C", "A" and "P"
Solution: write & read pair
"結果整合性"と関係
"eventual consistency"
書き込み時のみではなく、
読み込み時にも処理を行う
( = "Read Repair")
→ 強一貫性も実現
書き込み時のみではなく、
読み込み時にも処理を行う
( = "Read Repair")
という基本的なアイディアを
トランザクションにも応用すると?!
● 「NanaHoshi」を開発
"BASE"型トランザクション
のコンセプトと似た実装
BA: Basically Available
S : Soft-state ← 重要!
E : Eventual consistency
トランザクションも
全ノードに自動で分散
(管理専用ノードなし)
↓
単一障害点フリーのまま
Web Server
Object mapper
Transaction logic
Abstract access layer
Thrift IF
Cassandra
Web Server
Object mapper
Transaction logic
Abstract access layer
Another IF
Another DB
NEWS: MySQLがSQLパーサを外して高速化
NEWS: MySQLがSQLパーサを外して高速化
→MySQLの利点が消えつつある
→無駄を省いて”APIで操作”が時代の流れ
NEWS: MySQLがSQLパーサを外して高速化
→MySQLの利点が消えつつある
→無駄を省いて”APIで操作”が時代の流れ
→バックエンドとしてMySQLを扱っても同じ
→NoSQLのDBの抽象化が始まる
→フレームワーク
→プログラムレベルでの利用
from nanahoshi.models import *
connection = CassandraConnection()
connection.open()
connection.set_keyspace('TEST')
lockable_1 = ModelLockable(connection, 'key_1')
lockable_2 = ModelLockable(connection, 'key_2')
### Transaction
transaction = ModelTransaction(connection)
try:
transaction.start()
lockable_1.join(transaction)
lockable_2.join(transaction)
lockable_1.load()
lockable_2.load()
lockable_1.data += 10
lockable_2.data -= 10
lockable_1.save()
lockable_2.save()
transaction.end():
except:
transaction.forget()
Soft-state
Soft-state
transaction = ModelTransaction(connection)
Soft-state
transaction = ModelTransaction(connection, key)
transaction.load()
transaction.end()
【Case 1】
transaction作成
↓
保存
カート画面
決済画面
代行会社
Paypal
etc.
transaction読込
↓
終了/ロールバック
決済完了
OK/NG
【Case 2】
transaction作成
↓
保存
データ同期
try
基幹
システム
外部
システム
データ同期
完了/失敗
【Case 2】
transaction作成
↓
保存
データ同期
try
基幹
システム
外部
システム
transaction読込
↓
終了/ロールバック
データ同期
完了/失敗
OK/NG
OK/NG
SaaS on クラウド環境
SaaS on クラウド環境
SaaS on クラウド環境
必要に応じてすべてを
“スケールアウト”
できる時代
【検証数値1】
1台当たり
30 Update/秒
設計・使い方次第では
~100 update/秒
【検証数値1】
10 Update/秒
×
1時間
↓
36,000 Updates
【検証数値1】
30 Update/秒
×
1時間
↓
100,000 Updates
/1台 →数万円/月
もっと必要!?
もっと必要!?
↓
スケーラブルです。
掛け算でOK
【検証数値2】
商品数は現在のところメモリ依存
検証環境では
1000万商品
まで扱えました。
そもそも分散環境なので
並列処理向き
↓
EC+検索+分析
新規にシステム構築、外部ASPへ投
資をする必要性が低くなっていく
Cassandraの標準機能で
データセンター間
を簡単にまたげる
さらに
NanaHoshiとCassandraの分離
したことで・・・
↓
NanaHoshiのサポート:有
&
Cassandraのサポート:有
NanaHoshi本体は
約1000行程度
ソリューションへのご活用・組み込みを
お考えの方に
無償提供を考えております
アンケートにご記入ください
日本Cassandraコミュニティ
ユーザーコミュニティ
企業コミュニティ
ソリューション紹介
実績掲載(非公開含む)
お問い合わせフォーム
共同セミナー
OSS化
etc.
http://excellent-solution.jp/
クラウドAPI
オートスケール
完全二重化
ランニングコストが大きな負担に・・・
インフラ費用
月額ライセンス費用
保守費用
インフラ費用
月額ライセンス費用
保守費用
他社システムの場合
他社システムの場合
Excellentの場合
Excellentの場合
費用
費用
月
月
クラウド利用による保守料削減やアプリケーションによる月額ライセンス費用が削減され、年間で
は大幅なコスト削減が実現。年間4,000万円の削減が実現した企業も。
現状のシステムでは、トラフィックの負担に耐えられない・・・
Internet
Internet
想定外のアクセス
想定外のアクセス
ファイアウォール
ファイアウォール
ロードバランサ
ロードバランサ
SSL
SSL
サーバを
自動追加
トラフィックに耐えれず、システムダウン
キャッシュサーバ
Web#1
Master
DB
Web#2
Slave
DB
キャッシュサーバ
Web#1
Master
DB
Web#2
Web#3
Slave
DB
Excellentでは、クラウド環境を利用することによりトラフィックの増化に伴い、オートスケールでサーバを増強い
たします。TV通販やプロモーションなどのトラフィックの増化にも安定して対応可能。
売上が思うようにあがらない・・・
ECサイト
ECサイト運営者
サイト運営者
店舗
ECサイト
ECサイト
Amazon
基幹システム
店舗と各ECが別々の運用
店舗
ECサイト
ECサイト運営者
サイト運営者
ECサイト
ECサイト
Amazon
楽天市場
楽天市場
EC・
EC・店舗の
店舗の販促 基幹システム
システムを連携させることで、運用人員を減らし、
余った人員が販促に専念し、売上向上
各システム間を有効に連携させることで、最適な人員配置を実現し、コスト削減とともに、売上拡大の為の攻
めのマーケティング業務を推進する体制を構築することが可能に。
■@ニフティストア・・・ECモール
ニフティの運営するECサイト
・@ニフティストアのECサイト
・仕入先担当、倉庫担当もEC-Orange画面を
利用し発注~出荷までをほぼ自動化
会員数:13,000名(2010年7月)
商品数 : 200,000点
ページビュー : 120万/月
@NiftyIDとのシングルサインオン
■JJモード・・・雑誌連動EC
JJ-modeサイト
・女性雑誌「JJ」と雑誌掲載商品が連動した
ECサイト
会員数:69,500名(2010年5月)
商品数 : 4,300点
ページビュー : 1,926万/月
(PC:1,326万/月、MB:600万/月)
JJmodeメルマガ会員数 : 39,200人
(PC:28,000名、MB:11,200名)
■会社なび/就職活動・・・SNS
会社ナビ/就職活動サイト
・エスキュービズムが運営するSNS就職活動サ
イト
・スマートレイアウト機能を装備し、多種多様な
機能をアプリとしてレイアウトする斬新なイン
ターフェイスを採用
・アバターなどSNS固有の機能にも対応
・関連アプリはiPhoneで30万ダウンロードを記
録し、無料アプリランキング1位に
ご清聴ありがとうございました!
Fly UP