SHOEISHA iD

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

連載記事

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

CodeZine BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。

書籍に関する記事を見る

'); googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRenderEnded', function(e) { var ad_id = e.slot.getSlotElementId(); if (ad_id == 'div-gpt-ad-1659428980688-0') { var ad = $('#'+ad_id).find('iframe'); if ($(ad).width() == 728) { var ww = $(window).width(); ww = ww*0.90; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/728+","+ww/728+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/728+","+ww/728+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/728+","+ww/728+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/728+","+ww/728+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(90*ww/728)+"px;width:"+728+"px;}", 0 ); } else { if ($(window).width() < 340) { var ww = $(window).width(); ww = ww*0.875; var style = document.createElement("style"); document.head.appendChild( style ); var sheet = style.sheet; sheet.insertRule( "#div-gpt-ad-1659428980688-0 iframe {-moz-transform: scale("+ww/320+","+ww/320+");-moz-transform-origin: 0 0;-webkit-transform: scale("+ww/320+","+ww/320+");-webkit-transform-origin: 0 0;-o-transform: scale("+ww/320+","+ww/320+");-o-transform-origin: 0 0;-ms-transform: scale("+ww/320+","+ww/320+");-ms-transform-origin: 0 0;}", 0 ); sheet.insertRule( "#div-gpt-ad-1659428980688-0 div{ height:"+(180*ww/320)+"px;width:"+320+"px;}", 0 ); } } } }); }); } else { document.write('
'); document.write('
'); }
【デブサミ秋2015】セッションレポート

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


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

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

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

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」

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

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

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

  1. 1
    アプリ内製化で何が変わった? シチズン時計が実践したアジャイル開発の全貌
  2. 2
    サイバーエージェント、中国発のLLM「DeepSeek R1」を日本語データを用いて追加学習したLLMを公開 NEW
  3. 3
    より使いやすくなったPHP 8.4の新機能──処理系とDOM処理・関数の強化ポイント
  4. 4
    技術に専念したいシニアエンジニアのための、非管理職「ソルバー」というキャリアの形 NEW
  5. 5
    デスクトップアプリ開発に必要なWebページを作るため「HTML5+CSS+JavaScript」の文法を学ぼう! NEW
  1. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  2. 7
    DeepSeek、大規模言語モデル「DeepSeek R1」をオープンソースで公開 NEW
  3. 8
    IBMのエンジニアイベント「IBM TechXchange」で紹介された最新テクノロジートレンドとは NEW
  4. 9
    関西を拠点に活動する6つのコミュニティ!エンジニアを成長させる交流の魅力とは?
  5. 10
    日本マイクロソフト、AI学習プラットフォーム「AI SKILLS NAVIGATOR日本語版」を無償提供

アクセスランキング

  1. 1
    アプリ内製化で何が変わった? シチズン時計が実践したアジャイル開発の全貌
  2. 2
    サイバーエージェント、中国発のLLM「DeepSeek R1」を日本語データを用いて追加学習したLLMを公開 NEW
  3. 3
    より使いやすくなったPHP 8.4の新機能──処理系とDOM処理・関数の強化ポイント
  4. 4
    技術に専念したいシニアエンジニアのための、非管理職「ソルバー」というキャリアの形 NEW
  5. 5
    デスクトップアプリ開発に必要なWebページを作るため「HTML5+CSS+JavaScript」の文法を学ぼう! NEW
  6. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  7. 7
    DeepSeek、大規模言語モデル「DeepSeek R1」をオープンソースで公開 NEW
  8. 8
    IBMのエンジニアイベント「IBM TechXchange」で紹介された最新テクノロジートレンドとは NEW
  9. 9
    関西を拠点に活動する6つのコミュニティ!エンジニアを成長させる交流の魅力とは?
  10. 10
    日本マイクロソフト、AI学習プラットフォーム「AI SKILLS NAVIGATOR日本語版」を無償提供
  1. 1
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう
  2. 2
    日本マイクロソフト、AI学習プラットフォーム「AI SKILLS NAVIGATOR日本語版」を無償提供
  3. 3
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  4. 4
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  5. 5
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  6. 6
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス
  7. 7
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  8. 8
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講
  9. 9
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  10. 10
    アプリ内製化で何が変わった? シチズン時計が実践したアジャイル開発の全貌

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    アプリ内製化で何が変わった? シチズン時計が実践したアジャイル開発の全貌
  2. 2
    サイバーエージェント、中国発のLLM「DeepSeek R1」を日本語データを用いて追加学習したLLMを公開 NEW
  3. 3
    より使いやすくなったPHP 8.4の新機能──処理系とDOM処理・関数の強化ポイント
  4. 4
    技術に専念したいシニアエンジニアのための、非管理職「ソルバー」というキャリアの形 NEW
  5. 5
    デスクトップアプリ開発に必要なWebページを作るため「HTML5+CSS+JavaScript」の文法を学ぼう! NEW
  1. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  2. 7
    DeepSeek、大規模言語モデル「DeepSeek R1」をオープンソースで公開 NEW
  3. 8
    IBMのエンジニアイベント「IBM TechXchange」で紹介された最新テクノロジートレンドとは NEW
  4. 9
    関西を拠点に活動する6つのコミュニティ!エンジニアを成長させる交流の魅力とは?
  5. 10
    日本マイクロソフト、AI学習プラットフォーム「AI SKILLS NAVIGATOR日本語版」を無償提供

アクセスランキング

  1. 1
    アプリ内製化で何が変わった? シチズン時計が実践したアジャイル開発の全貌
  2. 2
    サイバーエージェント、中国発のLLM「DeepSeek R1」を日本語データを用いて追加学習したLLMを公開 NEW
  3. 3
    より使いやすくなったPHP 8.4の新機能──処理系とDOM処理・関数の強化ポイント
  4. 4
    技術に専念したいシニアエンジニアのための、非管理職「ソルバー」というキャリアの形 NEW
  5. 5
    デスクトップアプリ開発に必要なWebページを作るため「HTML5+CSS+JavaScript」の文法を学ぼう! NEW
  6. 6
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  7. 7
    DeepSeek、大規模言語モデル「DeepSeek R1」をオープンソースで公開 NEW
  8. 8
    IBMのエンジニアイベント「IBM TechXchange」で紹介された最新テクノロジートレンドとは NEW
  9. 9
    関西を拠点に活動する6つのコミュニティ!エンジニアを成長させる交流の魅力とは?
  10. 10
    日本マイクロソフト、AI学習プラットフォーム「AI SKILLS NAVIGATOR日本語版」を無償提供
  1. 1
    ガントチャートをWebアプリに組み込める「ガントシート」でプロジェクト管理機能を作成してみよう
  2. 2
    日本マイクロソフト、AI学習プラットフォーム「AI SKILLS NAVIGATOR日本語版」を無償提供
  3. 3
    1/10まで全文無料公開、人気の入門書シリーズ『いきなりプログラミング Androidアプリ開発』
  4. 4
    ITエンジニア本大賞2025、ベスト10選出! 技術書部門とビジネス書部門の大賞はどうなる!?
  5. 5
    実はITエンジニアの設計力が求められるkintone、その仕組みとポイントを事例に学ぶ
  6. 6
    C# 13の新機能を理解する――paramsコレクションと新しいロックセマンティクス
  7. 7
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革
  8. 8
    総務省、データサイエンス・オンライン講座「誰でも使える統計オープンデータ」をリニューアル開講
  9. 9
    "けしからん"精神が切り拓く未来──IPA登氏が語る、技術大国・日本が目指す復活戦略
  10. 10
    アプリ内製化で何が変わった? シチズン時計が実践したアジャイル開発の全貌