こんにちは。アプリケーションエンジニアのid:daiksyです。
この記事ははてなエンジニアアドベントカレンダーの2日目です。
今日は、12月1日にはてな京都オフィスで開催された、Netflix Meetup in Kyotoの模様をご紹介しようと思います。
経緯
ある日、Netflix社のJason Swartz(@swartzrock)さんから、日本のScalaコミュニティ宛に相談がありました。その内容は、「今度日本に遊びに行く予定で、東京と京都に滞在するんだけど、よい機会だから日本のエンジニアとMeetupなどやれないか」というものでした。
この相談を受けたScalaコミュニティから、ScalaMatsuriのスタッフをしていた関西のエンジニアとの縁もあって「京都で誰か手を挙げません?」との打診があり、またとない機会なので、はてなの京都オフィスのセミナールームを提供することになりました。結果、その後のスタッフさんの尽力のおかげもあって無事、Jasonさんをお迎えすることができました。
講演内容について
Netflix社は米国大手の動画配信サイトです。今回の講演は、このNetflix社で開発されているAPIについて、いくつかのトピックごとにお話してくださいました。
講演で使用されたものと同じ内容のスライドが公開されており、それがこちらになります。
API ServerはScalaで書かれていて、フロントエンドはAngularJSなどで書かれているとのこと。はてなのMackerelともよく似た構成のようです。
Frameworkについて
API開発で用いられいるFrameworkについて。Frameworkは学習が簡単で、開発しやすく、高速であることが求められる。そういった観点からNetflix社では以下のようなものが採用されているとのこと。
- Scalatra (http://www.scalatra.org/)
- ScalaTest (http://www.scalatest.org/)
- Swagger (http://swagger.io/)
特にSwaggerを用いてAPIドキュメントとサンドボックスを自動生成しているお話は、Jasonさんの「ドキュメント書くのが好きな人なんていないよね?」というセリフとあいまってインパクトが強かったです。
Deployについて
今回の講演ではDeployについての話題が、参加者からの質問も多く最も盛り上がったトピックでした。
Deployは、Mac上でビルドされて .war に。Gradleでそこから .deb に。最後にAminatorという自前のツールを使って .ami にデプロイされます。
リビジョンごとにオールインワンのAMIを作成することにより、ChefやPuppetなどを使わずにImmutableを実現しているとのこと。
デプロイの管理や、本番サーバの状態監視などは自作のAsgardというツールによって行われています。
豊富なOSSツール群
講演中にもいろいろなものが紹介されていましたが、Netflix社では様々な自作ツールが使用されており、それらの多くがOSSで公開されています。
開発リソースを最大限効率化するために、自動化できるところは極限まで自動化して省力化する、という姿勢がよくあらわれているようです。
イベント当日の翻訳はソーシャル翻訳
最後に、イベント当日の運営の工夫について。
Jasonさんの講演は当然英語で行われます。そこで、当日の講演の翻訳をどうするかが悩みどころとなりました。
募集サイトの事前アンケートで、「翻訳が必要ですか?」という項目を用意したところ、多くの参加者から「あるほうが望ましい」という回答をいただきました。とはいえ、同時通訳を用意するのは難しい。
ということで、このイベントでは1つのチャレンジとして「ソーシャル翻訳」にチャレンジしてみました。
参加者全員でTwitterのハッシュタグ"#netflix_kyoto"に自分が聞き取れた内容をそれぞれ実況ツイートしてもらい、聞き取れなかった人はそれを参考にする、というもの。
もともとこういうIT系の勉強会では、ハッシュタグを用いた実況ツイートは頻繁に行われており、それを応用すれば翻訳的な効果があるのではないか、という狙いでした。
参加者の皆さんのご協力もあって、この方式は思いの外うまくいったのではないかと思います。また、イベントに参加できなかった人に対しても、イベントの雰囲気を感じてもらえる一石二鳥の試みだったのではないかと思います。
ちなみに当日のハッシュタグのまとめはこちらになります。
まとめ
今回はNetflix社の中の人から直接お話しを伺う、というたいへん貴重な機会を得ることができました。
旅先 (しかも海外!!) でMeetupを開催して現地のエンジニアと交流する、というJasonさんの姿勢はエンジニアとして驚嘆するばかりです。
ご協力いただいた、スタッフ、参加者の皆さん、そしてJasonさん。今回はどうもありがとうございました!
セミナールームご利用について
はてな京都オフィスでは、「はてなのエンジニアが参加できる」ことを条件としてセミナールームを社外の勉強会、イベントなどに提供しています。
今回のように、京都での勉強会・カンファレンスなどの会場をお探しの方は、お近くのはてなエンジニアまでご相談ください!
エンジニア募集中!!!
Netflix社の話題を見て「Scalaで開発したい」と思った方!!
はてなでもScala開発できます!!
エンジニア絶賛募集中です。(新卒・キャリアともに)
会社見学なども随時受け付けておりますので、こちらもお気軽にご相談ください!!!