Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
詳説 
楽天のデータベースアーキテクチャ史 
Vol.01Nov/13/2014 
Kazuki Yunoue 
Global Operations Department, RakutenInc. 
http://www.rakuten.co....
2 
自己紹介 
2008年楽天株式会社入社 アプリケーションエンジニアとして 
2011年突如データベース管理者(DBA)に転身 
当時の課長 「アレ、そういえば言ってなかったっけ? 来週から兼務付くから」
3 
2つの「wow」 
(プライベート)クラウドデータベース 
(プライベート)クラウドサービス
4 
楽天のデータベースの歴史とは 
その2つを獲得する歴史でもある
5 
(プライベート)クラウドデータベース
6 
楽天のデータベースアーキテクチャー史 
•VCS時代 
•IA+SSD時代 
•クラウド時代
7 
VCS時代
8 
Architecture : VCS型 
SAN 
Active 
VIP 
Standby
9 
Architecture : VCS型(10x) 
SAN 
Active 
Standby 
A 
B 
C 
D 
E
10 
Episode : トラブルが発生すると延焼しやすい 
SAN 
Active 
Standby 
A 
B 
C 
D 
E
11 
Episode : パラメータ変更します! 
Aデータベース管理者 
「○○のパラメータを変更したいんですが、、」 
Bデータベース管理者 
「問題ないか確認します」 
Aデータベース管理者 
「○○のパラメータを変更したいんですが、、...
12 
Episode : 検証、ただしスペックは劣る 
アプリケーションエンジニア 
「データベースの検証をしたいんですが、、」 
データベース管理者 
「検証環境をご用意しますね」 
データベース管理者 
「本番環境に比べて著しくスペックが...
13 
Episode : 上場、M&A 
楽天の歴史
14 
増え続けるサービス 
EC事業 
パーソナルユース事業 
金融事業 
トラベル・ブッキング事業 
プロスポーツ事業 
通信事業 
デジタルコンテンツ事業
15 
Architecture : VCS+レプリケーション型 
SAN 
Active 
VIP 
Standby 
Slave 
Slave 
Slave
16 
Architecture : VCSシャーディング型 
Application / System
17 
Episode : スーパーSALE 
圧倒的なパフォーマンスの要求
18 
IA+SSD時代
19 
SSD 
大きなトラフィックの獲得
20 
Architecture : VCS+IA+SSD型 
SAN 
Active 
VIP 
Standby 
Slave 
Slave 
Slave
21 
Architecture : IA+SSDカスケード型 
Active 
Standby 
Backup 
VIP 
3時間の処理が10分に
22 
Episode : 終わらないキャパシティプランニング 
データベース管理者 
「サーバのスペックはいかがしましょう?」 
一同 
「うーん」 
データベース管理者 
「メモリサイズは?」 
一同 
「うーん」 
データベース管理者 
...
23 
Episode : 全体最適で見ると 
オーバースペック 
Used rate ?% 
Used rate ?% 
Used rate ?%
24 
Episode : 増殖するスレーブノード 
管理の煩雑化
25 
クラウド時代
26 
楽天のDBMS 
81% 
10% 
7% 
2% 
Oracle 
Informix
27 
プライベートクラウド上のMySQLの比率 
70%
28 
RakutenInfrastructure as a Service 
Storage 
Blade Server 
SSD,FC,NL 
VMware 
高速ネットワーク 
マネージドコンピューティング 
数種類のストレージ
29 
とにかく構築が簡単 
OS 
イメージ
30 
セットアップ済みMySQL用VM 
VM 
バックアップ 
モニタリング 
各種ツール
31 
HA 
Host Server 
Host Server 
VM 
VM 
数分以内で完了
32 
LVMによるオンラインのDISK拡張 
MySQL 
LVM 
Device 
Device 
Device
33 
Episode : 小さく作って、大きく育てる 
キャパシティプランニングが不要
34 
バックアップ 
OS 
イメージ 
Host Server 
VM 
Host Server 
VM 
コピー構築も簡単
35 
Episode : セール前の緊急増強 
アプリケーションエンジニア 
「緊急でスレーブを5台追加したいんですが、、」 
データベース管理者 
「はい」 
アプリケーションエンジニア 
「!?」 
余裕
36 
パフォーマンス 
フラッシュストレージが選択可能
37 
IA+SSD型に匹敵 
3222 
2867 
2274 
0 
500 
1000 
1500 
2000 
2500 
3000 
3500 
IA+SSD 
FS 1 
FS 2 
Throughput
38 
Data Store 
Data Store 
ストレージのモーション 
VM 
オンライン
39 
Episode : 気軽にストレージプランを変更 
松 
竹 
梅 
オーバースペックからの解放
40 
困った点:FO=再起動 
リカバリーが必要な場合もある
41 
困った点:FOの時間 
VCS = クラウド< IA+SSD
42 
困った点:見方によっては共用環境 
他ホストの影響は0ではない
43 
困った点:アーキテクチャーの複雑化 
トラブル調査の仮想独特な感覚
44 
海外を含めた更なるビジネスの拡大 
Internet Services 
(1997) 
(2003) 
(2006) 
(2007) 
(2010) 
in USA 
EC in 
France 
(2009) 
(2004) 
(2...
45 
(プライベート)クラウドデータベース 
あらゆるビジネス、 
あらゆるシステムの要求に、 
迅速に応える唯一の方法
46 
(プライベート)クラウドサービス
47 
VCS時代、IA+SSD時代のDBA 
•古典的なチケッティングシステムで受付 
•内容を精査、確認 
•オフィススイートやテキストで情報管理 
•作業はレガシーなシェルやPerl 
スピードや柔軟性の欠如
48 
DBAをさらに追い込む要因 
迅速かつ多様な要望 
•ウェブアプリケーションの急速な発展 
•アジャイル、デプロイメントの急速な発展 
•NoSQLの台頭 
•パブリッククラウドサービスの台頭
49 
2012年、Webのインターフェースを自作
50 
驚くほどの効果 
•業務フローの整備 
•プロダクトの統一 
•工数の大幅な削減
51 
業務を再定義する 
クラウドサービスのように
52 
分かりやすい 
強固なインターフェースで迷わない
53 
計測しやすい 
0 
100 
200 
300 
400 
500 
600 
2013/10 
2013/12 
2014/ 2 
2014/ 4 
2014/ 6 
2014/ 8 
2014/10 
ALMOND 
Regist...
54 
楽しい 
※画像はイメージです。
55 
MySQL Monitoring Service
56 
様々なメトリックスをグラフィカルに表示 
•status 
•load average 
•disk, log size 
•memory 
•disk IO 
•error log 
•slow log 
•slave behind ...
57 
簡単なインストール 
fluent-plugin-almond
58 
fluentd+HTTP 
Web 
plugin 
HTTP API 
HTTP 
場所を選ばないマルチプラットフォーム
59 
利用サーバ数は右肩上がり 
0 
100 
200 
300 
400 
500 
600 
2013/10 
2013/11 
2013/12 
2014/ 1 
2014/ 2 
2014/ 3 
2014/ 4 
2014/ 5 ...
60 
DEMO 
URL
61 
MySQL Information Service 
phpmyadminのような情報表示
62 
APIによる外部ツールとの連携 
bot 
他チームのツール 
情報の一元管理
63 
その他のサービス 
権限作成 
DB作成 
アプライアンス環境の提供 
and more 
as a service 
Q&A
64 
(やりたいこと)MySQL Backup Service 
Web 
agent 
API 
HTTP 
Data Store 
HTTP API
65 
(やりたいこと)New HA MySQL Platform Service 
Web 
agent 
HTTP 
HTTP API 
VIP
66 
クラウドサービス化に思うこと 
•業務のアクセシビリティが重要 
•ビジネスフローは複雑化しやすい 
•価値を明示し、提供できる人 
グルーバル化におけるDBAの生き方か
67 
ワークショップのススメ 
あなたの仕事as a service
68 
おわりに 
2つの「wow」
69 
Thank You! 
ご清聴ありがとうございました。
Upcoming SlideShare
Loading in …5
×

[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシュストレージへ- by 楽天株式会社 湯之上一樹

2,969 views

Published on

楽天のデータベースの歴史は、パフォーマンスやキャパシティーとの戦いだけではなく、急速に拡大と変化を続けるビジネスに対して如何に追従するかの戦いだった。それはデータベース管理者としての存在意義をも揺るがす大きな変革に発展していって…。最新事例を含む、アーキテクチャーパターンとエピソードで紐解く楽天データベース全史。

Published in: Technology

[db tech showcase Tokyo 2014] C34:[楽天] 詳説 楽天のデータベースアーキテクチャ史 -シングルノードから仮想化フラッシュストレージへ- by 楽天株式会社 湯之上一樹

  1. 1. 詳説 楽天のデータベースアーキテクチャ史 Vol.01Nov/13/2014 Kazuki Yunoue Global Operations Department, RakutenInc. http://www.rakuten.co.jp/
  2. 2. 2 自己紹介 2008年楽天株式会社入社 アプリケーションエンジニアとして 2011年突如データベース管理者(DBA)に転身 当時の課長 「アレ、そういえば言ってなかったっけ? 来週から兼務付くから」
  3. 3. 3 2つの「wow」 (プライベート)クラウドデータベース (プライベート)クラウドサービス
  4. 4. 4 楽天のデータベースの歴史とは その2つを獲得する歴史でもある
  5. 5. 5 (プライベート)クラウドデータベース
  6. 6. 6 楽天のデータベースアーキテクチャー史 •VCS時代 •IA+SSD時代 •クラウド時代
  7. 7. 7 VCS時代
  8. 8. 8 Architecture : VCS型 SAN Active VIP Standby
  9. 9. 9 Architecture : VCS型(10x) SAN Active Standby A B C D E
  10. 10. 10 Episode : トラブルが発生すると延焼しやすい SAN Active Standby A B C D E
  11. 11. 11 Episode : パラメータ変更します! Aデータベース管理者 「○○のパラメータを変更したいんですが、、」 Bデータベース管理者 「問題ないか確認します」 Aデータベース管理者 「○○のパラメータを変更したいんですが、、」 Cデータベース管理者 「問題ないか確認します」 Dデータベース管理者 「○○のパラメータを変更したいんですが、、」 Eデータベース管理者 「問題ないか確認します」 膨大な調整
  12. 12. 12 Episode : 検証、ただしスペックは劣る アプリケーションエンジニア 「データベースの検証をしたいんですが、、」 データベース管理者 「検証環境をご用意しますね」 データベース管理者 「本番環境に比べて著しくスペックが低いので、 そこだけご留意ください」 アプリケーションエンジニア 「!?」 リソースの空きは限りなく少
  13. 13. 13 Episode : 上場、M&A 楽天の歴史
  14. 14. 14 増え続けるサービス EC事業 パーソナルユース事業 金融事業 トラベル・ブッキング事業 プロスポーツ事業 通信事業 デジタルコンテンツ事業
  15. 15. 15 Architecture : VCS+レプリケーション型 SAN Active VIP Standby Slave Slave Slave
  16. 16. 16 Architecture : VCSシャーディング型 Application / System
  17. 17. 17 Episode : スーパーSALE 圧倒的なパフォーマンスの要求
  18. 18. 18 IA+SSD時代
  19. 19. 19 SSD 大きなトラフィックの獲得
  20. 20. 20 Architecture : VCS+IA+SSD型 SAN Active VIP Standby Slave Slave Slave
  21. 21. 21 Architecture : IA+SSDカスケード型 Active Standby Backup VIP 3時間の処理が10分に
  22. 22. 22 Episode : 終わらないキャパシティプランニング データベース管理者 「サーバのスペックはいかがしましょう?」 一同 「うーん」 データベース管理者 「メモリサイズは?」 一同 「うーん」 データベース管理者 「DISKサイズは?」 一同 「うーん」 データベース管理者 「数年後のトレンドは?」 一同 「うーん」 困難な数年後の予測
  23. 23. 23 Episode : 全体最適で見ると オーバースペック Used rate ?% Used rate ?% Used rate ?%
  24. 24. 24 Episode : 増殖するスレーブノード 管理の煩雑化
  25. 25. 25 クラウド時代
  26. 26. 26 楽天のDBMS 81% 10% 7% 2% Oracle Informix
  27. 27. 27 プライベートクラウド上のMySQLの比率 70%
  28. 28. 28 RakutenInfrastructure as a Service Storage Blade Server SSD,FC,NL VMware 高速ネットワーク マネージドコンピューティング 数種類のストレージ
  29. 29. 29 とにかく構築が簡単 OS イメージ
  30. 30. 30 セットアップ済みMySQL用VM VM バックアップ モニタリング 各種ツール
  31. 31. 31 HA Host Server Host Server VM VM 数分以内で完了
  32. 32. 32 LVMによるオンラインのDISK拡張 MySQL LVM Device Device Device
  33. 33. 33 Episode : 小さく作って、大きく育てる キャパシティプランニングが不要
  34. 34. 34 バックアップ OS イメージ Host Server VM Host Server VM コピー構築も簡単
  35. 35. 35 Episode : セール前の緊急増強 アプリケーションエンジニア 「緊急でスレーブを5台追加したいんですが、、」 データベース管理者 「はい」 アプリケーションエンジニア 「!?」 余裕
  36. 36. 36 パフォーマンス フラッシュストレージが選択可能
  37. 37. 37 IA+SSD型に匹敵 3222 2867 2274 0 500 1000 1500 2000 2500 3000 3500 IA+SSD FS 1 FS 2 Throughput
  38. 38. 38 Data Store Data Store ストレージのモーション VM オンライン
  39. 39. 39 Episode : 気軽にストレージプランを変更 松 竹 梅 オーバースペックからの解放
  40. 40. 40 困った点:FO=再起動 リカバリーが必要な場合もある
  41. 41. 41 困った点:FOの時間 VCS = クラウド< IA+SSD
  42. 42. 42 困った点:見方によっては共用環境 他ホストの影響は0ではない
  43. 43. 43 困った点:アーキテクチャーの複雑化 トラブル調査の仮想独特な感覚
  44. 44. 44 海外を含めた更なるビジネスの拡大 Internet Services (1997) (2003) (2006) (2007) (2010) in USA EC in France (2009) (2004) (2008) (2008) (2011) EC in UK EC In Austria In Indonesia in Brazil (2005) (2009) EC In Thailand (2010) Internet Finance (2000) (2001) (2005) In Germany (2012) EC in Malaysia (2013) (2013) In Spain EC In Singapore EC In Japan Online Books, DVD Store Online Hotel Reservation Pay-per-view Video Service Portal Site Performance Marketing In USA Internet Research Internet Auction EC in Taiwan Global eBook Global Video streaming Global Video Streaming Global Social Messaging App (2014) Online Security Brokerage Credit Card E-money Internet Banking Rakuten Life Insurance IP Telephony Professional Baseball Marriage Consultant 1997 2014 (2014) Credit Card Payment By Smartphone (2012) Point Service (2013) Phone Service Online Golf Reservation Others Energy Service Real Café Service Curation Service
  45. 45. 45 (プライベート)クラウドデータベース あらゆるビジネス、 あらゆるシステムの要求に、 迅速に応える唯一の方法
  46. 46. 46 (プライベート)クラウドサービス
  47. 47. 47 VCS時代、IA+SSD時代のDBA •古典的なチケッティングシステムで受付 •内容を精査、確認 •オフィススイートやテキストで情報管理 •作業はレガシーなシェルやPerl スピードや柔軟性の欠如
  48. 48. 48 DBAをさらに追い込む要因 迅速かつ多様な要望 •ウェブアプリケーションの急速な発展 •アジャイル、デプロイメントの急速な発展 •NoSQLの台頭 •パブリッククラウドサービスの台頭
  49. 49. 49 2012年、Webのインターフェースを自作
  50. 50. 50 驚くほどの効果 •業務フローの整備 •プロダクトの統一 •工数の大幅な削減
  51. 51. 51 業務を再定義する クラウドサービスのように
  52. 52. 52 分かりやすい 強固なインターフェースで迷わない
  53. 53. 53 計測しやすい 0 100 200 300 400 500 600 2013/10 2013/12 2014/ 2 2014/ 4 2014/ 6 2014/ 8 2014/10 ALMOND Registration 顧客の利用数や満足度が指標
  54. 54. 54 楽しい ※画像はイメージです。
  55. 55. 55 MySQL Monitoring Service
  56. 56. 56 様々なメトリックスをグラフィカルに表示 •status •load average •disk, log size •memory •disk IO •error log •slow log •slave behind •server info メール、チャット、電話への通知
  57. 57. 57 簡単なインストール fluent-plugin-almond
  58. 58. 58 fluentd+HTTP Web plugin HTTP API HTTP 場所を選ばないマルチプラットフォーム
  59. 59. 59 利用サーバ数は右肩上がり 0 100 200 300 400 500 600 2013/10 2013/11 2013/12 2014/ 1 2014/ 2 2014/ 3 2014/ 4 2014/ 5 2014/ 6 2014/ 7 2014/ 8 2014/ 9 2014/10 2014/11 ALMOND Registration
  60. 60. 60 DEMO URL
  61. 61. 61 MySQL Information Service phpmyadminのような情報表示
  62. 62. 62 APIによる外部ツールとの連携 bot 他チームのツール 情報の一元管理
  63. 63. 63 その他のサービス 権限作成 DB作成 アプライアンス環境の提供 and more as a service Q&A
  64. 64. 64 (やりたいこと)MySQL Backup Service Web agent API HTTP Data Store HTTP API
  65. 65. 65 (やりたいこと)New HA MySQL Platform Service Web agent HTTP HTTP API VIP
  66. 66. 66 クラウドサービス化に思うこと •業務のアクセシビリティが重要 •ビジネスフローは複雑化しやすい •価値を明示し、提供できる人 グルーバル化におけるDBAの生き方か
  67. 67. 67 ワークショップのススメ あなたの仕事as a service
  68. 68. 68 おわりに 2つの「wow」
  69. 69. 69 Thank You! ご清聴ありがとうございました。

×