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
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革 NEW
  2. 2
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  3. 3
    より使いやすくなったPHP 8.4の新機能──クラス定義や言語仕様とデータベース関連の強化ポイント
  4. 4
    Google、社内AIエージェント「Google Agentspace」発表 NEW
  5. 5
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  1. 6
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  2. 7
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 8
    「イテレータ」 ~マンガでプログラミング用語解説
  4. 9
    Fish Shell 4.0 ベータ版リリース、C++からRustに移行
  5. 10
    Amazon ECSのオブザーバビリティが強化、監視に「Amazon CloudWatch Container Insights」の機能を利用可能に NEW

アクセスランキング

  1. 1
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革 NEW
  2. 2
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  3. 3
    より使いやすくなったPHP 8.4の新機能──クラス定義や言語仕様とデータベース関連の強化ポイント
  4. 4
    Google、社内AIエージェント「Google Agentspace」発表 NEW
  5. 5
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  6. 6
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  7. 7
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  8. 8
    「イテレータ」 ~マンガでプログラミング用語解説
  9. 9
    Fish Shell 4.0 ベータ版リリース、C++からRustに移行
  10. 10
    Amazon ECSのオブザーバビリティが強化、監視に「Amazon CloudWatch Container Insights」の機能を利用可能に NEW
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  6. 6
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  7. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  8. 8
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  9. 9
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  10. 10
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表

イベント

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

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

メールバックナンバー

アクセスランキング

  1. 1
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革 NEW
  2. 2
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  3. 3
    より使いやすくなったPHP 8.4の新機能──クラス定義や言語仕様とデータベース関連の強化ポイント
  4. 4
    Google、社内AIエージェント「Google Agentspace」発表 NEW
  5. 5
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  1. 6
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  2. 7
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  3. 8
    「イテレータ」 ~マンガでプログラミング用語解説
  4. 9
    Fish Shell 4.0 ベータ版リリース、C++からRustに移行
  5. 10
    Amazon ECSのオブザーバビリティが強化、監視に「Amazon CloudWatch Container Insights」の機能を利用可能に NEW

アクセスランキング

  1. 1
    アジャイル開発の推進において、必ずしも"すごい人"は必要ない──現場のエンジニアがDevOps推進で実現する組織改革 NEW
  2. 2
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  3. 3
    より使いやすくなったPHP 8.4の新機能──クラス定義や言語仕様とデータベース関連の強化ポイント
  4. 4
    Google、社内AIエージェント「Google Agentspace」発表 NEW
  5. 5
    テストは増え続ける、でもボトルネックにはできない──テスト効率化の2つのカギを朱峰 錦司氏が解説!
  6. 6
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  7. 7
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  8. 8
    「イテレータ」 ~マンガでプログラミング用語解説
  9. 9
    Fish Shell 4.0 ベータ版リリース、C++からRustに移行
  10. 10
    Amazon ECSのオブザーバビリティが強化、監視に「Amazon CloudWatch Container Insights」の機能を利用可能に NEW
  1. 1
    いいエンジニアになるための2つのポイント ──元Google技術者・石原氏が説く「シリコンバレー流ソフトウェア開発術」
  2. 2
    「CUDA」 ~マンガでプログラミング用語解説
  3. 3
    ITエンジニア本大賞2025、投票締切直前! みんなで選んだ歴代の大賞本を振り返って一挙紹介
  4. 4
    デスクトップアプリを開発しよう! 「Rust」と「Tauri 2.0」の基本情報と環境整備の仕方を解説
  5. 5
    2024年12月に開催される注目のITエンジニア向けカンファレンス5選
  6. 6
    日本在住の英語を話すソフトウェア開発者、年収の中央値は950万円に
  7. 7
    デスクトップアプリ開発に必要な「Rust」の文法を理解しよう
  8. 8
    管理職の24.1%、今後管理職を「続けたくない」と回答。理由は「責任やストレス」が最多に
  9. 9
    VSCodeをドキュメント作成に活用――テキストエディタ、Markdownエディタの設定と拡張機能を解説
  10. 10
    2024年の提示年収が高いプログラミング言語は? paiza調査によるランキングが発表