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 -
【New】Amazon Fire TV Stick HD | 手軽にストリーミングをはじめよう | ストリーミングメディアプレイヤー¥6,980 -
Amazon Fire TV Stick 4K Select | 4Kの高画質ストリーミング | ストリーミングメディアプレイヤー¥7,980 -
Amazon Fire TV Stick 4K Plus | 映画館のような4K体験 | ストリーミングメディアプレイヤー¥9,980 -
Amazon Echo Dot (エコードット) 第5世代 - Alexa、センサー搭載、鮮やかなサウンド|グレーシャーホワイト¥6,730
-
[EdoErgo] オフィスチェア メッシュ デスクチェア 人間工学 椅子 キャスター付き 跳ね上げ式アームレスト ロッキング 座面昇降 コンパクト¥6,631 -
[EdoErgo] オフィスチェア メッシュ デスクチェア 人間工学 椅子 キャスター付き 跳ね上げ式アームレスト ロッキング 座面昇降 コンパクト¥5,699 -
SIHOO B300-PRO 人間工学オフィスチェア 通気メッシュ 在宅ワークゲーミングチェア ペールグレー¥25,999 -
ANDWINT オフィスチェア デスクチェア 肘なし メッシュ 通気性 ランバーサポート付き 腰サポート ガス圧無段階昇降 360度回転 キャスター付き コンパクト 幅52×奥行58.5×高さ84~96cm テレワーク 在宅勤務 ブラック¥4,598 -
Humergo オフィスチェア ゲーミングチェア 椅子 メッシュ ワークチェア 可動式独立型ランバーサポート 可動2Dヘッドレスト 背面ハンガー付き 跳ね上げ式アームレスト 省スペース 15度ロッキング機能 パソコンチェア デスクチェア 事務/勉強椅子 ハイバック 耐荷重165kg (280S-Black)¥9,980
-
【純正品】27"ゲーミングモニター DualSense 充電フック付き(CFI-ZDM1J)¥49,979 -
EIZO 設計・開発向けモニター | FlexScan EV3240X-WT | 31.5型4K・USB Type-C・ホワイト¥126,164 -
EIZO プロフェショナルモニター | FlexScan EV2740X-BK | 27型4K・USB Type-C・ブラック¥108,782 -
EIZO 設計・開発向けモニター | FlexScan EV3240X-BK | 31.5型4K・USB Type-C・ブラック¥116,155 -
EVICIV モバイルモニター 16インチ 卓上スタンド付き FHD 1200P 自立型 125%sRGB 1200:1 ゲーミング用 ポータブルディスプレイ IPS 非光沢 液晶パネル 薄型 軽量 モバイルディスプレイ USB Type-C Mini HDMI 搭載 VESA PS4/XBOX/Switch/PC/Macなど対応 在宅勤務 リモートワーク EVC-160U¥11,980
-
Amazonベーシック ペットシーツ 薄型 レギュラー 1回使い捨て 無香料 ホワイト 300枚¥2,834 -
Amazonベーシック ペットシーツ 厚型 レギュラー 88枚x2袋(176枚) ホワイト(吸収面:ライトブルー)¥3,643 -
ネオ・ルーライフ ネオ・オムツ L 中型犬用 26枚入り 単品¥1,800 -
Smart Basic(スマートベーシック) 【Amazon.co.jp限定】 Smart Basic アイリスオーヤマ ペットシーツ 超厚型 お徳用 ワイド 100枚入 (x 1) (ケース販売)¥4,078 -
TTFP ペット洗浄スタンド トリミング台 バスベッド シャンプー台 浴槽 ハンモック メッシュ お手入れ用品 折り畳み可能 速乾性 通気性 爪切り 耳掃除 小型犬・中型・猫 60×40×33cm (ブルー)¥3,199









