こんにちは。小西です。
2月28日にサンフランシスコで開催されたHerokuのイベント「WAZA」に行ってきました!
WAZA自体は1DAY EVENTだったのですが、その前後に主催であるHeroku社の相澤さんのご好意によりSalesforceやPivotal Labsなどのいくつかの企業を訪問することができ、非常に刺激的で有意義なUS出張となりました。
忙しい中出張を許可してくれた会社と企画してくれた相澤さん、そしてUSで出会ったすべての人たちに心から感謝します。
★WAZAとは
Herokuの年次イベントです。もうちょいHeroku発信の情報満載のイベントをイメージしていましたが、案外そうでもなくHerokuに関連する要素技術のテクニカルなセッションが多かった印象です。
ちなみにWAZAというネーミングは日本語の「技」から来ています。会場でもらったTシャツにもでかでかと「技」という漢字が(^^;
他にも入口では琴の演奏でお出迎え、オープニングでは太鼓と書道のパフォーマンスとそこかしこに和テイストがちりばめられていました。
この日本びいき(?)の理由は正直謎ですが、その理由の一つとしておそらくはRubyの開発者であるMatzことまつもとさんへのリスペクトがあるように思います。
そう、Herokuの母国語はRubyです。JavaやPythonもしゃべれるマルチリンガルではありますが、とりあえずなんか作るかーという場合は概ねRubyが使われるようです。
HerokuのGitHubをあさるとRubyのコードが山ほど見つかります。
演者はビッグネームが多かったようですがその中でも1番のビッグネームはやはりまつもとさんでしょう。Ruby 2.0の話をされましたが、この話を英語で聞けたことが逆に面白かったです。
★Postgres. The Bits You Haven't Found
http://postgres-bits.herokuapp.com/
さて、セッションについてですが僕が面白かったのは「Heroku Secret」と「Postgres. The Bits You Haven't Found」の二つです。まぁスライドの少ないセッションは聞きとるのが辛かったというせいもあるのですが。。。(--
Postgresのセッションの方は上記のリンク先のスライドを見ていただければだいたい内容はわかると思います。タイトル通りあまり知られていないだろう小技集です。
ArrayとRandomを組み合わせてテストデータを作成するという件などはかなり実践的だと思いました。
どうでもいいですが、スライドを公開するためだけにHerokuAppなのはなんなんでしょうね。(^^;
GitHubで絶賛ソースコードも公開中です。
★Heroku Secret
http://www.slideshare.net/heroku/heroku-secrets-waza-2013
もうひとつのHeroku Secretはアジェンダを見た時からこれだけは聞き逃すまいと思っていたセッション。中の人によるHerokuアーキテクチャの話です。
Herokuの機能にはHerokuで作られている部分も多くて例えばBundler-APIはWeb Dyno 6台とWorker Dyno 1台、4つのDB(Production * 1, Follow * 2, Test * 1)で動いているとか、そのビルドツールはどうなっているとかそんな話です。
あとはDatabase管理のツールとしてはDataScopeとDataClipがあるという話も。
DataClipについては以前からアナウンスされていたので知ってましたが、DataScopeって聞いたことないな。。。と思いながら検索をかけたところ。。。あったよ。。。これもソースがGitHubに。てか、オーナーのwillって前の日一緒に飲んでたやんけ(^^;
デモからSQLの発行頻度と処理時間を可視化するツールであることは想像できたので、さっくりcloneしてHerokuにpushしてみました。(^^;;;
DATABASE_URLだけ設定すれば動くかなぁと期待したんですが、画面がちっとも更新されませぬ。ざっとソースを眺めたところ。。。うーん、どうもCREATE TABLEひとつとWorkerを動かさないといけないらしい。(--
。。。Workerか。。。あ~(--。。。不採用。
必要に迫られたら解析して自分で似たようなものを作ろう。。。
ちなみにDataClipのソースは公開されていません。
ユーザーのデータベースにアクセスするコードが含まれているはずなので当たり前と言えば当たり前ですが。
こちらの方は便利に使わせていただいております。(^^;
□□□□
さて、すっかり脱線してしまいましたがここで重要なポイントはHerokuのアーキテクチャが可能な限りオープンだと言うことです。
データセンターのドキュメントを読むだけでかなりの部分のアーキテクチャが想像できますし、このように公開されているソースも多々あります。
セキュリティ上公開できないものがあるのは当然としても、アーキテクチャに関しては質問すればたいていのことは答えてくれるんじゃないですかね。これは普段サポートの人達とやりとりしていても感じることです。
こういう透明性の高いところが自分がHerokuを好きな理由だと思います。
やっぱりブラックボックスの多いものは使いたくないですしね。
イベント以外にもTreasure Dataの方たちとの会食など大きな刺激を受けたことはたくさんあり、それらについても書きたいのですがそれはまた次の機会に取っておきます。