KonifarPod

オバマ選挙戦を支えたあご髭ギークたち【JAWSDAYS2013レポート】

   

Pocket

JAWS DAYS 2013は、AmazonWebServiceのユーザーグループが主催する大規模なユーザーカンファレンスです。3月15日(金)が1日目で面白そうだったので行ってきました。その中で、オバマの代表選挙戦キャンペーンを支えたエンジニア@mileswardの基調講演のスケールが半端じゃなくて、かなり興味深かったので紹介しようと思います!

 

1.プロジェクト名『Obama for AmericaーOFA』

Jaws8

オバマの代表選挙戦は、ソーシャルメディアをめちゃくちゃ駆使して勝利を掴んだことで話題になりましたね。当時のITチームの記事はPublickeyさんのこちらの記事にわかりやすくまとめられています。

大統領選挙ですから、アメリカ全土の国民のほとんどがオバマのサイトを確認するわけです。そんなサイトを構築するのは、並大抵のことではありません。数百TBのデータ処理・データ解析、数十万の同時接続ユーザーによるスパイクなど、無数の課題を乗り越えなければならないのです。

プロジェクト名は『Obama for AmericaーOFA』。なんかかっこいい・・・。そのプロジェクトチームのメンバーだった Miles Ward が講演していたのですが、あごひげがギークっぽくてとても素敵でした。

Jaws1 

節々で「ニホンスキデス!」「スゴイ!」などの日本語を織り交ぜていて、終止和やかな雰囲気でした。資料も日本語に翻訳されていました。講演の様子はUSTREAMに上がっています。(50分くらいの動画です)

 

2.印象に残った言葉まとめ

すごく面白い話ばかりだったので、要点まとめて整理しよう!と思ったのですが、全部英語だったしスケールも大きいわ自分の知識足りなすぎるわでぶっちゃけ綺麗にまとめきれる気がしません。すみません。なので印象に残った言葉をピックアップしてまとめてレポートにしたいと思います。ちなみに同時通訳もあったのですが、語り口調はMilesWardの雰囲気から勝手に訳してます。間違いや変なところがあったら@konifarまで教えてください!ではどうぞー。

 

Jaws2 

「全員がボランティアで参加した開発チームだった。開発者の平均年齢は24歳。僕みたいなおじさんじゃなくて、みんなめちゃくちゃ若かったよ」

アメリカの代表選挙では、特定の会社や団体がある候補者を支持することが法律で禁止されています。そのため、参加者は全員ボランティアで、出勤前の早朝や仕事後の深夜に参加する会社員もいれば、普段ITの勉強をしている学生もいたそうです。というかメンバーが濃すぎてやばいですw

 

「本当に色んな言語、技術を使ったよ。ボランティアで組まれたチームだから、それぞれできることも違うしバックグラウンドも違う。でも猫の手も借りたいくらいだったから一人も断らなかったんだ。PHPできる人はあっちに行ってね!Rubyできる人はこっちでお願い!という感じで、全員が自分の得意分野で作業をするようにしたんだ」

カオスです。これ、実際にどうやってまとめあげていったのでしょうか・・・。モチベーションも技術力もバックグラウンドも何もかも違う中、みんなで最後までやりきるのはまさにUSAという感じです。HAHAHA!という感じで笑って話していましたが、相当なカオスだったのではないかと思います。SUGOI!

 

Jaws3

「これが選挙戦を支えたオフィスに見える?まるで大学の寄宿舎さw いつもビールやピザが転がっていて、色んな音が飛び交う環境で作業をしていたんだ」

これは楽しそうw まあ実際には阿鼻叫喚だったのかもしれませんね。

 

「納期は11/7。代表選挙は11/8って法律で決まってるから、これを変えるには議会の承認が必要なんだ。ここにいるエンジニアの中に、納期遅れたことがないって人いる?いないよね?でもオバマの代表選は遅れることが許されなかったんだ」

法律が絡む案件とはスケール大きいです。しかも、絶対に遅れることのできない納期なのに納期まで7ヶ月しかなかったそうです。すごいスピード感ですね!

 

Jaws4

