SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ秋2015】セッションレポート

伊藤直也氏が語る、分散アプリケーションアーキテクチャの現在 ~Reactive SystemとMicroservices【デブサミ秋2015 基調講演レポート】


  • このエントリーをはてなブックマークに追加

 ストリームデータを即時にWebに反映する「リアルタイムWeb」は、TwitterやFacebookなどが普及したことでそう目新しい技術ではなくなった。しかしその実装は、まだまだ力業でなされていることが課題だ。「Developers Summit 2015 Autumn」のKaizen Platform 伊藤直也氏によるセッションでは、リアリタイムWebを実現する分散アプリケーションアーキテクチャの昨今について、「Reactive System」と「Microservices」という2つのキーワードから読み解かれた。

  • このエントリーをはてなブックマークに追加

Kaizen Platform 技術顧問 伊藤直也氏
Kaizen Platform 技術顧問 伊藤直也氏

ストリーム処理は現状、まだまだ力業で乗り切っている

 まず、かつては大量トラフィックとデータを、どのように処理していただろうか。LAMP環境を作り、RDBにデータを溜める方法を取っていたが、複雑なバッチを流すとIOが詰まり障害が起こる、同期処理でWebアプリケーションを書いていると、貯めこんだデータをユーザーの画面にリアルタイムに表示するのが一苦労という課題があったそうだ。昨今は、巨大なデータに対するバッチ処理については、Hadoop、BigQueryなどの活用が当たり前になってきたので、バッチ処理で悩む機会は少なくなった。

 では、バッチ処理ではない処理、次々流れてくるデータをどうやってリアルタイムにアプリケーションに反映するかというストリーム処理については、それもまだまだ力業で乗り切っているのが現状だ、と伊藤氏は言う。例えば、KAIZEN Platformの自社サービスであるABテストサービスについて、ユーザーのサイトの、A案/B案どちらに流れたかといったログデータをリアルタイムで処理するとなると、普通の同期的なWebアプリケーションと全く違った要件になる。

 必然的に、裏側にログを受け取るログサーバーを置き、フロントのWebアプリと通信して、という分散システムになる。現在はこれらの実装を、Node.jsやRuby on Railsなどで疎結合に作っているが、今後どうなるかを見ていくのが、本セッションの主題だ。

標準的なAPIや作り方でリアルタイムWebを目指す「Reactive System」

 2010年ごろから、「リアルタイムWeb」という言葉が聞かれるようになった。Twitter、Facebook、Googleの検索に代表されるこのリアルタイムWebは、ストリームデータを受け取って、ユーザーにインタラクションを伴わせずに、画面に表示するというものだ。

「寿司の写真を見せたかったわけじゃないけど……」と聴衆の笑いを誘う伊藤氏
「寿司の写真を見せたかったわけじゃないけど……」と聴衆の笑いを誘う伊藤氏

 2015年には、リアルタイムWebという言葉は聞かなくなった。廃れたわけではなく、昨今はコモディティ化し、コンシューマー向けサービスではリアルタイムにデータを画面に反映することが当たり前になった。しかし、Pub/Subのミドルウェアを入れて一部だけイベント駆動にしたり、裏でポーリングして画面上位はAjaxを使ってリアルタイムに見せかけたり、JSON over HTTPで同期通信するだけだったりと、相変わらず力業でやっているのが現状だ。

 こうした課題を解決するためのものとして、伊藤氏が見たなかで印象深かったものは、Typesafeの「Reactive Platform」が挙げられる。Typesafeは、ScalaのフレームワークであるPlay Frameworkや、ミドルウェアAkkaなどの開発会社だ。Reactive Platformでは、データがストリーミングで流れてくるようなリアルタイムWeb的なオペレーションを、標準的なAPIと作り方で、よくあるフレームワークで書けるようにするということを目指している。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
分散アプリケーションに求める性質「Reactive Manifesto」

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ秋2015】セッションレポート連載記事一覧

もっと読む

この記事の著者

近藤 佑子(編集部)(コンドウ ユウコ)

株式会社翔泳社 CodeZine編集部 編集長、Developers Summit オーガナイザー。1986年岡山県生まれ。京都大学工学部建築学科、東京大学工学系研究科建築学専攻修士課程修了。フリーランスを経て2014年株式会社翔泳社に入社。ソフトウェア開発者向けWebメディア「CodeZine」の編集・企画・運営に携わる。2018年、副編集長に就任。2017年より、ソフトウェア開発者向けカンファレンス「Developers...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9038 2015/10/23 14:31

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング