House」はTwitter社のエンジニアと直接情報交換ができるオフラインイベントで、すでにサンフランシスコの本社では何度か開催している。Japanのオフィスで開催された。季節外れの大型低気圧により天候は荒れ、開催すら危ぶまれたが、結果としては多くのエンジニアが集まり盛況なイベントとなった。JapanのオフィスOpenJDKにも参加するTwitterのアーキテクチャ最初に講演を行ったのはTwitterのアーキテクチャのディレクターであるロブ・ベンソン氏。なでしこジャパンや天空の城ラピュタを例に挙げ、予測不可能で急激な負荷上昇がいつでも発生し得るというTwitterのサービスの性質と、それに耐えうるシステムをいかに構築しているかを語った。鍵となるのは処理の非同期化とバックエンドシステムの疎結合化だ。莫大なI/O、そして、ほとんどを占める参照系の処理と、ごくわずかな永続化処理をスケールさせるため、いかに分散させているか詳細に解説した。Rails(以下、Rails)ベースのモノリシックなアプリケーションだったという。大規模な分散型システムを効率良く運用するため、現在はフロントエンド部分にRailsのレイヤを残したままバックエンドのロジック部分はサービスとして分離しており、OpenJDKをランタイムにしているという。2012の基調講演にもベンソン氏はゲストとして登壇し、TwitterのOpenJDKへの参加や、今後のJavaへの期待などを語った。architecture」という講演でも、Twitterのアーキテクチャについて語った。Stahl氏(右)講演の様子は、Togetterで確認してほしい。ハイパフォーマンスなTwitterを支える「Finagle」Twitterでは開発言語にJavaやScalaを多用しており、多数のサービス群を独自のRPCフレームワークであるFinagleを使って疎結合にしたTwitterならではのユニークなアーキテクチャになっている。Call)フレームワークで、ハイパフォーマンスのネットワークサーバ/クライアント基盤である「Netty」の上に構築されている。kwoutFinagleはHTTPやMemcached、Kestrel、Thriftといったマルチプロトコルをサポートしているだけではなく、リモートメソッドの非同期呼び出しを簡単に実現できるのが特徴だ。複数のサービス呼び出しが必要なロジックのパイプライン化(多重同時処理)を簡単に実現してパフォーマンスの向上を図れるわけだ。Scalaで書かれているためJVM系の多言語(JavaやGroovy、Scala)もサポートしている。Japanのエンジニアである本稿の筆者だ。APIのオープンソースJavaライブラリである「Twitter4J」の開発もしている。kwoutTwitterでは多数のオープンソースソフトウェアを利用していることに触れるとともに、内部で開発したプロダクトをオープンソース化することにも熱心に取り組んでいる。TwitterのリリースするCSSフレームワークである「Bootstrap」はGitHub上で最も人気のある(Fork数の多い)プロジェクトだ。kwoutBootstrapは、いま非常に話題のプロジェクトなので、ご存じの方も多いのではないだろうか。WebデザインやCSSに明るくなくても見栄えの良いサイトを作れるフレームワークで、最近ローンチしたWebサービスでもBootstrapをデザインのベースにしたものは多い。WordPressやDrupalといった人気のCMSもすでに対応済みだ。コンパイル型テンプレートエンジン「Hogan.js」また、今後注目のプロジェクトとしてTwitterが開発した高速なテンプレートエンジン「Hogan.js」を紹介した。Bootstrapほど注目されてはいないが、デスクトップブラウザからモバイルブラウザまで使えて、すでにTwitterでも多くの場所で使っている。Time)コンパイルしてJavaScriptに変換する仕組みになっている。よって、実行時にはテンプレートの解釈が不要で動作が高速になる。Hogan.jsのテンプレート表記方法は独自のものではなく、やはりオープンソースの「Mustache」の文法に沿っている。Mustache記法は多数の言語でパーサが用意されていて、JavaScriptやRuby、Node.jsまで広くサポートしている。kwoutMustacheは一般的な動的テンプレートエンジンなので、テストデータさえ用意しておけばデザイナがHTML/CSSコーディングをしながらレンダリング結果をプレビューできる。デザインの効率性と実行時のパフォーマンスを兼ね備えたのがHogan.jsといえる。リアルタイム分散処理基盤「Storm」Twitterは2011年9月にリアルタイム分散処理基盤「Storm」をオープンソースとして公開している。Twitterのツイートを解析するシステムとしてBackType社が作ったものを買収して公開した。今後も、Twitterが買収したものがオープンソースとして公開されるということが続くかもしれない。MySQLの独自ツール公開、Apacheの公式スポンサーにまたTwitterではMySQLを使っているが、先日さまざまなMySQL用のツールを公開したのも注目だ。詳細は、記事「Twitter、MySQLの独自ツールをGitHubで公開」を参照してほしい。Foundation(ASF)に出資することも発表するなど、オープンソースへの接近に勢いを増している。OS」を開発していることで有名な「ひげぽん」こと蓑輪太郎氏は、1月にTwitterに入社したばかり。kwout現在は主にフロントエンドの日本市場向け機能の開発を担当している。本社サンフランシスコと東京という地理的・時間的な壁を越えながら、どのように仕事をしているかを説明した。朝はビデオ会議を行い本社と打ち合わせをし、午後はコーディングに没頭できる「幸せエンジニア」になれる時間を確保できているとのこと。「幸せエンジニア」蓑輪太郎氏Twitterの今後、日本とオープンソース3人のエンジニアの講演の後は、ピザやビールをつまみながらの懇親会が行われた。質問責めにあう蓑輪氏これまで、いわばベールに包まれていた「Twitterの中」についての情報を渇望していた技術者たちは矢継ぎ早に質問を繰り出し、3人は1つ1つ丁寧に答えていた。ベンソン氏は日本語は話せないながらも質問に対してホワイトボードを使いながら事細かに解説していたのが印象的だ。Houseは定期的に開催していくとのことだ。CEOのコストロ氏来日、「Twitterが距離を近づける」)。Japanの今後に期待してほしい。Twitterは、ほかにもScalaのシャーディング・フレームワーク「Gizzard」やHadoopのMapReduceジョブをScalaで簡単に書くためのライブラリ「Scalding」など、面白そうなオープンソースプロジェクトを持っている。気になる方は、TwitterのGitHubをフォローしてみてはいかがだろうか。ポケットリファレンス』書評。Twitter4J開発者ならではの分かりやすいAPI技術解説が見所だ。iPad/iPhone開発も解禁になって再び要注目のTitanium。TwitterやFacebookミニフィードの登場で、盛り上がるライフストリーム。(2017/7/24)子ども向け電子工作&プログラミング用マイコンボード「chibi:bit」の基本的な使い方を紹介する企画。(2017/7/20)子ども向け電子工作&プログラミング用マイコンボード「chibi:bit」の基本的な使い方を紹介する。