Twitterエンジニアって、どんなお仕事? 本人たちに聞いてきた
ブロードバンド
フォトレポート
注目記事
◆Twitterの分散型システム
Rob Benson氏は、VMwareなどでエンジニアとして働いていた経験を持ち、現在はTwitterでインフラストラクチャーグループのエンジニアディレクターを務めている。プレゼンではTwitterで分散型システムをいかに構築しているかを説明した。
「スポーツのイベントや東日本大震災に代表されるような突発的な事象が起きた場合、急激なTPS(Transaction Per Second)が発生するが、どれくらいのトランザクションが発生するかは事前に予測できず、そのために準備することもできない。多くのI/Oが発生しても安定したサービスを提供しなければならない」とBenson氏は説明する。
現在TwitterはJavaプラットフォームでScalaによって構築されている。以前はRubyを使っていたが、「Javaの方がスレッドモデルが効率的だから」(Benson氏)という理由で移行したという。また、Twiterにおける「Remote Procedure Call」(遠隔手続呼出)システムは「Finagle」と呼ばれており、これはNetty(Javaで非同期なイベント駆動型のネットワークアプリケーションの作るためのプラットフォーム)上においてScala(Javaで動作するプログラミング言語の一種)で記述されている。
その結果、Rubyに比べればデバッグが難しくなったものの、分散環境でも効率的にロギングできる工夫をした。また、膨大なアクセスやリクエストの中から問題点をピンポイントで発見できるような仕組みも構築。仮想化されたレイヤーで永続化ストアを分離することで、万が一障害が発生してもルーターのレイヤーで障害ノードへトラフィックが行かないようにできるという。
◆オープンソースに支えられているTwitter
次に、Twitter Japanのエンジニアである山本裕介氏がTwitterとオープンソースについてプレゼンテーションをおこなった。
Twitterのエンジニアは、分散型バージョン管理システムであるgitのプロジェクトホスティングサービス「github」を活用している。現在Twitterのgithubメンバーは133名。ここで公開されているリポジトリの大半はScalaベースのプロジェクトだという。
TwitterではCSSフレームワークとして「Bootstrap」を、JavaScriptテンプレートエンジンとしてテンプレート言語MustacheのコンパイラーであるHogan.jsをそれぞれオープンソース化している。
Mustacheには、「HTMLに近い形で書き出すことができてデザイナーフレンドリーなこと、高度なプログラミングスキルを必要としないこと」(山本氏)というメリットがあるが、一方でパフォーマンスが出ないという問題がある。この対策としてHogan.jsでは、ランタイム時ではなくサーバサイドでコンパイルする仕組みをとったことで、ブラウザ環境にとらわれない高速化を実現した。
Hogan.jsはツイートの埋め込みやBootstrapのビルドなど、Twitterの至る所で活用されているとのことだ。
◆英語力よりも「ちゃんとコードが書けるか」
最後に蓑輪太郎氏が登場。2ch発の「Mona OS」を開発したことで有名な蓑輪氏が、Twitterエンジニアとして日々どのような業務に当たっているかを説明した。
開発は国籍や人種を超えてグローバルなチームが組織されており、蓑輪氏のチームは、RtL(Right to Left:右から左に読む言語)対応や、日本のフィーチャーフォン向けモバイルサイト、また言語最適化のバックエンド対応等をおこなっている。
同僚とのコミュニケーションにはGoogleのチャットをつかったり、バージョン管理分散開発には先に紹介したGitの他に、プロジェクト管理には「JIRA」、CI(継続的インテグレーション)には「Jenkins」、レビューツールとして「ReviewBoard」を活用。このほか、内製のツールなども利用しているとのことだ。
必要とされる英語のスキルは、メールやドキュメントはもちろん、チャットやミーティングなど業務のほとんどで使用するが、蓑輪氏によれば「きちんとしたコードがかければ(英語力は)最低限でも大丈夫。英語力はその後で付いてくる」という。
Twitter本社のあるサンフランシスコとも連携して業務に当たっているが、当然時差があり、「Twitterのエンジニアは17:30くらいになると帰ってしまうので、帰宅してしまうとコミュニケーションをとるのは大変。まだサンフランシスコが稼働している日本時間の8:30からチームでビデオ会議をおこない、9:00にメール処理をする」という。午後は「ひたすらコーディング、テスト、コードレビュー」で、ミーティングなどはほとんどないという。
また、開発プロセスはTwitterだからといって特別なことはあまりなく、まずJIRAチケットを切ってもらい、ローカルで開発・テストの後、ステージング環境でテストし、他のエンジニアにコードレビューをリクエストする。レビュアーから承認(Ship it!)がもらえれば「Preflight」と飛ばれる各ブランチをマージして矛盾なく動くかを確認する直前点検を経て、めでたくデプロイ→リリースとなる。コードを書いてリリースされるまでは最短で1日だそうで「これだけ大規模なサイトで1日でリリースというのはすごいこと」と蓑輪氏は語った。
《北島友和》
特集
Amazon売れ筋ランキング
-
【New】Amazon Fire TV Stick HD | 手軽にストリーミングをはじめよう | ストリーミングメディアプレイヤー¥6,980 -
Amazon Fire TV Stick 4K Max(マックス) | Fire TV Stick史上最もパワフル | ストリーミングメディアプレイヤー¥12,298 -
Alexa対応音声認識リモコン | 対応する別売りのFire TV本体が必要です¥2,980 -
Amazon Kindle Paperwhite (16GB) 7インチディスプレイ、色調調節ライト、12週間持続バッテリー、広告なし、ブラック¥39,980 -
Amazon Kindle Colorsoft | 16GBストレージ、防水、7インチカラーディスプレイ、色調調節ライト、最大8週間持続バッテリー、広告無し、ブラック (2025年発売)¥39,649
-
ホームオフィスチェア¥86,670 -
Furniture Casters - Caster Wheels For Furniture, 4 Pieces Noise-Reducing Roller, Rolling Wheels, Heavy-duty Furnitures Caster Wheel For Workplace Home Kitchen Indoor Bedroom Room Storage Utility¥599 -
Home Home¥2,450 -
『草原の小道 短篇小説佳作12』茹志鵑 他 著 外文出版社日本語翻訳室 他 訳¥749 -
Io... testimone del padre¥7,010
-
漫画 コミック NERVOUS BREAKDOWN なあばすぶれいくだうん 全13巻 全巻セット たがみよしひさ 学習研究社 月刊コミックNORA ノーラコミックス¥10,800 -
犬のメタルサインハンギング | 犬のヴィンテージサインペンダントウォールアート - ノスタルジックな装飾サインプラーク壁犬の恋人、農家、家の装飾のための装飾サイン Sund¥1,289 -
NancyMissY ペット芝生トイレマット人工草小便器パッド屋内子犬犬トイレトレーニングトレイグラスハウストイレトレイ¥3,180 -
Amazonベーシック ペットシーツ 薄型 レギュラー 1回使い捨て 無香料 ホワイト 300枚¥2,834 -
Moripet ペットシーツ ワイド 薄型 犬ペットシーツ 薄型 1回使い切りタイプ (ワイド(薄型), 100枚)¥2,280
この記事の写真
/