「アメリカ大統領のサイトなんだ。オバマが演説で『このサイトは素晴らしいよ!みんな見てね!』という宣伝をしたら、国民のほとんどがサイトを見る。もちろん課題もいっぱいあるけど、エンジニアとしてこんなにFUNなことはない。どんと来いさ!」 

ギーク冥利に尽きる、という感じでしょうか。話している様子も楽しそうでしたw 話をしているだけでワクワク感を人に伝えられる人って素敵だと思います。

 

「たった1度の投票のためだけに、あらゆるモバイル端末、PC端末に対応したよ。そして全て上手くいったんだ!」

いやはや、すごいですね。スマホ対応とかそういう次元じゃないです。しかも期間は7ヶ月・・・。YABAIです。

 

Jaws5 

「ELB, ElastiCache, S3, CloudFront ・・・。本当に色々なAWSを使ったよ。もちろんこれらを自分たちで作る事は可能だったけど、すでにAmazonが素晴らしい仕組みを作ってるんだからそれを使わない手はないよね?納期も限られていて、色んなエンジニアがいて、もたもたしている暇はない。セットアップの時間も惜しかったんだ。あと場所も取らないしね。」

テクノロジー使いこなしまくりです。僕は聞いたことすらないものも結構ありました。もっと勉強しなきゃダメですね。ちなみにこのオバマ選挙戦の時の構成はこちらにまとめられていますが、もはや街です。

  

「ボランティアばかりだったから、基盤となるAPIを最初にちゃんと作った。エンジニアはすごく簡単に作れるようになった。」

短期の案件を進める時に悩ましいところです。イニシャルコストとランニングコストのトレードオフです。OFAチームはそこをかなりうまくこなして、同じ仕組みを違う人がスクラッチで作らなくていいようにしていったらしいです。

 

「嵐がきた時でもちゃんと動くようにしといてくれよ、というプレッシャーをかけられたんだw もともと米国東海岸に3ヶ月で構築したんだけど、西海岸に移すのは9時間で終わったよ!これはAWSならではのメリットだね。」

絶対に失敗できないというオバマ陣営のプレッシャー半端じゃないですw しかしAWSを使って構築していたので、同じ環境をめちゃくちゃ速くコピーできたらしいです。その時に作ったツール『tsunami-udp』もフリー公開されています。TSUNAMIって名前は直感的ですね。

 

「GAME DAYというのをやったんだ。悪チームと善チームで別れて、悪はアプリケーションをひたすら壊して、善の人はなるべく速くそれを直していくんだ!チームメンバーの開発者は若い人たちだったんだけど、1回2回先に障害を経験すればすごく安心できるんだよね。実際にキャンペーン中に障害が起きた時も、落ち着いて対応できた。」

いわば障害のシミュレーションなんですが、やり方をちょっと工夫するだけですごい効果が高まるという話でした。テストケース作って修正とか言われると萎えますが、『GAME DAY』だとなんか面白そうですよね。GAME DAYについては、Woofla!さんのこちらの記事でわかりやすくまとめられています。

 

「疎結合の開発を意識したんだ。Javaで書いているところもあるし、Rubyで書いてあるところもある。MySQLを使っているところもあれば、MongoDBを使っているところもある。それぞれをなるべく疎結合にすることで分担できたし、何か起きた時もその部分だけ直せばよかったんだ」

・・・言ってることはわかるんですが、正直どうやってやったのかちゃんと理解できてません。そんなカオスな状況でもうまく進めるのはいったいどうやったらいいんでしょうか。もっと詳しく聞いてみたいところでした。『疎結合』というのは一つのキーワードですね。

 

 

3.スケール大きすぎて何ともはや・・・

なんか話のスケールが大きくて圧倒させられました・・・。また、僕はAWSのサービスについて全然良く知らないんだということを痛感させられました。もっと勉強して使いこなせるようにしなきゃダメですね。。。テクノロジーの世界は秒進分歩と言われますが、損しないようにアンテナはってどんどんチャレンジしていきたいです。とりあえずAWS Elastic Beanstalkあたりからいじってみます!

全然関係ないですが、MilesWardの最後のスライドが・・・。

 Jaws6

あずまんが大王ネタだったっていうねw 日本人でも知らない人いますよ。JAPANIMATIONの浸透を思い知らされました。

Pocket

 - レポート ,