JAWS-UG Summit2012にいってきた (2012-03-02)第一日目 その3

ビックデータとクラウドが変えるシステムアーキテクチャ

大谷氏(アマゾン)
神林氏(ノーチラステクノロジー
佐藤一郎氏(国立情報学研究所)@Ichiro_satoh

ビックデータとクラウドが変えるシステムアーキテクチャ(佐藤氏)
  • 分散システムOSやミドルウェアが専門
  • ビックデータが流行っていますが
  • データ量や多様性は本質的でない
    • ビックデータを持っている企業は少ない
  • コース料理:与えられた少量の料理(データ)を最大限に楽しむ
  • ビュッフェ形式:多様な料理(データ)から選ぶ
  • データの前処理が大変、データ形式の変換など
    • 実は前処理にHadoop使ってる
    • 前処理に自前システムを使うのがもったいない
  • 仮説検証
    • 分析してみないと、予想した特性があるかはわからない
  • アプリケーション主導からデータ主導へ
    • 設計だけでなく、運用も含めてデータ主導(Data-driven)
  • データ主導型システムアーキテクチャとは
    • 既存ITシステムは特定アプリケーションを前提に設計・運用
      • システム構成や規模は予測可能
    • ビッグデータではデータと関心事に応じて分析主導やビジネスを用意
  • 中規模以上のITシステムは分散システムとして構築するしかない
    • コアの性能向上は頭打ち
    • コア数やサーバ数を増やす
  • 分散システムは複雑&低信頼性
    • 物理的制約(通信遅延)により、システムの全体情報がえられない
      • 故障を想定したシステム構成・運用
      • 壊れたコンピュータといずれ壊れるコンピュータしかない
  • 1980年代から分散システムの研究が行われてきたが
    • 銀の弾丸はない
    • 30年以上の歴史で分散システムの信頼性&性能を向上させる抜本的な解決策はでていない(おそらく、この先もない)
    • Hadoopは特定の分散処理だけで有効な解決策
  • 自前で分散システムを所有。運用すべきか
    • 分散システムの難しさは専門事業者(AWS)に任せる
    • データやアプリケーションに応じたシステムアーキテクチャ

  • スケラビリティよりも伸縮性
    • 必要になったら拡張、不要になったら縮小
  • 人に縛られない
    • 開発者や管理者に仕事をつくるためのITシステムはいらない
  • ノードの数を増やすのは難しくない、どう減らすのが重要
  • データ共有化
    • データ処理とデータ提供は不可分
  • 処理よりもデータ
    • データ処理とデータ提供は不可分
  • 誰でもシンクタンク
  • 物理世界とサイバー世界の不可分化
    • Cyber-Physical System化
  • シミュレーションとの融合
    • 足りないデータはシミュレーションで補う
ビッグデータの功罪(神林氏)

AsakusaFrameworkの中のひと

  • 基幹のバッチ処理Hadoopによって劇的に速くなる
  • ビッグデータの与えた好影響
    • 景気的な側面
      • 閉塞感にちょっと希望を与えた
        • クラウド・モバイル一本槍の閉塞感に新しい風を吹き込んだ
        • 多少クラウドが混乱気味のなかで、新しいトピックをていきょうした
    • データ分析の再考を促した
      • CRM等で行き詰まった分析に新たな方法を提示した
        • 機械学習等の統計的・確率的な手法の普及の道を開いた

  • 技術的な側面
    • 分散環境の敷居を下げた
      • Hadoopの普及は、かなりプラスになった
        • 敷居が高かった分散処理が普通になってる
        • 分散環境が一般化した
    • 分散インフラの普及にはずみをつけている
      • EMRは引っ張るきっかけになっている
      • クラウドによるハードの恩恵とベストマッチしている
  • 問題点
    • 全体的な雰囲気的な側面
      • ビジネスの側面
        • バブル的な側面はある
        • 実際、どの程度のビジネスになっているのか不明
        • 足元が見えていない。完全なレッドオーシャン
        • CRMやDWHのリプレースなのに新しい中身がない。売れない
    • 過去の蓄積を軽視
      • 既存のCRM以上のモノが提供できていない部分もある
      • そもそもCRM(DWH)の過去の歴史・積み上げを知らない人が騒いでいる
      • 既存のちゃんとした統計のプロたちには迷惑
      • 機械学習なんて甘くない
  • 品質の問題
    • 割りとナイーブな実装が許容されている
    • 未だにまともなテスト環境がない
    • ビッグトップとか、かなり最低の出来(Apache Bigtop http://incubator.apache.org/bigtop/)
    • 過剰適用
      • なんでもHadoopに入れますとか違う
      • レイテンシー要求とか、勘違い多すぎる
      • RDBMSでできる部分はたしかにある
        • とはいえ、RDBMSの使い方もおかしい
        • なんでもACIDとか、いつでもDISTINCTとか(うちのシステムは全部のSQLにとりあえずdistinctつけてますw)
    • 運用の問題が軽視
      • 運用軽視がひどい
      • 軽視というのは「簡単にできる」と思っている人が多い
      • 障害対策のノウハウが普及していない
      • いい加減自分でもつデメリットとか考えた方がいい
    • スモールデータの軽視
      • データサイズが小さいと無視
      • データが小さいのでHadoopは使わないという話もある
      • 全体の8割は小さい処理
        • 全体の2割で8割の時間のロングバッチ
    • 技術的な不勉強を助長
      • ParellelとConcurrentの区別がついていない
      • インフラにより過ぎている
        • サーバ・ネットワーク・ストレージだけ?
      • 設計技法とか絶望的
        • キーの設計(手法)とか知られていない
  • ビッグデータについて
    • もうビックでもないし聞きあきた
  • 分散処理について
    • 勉強しているひといない
    • 研究内容がまったく普及していない
      • MapReduceは(分散処理手法の)ごく一部
  • RDBMSについて
    • SQLでバッチとかやめてほしい
ディスカッション

そもそもビッグデータとは何だったのか?
大谷「アプリの設計ができるひといない。米国はデータアナリストが存在する」
佐藤「データサイエンティストはやめよう。データエンジニアにしよう。サイエンスは成功のみを扱う、エンジニアは成功も失敗も扱う。失敗が重要。ビッグデータの取り上げ方は、日本と米国とは違う。日本では現場でうすうすきづいていることを取り上げること。現場がデータを読んで商品をかえることができないと意味ない」
神林「データマイニングはいまくいかない。組合せが爆発して計算量が多すぎて追いつかない。組合せを実装するだけで意味ある。失敗事例を掘り起こしていくことが重要。失敗したことの再チャレンジのチャンス」
大谷「トライアンドエラーを許容して最適解を求めるお客さんが多い」

人に縛られないとは?
佐藤「クラウドを使うかどうかは担当者。自分のスキルが活かせないと拒否するというひとがいる。メインフレームは勘定系や特殊なトランザクションではいまでも有効。業務系でもスキルによってシステムが縛られるべきでない」
神林「SIerとSIは区別する必要。SIerは仕事をつくることで人月稼働率、価値をどう届けるかは考えてない。これは破綻する。人が減ってる。35歳限界説は使い倒せる年齢。業界の人が半分になって、これからさらに半分になる。」

大谷「サービスをやっているひとは、クラウドを使ってトライアンドエラーでやっている。受託ではスキルが追いついていない。分散処理では研究が進んでいるが、業務まで落ちていない。」
佐藤「分散システムが使われていないのは反省しなければいけない。業務システムで使われているアルゴリズムは1990年以前のもの。分散システムのアルゴリズムを検証するための研究になってしまっている。分散システムの物理的な制約を知らないとよいシステムを作れない。AWSやAzureを使っているだけでは分散システムを使っていることにならない。分散システムの勉強をしてほしい。コンピュータを複数台用意して分散システムを自前で作るのはおしゃれじゃない。システム的な制約を学んで、それをカバーするものは何か知ってほしい」
神林「データ分割は知られている。タスクの分割は研究されているが普及していない。タスクをどう分割してパラレルで走らせるかは、研究されているが知られていないし実装されていない」

大谷「ビッグデータの未来。分散システムで分析することはどうなる?
大谷「ビッグデータの量は日本では多くない。データの桁が違うが、データの粒度は細かい。ニーズは多い
佐藤「ひとつの企業のデータは大したこと無い。データの共有がはじまれば本来のビッグデータの始まり。ビックデータの先、本来はわれわれの世界はコンピュータの世界に置き換えて何が起きるかを知ること、物理やセンサーもそう。現実世界のモデリングを行うこと。そいった世界が10年後かどうかわからないがやってくる。シミュレーションの精度はあがっている。データのないところはシミュレーションで補う。シミュレーションと現実世界がマージされることが起きてくる、20,30年先
神林「人が知りたいことをモデル化してやることにいく。特にセンサーデータをつかうもの

大谷「分散処理やビッグデータはインフラだけでなくて、どう作るかは開発者に頑張るところ。CanDOの姿勢でやってみる、とりこんでもらいたい」