オバマ陣営のITチームは有給の開発者だけで1000人という大所帯だった(出典:ホワイトハウス)
先の米大統領選でオバマ陣営の勝利に一役買ったIT戦略。その様子を詳細に伝える記事がさまざまなメディアに掲載された。
開票日翌日に公開されたTIMEの記事は、IT戦略の概要を伝えるものだった(関連記事:バラク・オバマ版『マネーボール』)。しかし、その後に出てきた記事は、組織や人、技術などを深掘りしたものが多い。
今回はそうした記事の中から興味を引いた部分を紹介してみたい。
クラウド、オープンソース、API
Amazon Web Services(AWS)、Elastic Compute Cloud(EC2)、Simple Storage Service(S3)、Rails、Python、NoSQL、Service Oriented Architecture(SOA)——。
こうしたキーワードが次々と登場するのが、Ars Technicaに掲載された「Built to win: Deep inside Obama's campaign tech」という記事だ。
その冒頭にオバマ陣営のITチームが取り組んだプロジェクトの片鱗を伝える記述がある(註1)。
毎秒4Gb、毎秒1万リクエスト、2000のノード、3カ所のデータセンター、180テラバイトのデータ、85億回のリクエスト。これに対処できるシステムの設計、実装、撤収に要した日数:583日。
2008年の大統領選挙では、オバマ選対本部に正式なITチームは存在しなかった。Facebook創業メンバーのクリス・ヒューズ(註2)など、多少の専門知識をもつ人材が一部にいたのは事実だが、全体としては外部ベンダーの製品に大きく依存せざるを得なかったのだ。
そのせいか、鳴り物入りで投入された有権者投票促進システムの「フーディニ」(Houdini)も、ネットワークの過負荷で投票日当日に機能しなくなり、各地から伝えられたデータ(登録した有権者のコード)をボランティアが手入力するというトラブルに見舞われた。
オバマ選対本部はこの失敗を踏まえ、内部に正式な技術開発・運用チームを発足させて、本格的なシステム構築に乗り出した——と、このような経緯があったらしい。
本番は一度しかない選挙 枯れたテクノロジーを活用
このチームが生み出した技術には、次のようなものがある。
- Narwal:「一角クジラ」を意味する言葉で、さまざまなソースから収集したデータをリアルタイムで統合・同期するシステム。APIはPythonで記述されている。
- Dashboard:各地のボランティアやデータ解析チームなどが利用。Ruby on Railsで構築された。
- Dreamcatcher:ウェブ上で有権者のマイクロターゲティングを行うシステム。
- The Optimizer:テレビCM枠を効率的に買うための視聴率分析ツール。
また、計算処理インフラとしてAWSを大々的に活用。限られた時間と予算のなかで、拡張性のあるシステムをうまく構築したという。もちろん、すべてのシステムを内製で開発したわけではない。メールマーケティングには外部ベンダーが提供する既製品を使った。
さまざまなシステムの開発に際して、オバマ選対本部のテックチームは「実績のないものは極力避ける」ようにしていたという。本番は一度しかない選挙ゆえに、できるだけ枯れた技術を選ぶようにした、といったところだろう。この点に関して、オバマ選対本部で最高技術責任者(CTO)を務めたハーパー・リードは、「技術的に何か新しいものを生みだしたわけではない」と謙遜気味に述べている。(次ページ「技術開発のプロと選挙のプロ」)
註1:オバマ陣営のITプロジェクトの片鱗
4Gb/s, 10k requests per second, 2,000 nodes, 3 datacenters, 180TB and 8.5 billion requests. Design, deploy, dismantle in 583 days to elect the President. #madops
このツイートは、オバマ選対本部のITチームで開発・運用グループの責任者を務めたスコット・バンデンプラスという人物のもの。
註2:クリス・ヒューズ
マーク・ザッカーバーグのハーバード大学時代のルームメート。現在は買収したThe New Republic誌で自ら編集長を務めている。