はてなランチのメニューは「Mackerel」!
今回おじゃましたのは、はてなの東京オフィス。2014年9月に正式リリースしたクラウドパフォーマンス管理サービス「Mackerel(マカレル)」を中心に、今後は東京での開発部隊も拡充していくのだとか。
ちょうどランチタイムだったので、ヨッピーさんも美味しいと絶賛していた「まかないランチ」をごちそうになってきました。
この日のメインメニューは、「さばのアラビアータ風」。もしかして取材テーマに合わせて、メニューを考えてくれたのでしょうか?
副菜の「蒸し鶏のサラダ仕立て 玉子ワサビ和え」と「おふ・レンコン 蒸し鶏の出汁スープ 黒ごま風味」も!
「まかないランチ」はお二人のシェフが交代で作られていて、これまで一度もメニューがかぶったことがないのだとか。
もともとレストランで働いていた主婦の方たちで、近くのマンションで作って運んでくれるのだそう。
ちょうど親知らずを抜いたばかりでほっぺたが腫れまくりで、ごはんを食べるのがしんどかった私には食感もやさしくて、ズゴック美味しかったです!
ラリー・ウォールはアニメ「少女革命ウテナ」好き!?
今回取材にご協力いただいたCTOの田中慎司さん・松木雅幸さんとのランチをいただきながらの会話は、いきなりアニメ「少女革命ウテナ」から始まりました。
松木:きゃんちさんは、「少女革命ウテナ」が好きでしたよね?
きゃんち:えっ!なんでそんなことを知ってるんですか?
松木:前に見かけたことがあるんです。実はラリー・ウォール(Larry Wall)というプログラミング言語「Perl」を開発した有名なプログラマがいるんですが、彼が一番好きな少女アニメは、「少女革命ウテナ」なんです。
▲株式会社はてな Mackerelのディレクター兼チーフエンジニア 松木雅幸さん
一同:えーーそうなんですか!?
松木:このことは、「ラクダ本」(※ラリー・ウォール著書「プログラミングPerl」)の前書きに書いてあるんです。一番好きなアニメは「少女革命ウテナ」で、今やってるアニメで一番好きなのは、「るろうに剣心」だって。
増井:たしかに「るろうに剣心」はアメリカでも放映してるし、アメリカ人が好きな日本ぽいストーリーだけど、「少女革命ウテナ」はなぜ…。
きゃんち:ヘタすると日本人の男性でも理解しがたい内容なのに…。すごい人だ!
松木:はてなでは、ほとんどのサービスをそのラリー・ウォールが作ったPerlで書いているんです。僕もウテナ好きなんですよね。アニメもよく見るんですけど、はてなの京都のメンバーで、よくアニソンカラオケに行くグループがあって、僕も京都出張に行った時にタイミングがあえば参加したりしています。
田中:はてなは開発の拠点が京都なので、エンジニアがほとんど京都にいるんです。京都ではアニメも話もするけど、東京ではほとんどしないですね。
きゃんち:じゃあ、今度京都に行ったときに、皆さんにいろいろ聞いてみてください。京都を舞台にしたアニメで大好きなのがたくさんあるんです。森見登美彦さんの作品は、「四畳半神話大系」をはじめとして京都を舞台にするものが多いですし、「けいおん!」も京都ですよね。
松木:京都には、聖地がたくさんありますよね。あ、申し遅れましたが、はてなでMackerelのディレクター兼チーフエンジニアをしている松木といいます。はてなIDはSongmu(ソンムー)です。はてなはIDで呼び合うので、社内では本名を知らない人もいるんですが(笑)。
以前はカヤックに勤めていたんですが、その時にきゃんちさんが取材にいらした時に遭遇したことがあります。目の前でサイコロを振らせていただきました(笑)。
田中:はてなの田中慎司(id:stanaka)です。伊藤直也さんの後を引き継いでCTOをやっています。今はMackerelの全体を見ています。趣味はジョギングと自転車ですね。
▲株式会社はてな 執行役員・CTO 田中慎司さん
きゃんち:そういえば、オフィスに自転車が何台か置いてありましたけど、田中さんのですか?はてなさんは、自転車好きが多いのでしょうか。
田中:僕と松木のです。創業者の近藤がもともと自転車好きで、国体選手だったんです。近藤とは同じ年で同じ大学のサークルメンバーでした。大学の競技で一緒にやってました。その時は一緒に事業をするとは思ってもみませんでしたけど(笑)。
はてなが「Mackerel」を作った理由は?
田中:では、本題の「Mackerel」について説明しますね。Mackerelは、サーバーの調子がいいのかどうかをチェックするメンテナンスツールです。きゃんちさんは、はてなブログというサービスはご存知ですか?
きゃんち:もちろんです!
田中:はてなブログは現在数十台のサーバーを使っているのですが、それぞれのサーバーにはアプリケーションサーバーやデータベースなど、ロールと呼ばれる役割があります。Mackerelはサーバーがちゃんと稼働しているか、ロールに対して台数が多すぎたり、少なすぎないかなどの状況をチェックしています。
これは、はてなブログの直近1週間の様子をグラフ化したものなんですが、23時くらいが一番負荷がかかっているのがわかりますよね?
きゃんち:夜が一番ピークなんですね。
増井:朝も多いかな。意外とみんな早起きですね。
田中:バックエンドの役割をまとめて見れるのですが、ひとつだけはずれているのがわかりますよね。これはアプリケーションのデプロイが失敗していて…。
増井:負荷がかたよっているんですか?
田中:アプリケーションコードを新しくするときに、新しいコードと古いコードが共存する状態になってしまって、負荷がかかってしまったんです。
きゃんち:それもこのツールでわかるんですね。原因も解明してくれるんですか?
田中:それは自分たちで探します。普通は1台だけ調子が悪いことって、かなり注意深く見てないと気づけないんですが、Mackerelがあれば気がつくことができます。
増井:完璧なプログラムが書ければこうしたツールはいらないんですけど、プログラムってどこかに何か間違いが必ずあるものなんです。間違いがないことは、ほぼありえない。
予測ができればいいんだけど、例えばテレビに取り上げられて、急に負荷が上がってしまったり、想定外のことが起こってメンテナンス画面を出すなどのイレギュラーな対応が発生することがあるんです。それがMackerelで1台だけ調子が悪いことに気づけるというわけです。
きゃんち:なるほど。はてなさんはブログサービスをやっているから、自分たちのサーバー管理だけではなくて、外部にもそうしたサービスを出していこうとしているんですね。
田中:そうなんです。2007年くらいに社内用のサーバーツールを作ってみたのですが、社外に紹介したらすごく評判がよかったので、一から作り直してサービス化しようという話になったんです。ロゴやサービス名も新しく作りました。
Mackerelキャラクター、さばねこのイラストを描いた!
きゃんち:そういえば、なんでMackerelというサービス名にしたんですか?
田中:さば(鯖)の英単語とサーバーをかけてみました。
きゃんち:それを考えつくのすごいですね!
増井:犯人は誰ですか(笑)?
田中:僕です(笑)。将来的にグローバルにも出していきたいと思っていたし、Mackerel cloud(鯖状の雲)というのがあるから、むこうでもなじみやすいんじゃないかと。
増井:日本語からインスパイアされた海外のサービス名って意外と多いんですよね。Herokuというサービスも、公式にはヒーローと俳句の造語だと言われてるけど、実はランダムに日本語ぽい響きがいいのを作ったと言われてたりします。キャラクターも日本のアニメに影響受けたんだろうなというのもよく見かけます。
きゃんち:さばとMackerelをひっかけたキャラクターはあるんですか?
田中:まだですね。社内デザイナーが作ろうとしてたりしますけど。顔がさばで、体がネコで、足あとが雲(クラウド)みたいな。
きゃんち:なんかシュールですね。
松木:GitHubのOctocatみたいなのもあるし、サバネコもカワイイのならありなんじゃないかと。きゃんちさん、ぜひ描いてもらえませんか?
きゃんち:いいですね!増井さんも一緒に描きましょう。
増井:えっ?俺も?
会議室もホワイトボードに向かって描き出す二人。
きゃんち:サバってどんなかんじでしたっけ?流線型でしたよね。
増井:でも、描くのはサバじゃないんですよね?
きゃんち:そう!サバネコです。
松木:増井さんのは完全にドラえもんですね。首に鈴ついてるし…。
増井:ええ、ドラえもんにインスパイアされてます。猫といえば、ドラえもん一択じゃないですか。
きゃんち:あ、最近はじばにゃんもきてますよ。私のサバネコは死んだ目っていうのを、ポイントにしてみました。
田中:サーバーが死んだら困る(笑)。でも、かわいいから使わせていただきます!
MackerelをMacBook Airに仕込むと便利らしい
田中:Mackerelには、ほかにも面白い機能があるんですよ。
増井:サバが飛ぶとか?
田中:そこまで面白くないんですが、MackerelをMacBook Airに仕込むと、自分の端末の情報がわかるんです。
きゃんち:ネットワークトラフィックも?
増井:動画ばっかり見ているとばれるとか?ディスク容量もほしいですね。
田中:バッテリの容量やPCの温度、バッテリの充電回数とかも見れますよ。
きゃんち:温度も?PCって温度計ついてるんですか?
増井:PCが熱すぎると起動できないんですよ。夏のクルマの中とかだと、大変ですね。
きゃんち:MacBook Airでないとできないんですね。持ってくればよかったな。個人のユーザーでも使えるんですよね?
田中:はい。無料枠もあるので、VPSを使っている方も気軽に使ってみてもらえれるとうれしいですね。
松木:グラフも描けるので、キーボードの打鍵数をグラフで書いたりとかもできますよ。
増井:Facebookを見ている時間も取れるから、いつ仕事してないかもわかりますね。
田中:あとはセンサーを使って、室温をとることもできます。
きゃんち:それはどういうところから発想が生まれたんですか?
田中:もともとサーバーの負荷をなんとかしようというところから始まったのですが、遊びの要素を取り入れたら結構面白いことができるなというかんじで作ってましたね。
きゃんち:人間の健康診断や心電図みたいなことを、コンピュータに取り入れる応用というか、発想は面白いですね。
増井:エンジニアは自分が面白いことを思いついて作った後に、どう応用できるかって考えることがよくあります。このサーバーで健康診断をする機能を作ってから、時系列にいろんなパラメータをグラフにするとか、センサーとつなげて計測するというのはすごくエンジニアの志向ぽいですね。
きゃんち:たしかにいろんなことに応用できるというか、遊び心にあふれていますね!
MackerelがGo言語を採用した背景とは
増井:MackerelはPerlではなく、Go言語を採用していますね。
田中:はてなはずっとPerlを使っているんですが、もっとイマドキの言語を使ってみたいというエンジニア向けに、新しい取り組みとしてGoとScalaで開発しました。Mackerelに関しては、はてなIDも使っていないので、最新言語を採用しやすいという背景もありました。
きゃんち:エンジニアにとって、言語ってどういう存在なんでしょう。何をもってその言語を選んでるんですか?
増井:言語には流行り廃りがあって、優れているとかそうでないということもあるんですが、だいたい流行に左右されることが多い。最近のアメリカの求人数で見ると、オレンジのPerlや青のPHPは下降していて、RubyやPythonは安定といったかんじです。
松木:でも、Perlも下げ止まった感はあると思います。たしかに使っている人口やトレンドは重要です。人が多いほうが言語も成長しますし、隆盛に左右されやすい面はあります。
田中:今回は各サーバーに仕込むエージェントにGoを使いました。負荷の情報を得るツールを作るのに適していて、コンパクトでポータビリティも高くて、OSもLinuxでもWindowsでも動くのでやりやすいんです。
きゃんち:新しい言語もどんどん生まれてくるんですね。でも、一つの言語をよくしていこうというのではなく、新しい言語が出てくるのはなぜなんでしょう。
増井:言語によって得意不得意があることが大きいですね。どの言語でも最終的には同じようにできないことはないんですが、言語によって大変さが全然違います。ゲームで弱い敵を一度に100匹倒すのが得意な言語と、強い敵一匹を倒すのが得意な言語がある、みたいなかんじですね。
松木:自然言語でも流行り廃りがあるんです。エスペラント(Esperanto)みたいに、人工的に世界共通言語を作るみたいな動きもあるくらいですから。プログラミング言語になると、もっとスピードが早くなる。
きゃんち:世界統一言語?そんなものがあるんですか!
松木:英語は輸入されて変化していった言語で、複数形で表現が変わるとか統一感がないから、もっとちゃんとしたルールがある言語を作ろうとしているみたいです。世界統一言語って中二病みたいですけど(笑)。
きゃんち:たしかにエスペラントって表現には、たぎりますね。
松木:言語は一回使われるとなかなか変えられないので、全然別の言語を作りたいという動きがプログラミング業界にはもっと激しく起きているというかんじです。プログラム言語も同じでいろんなパターンがあって、PerlとRuby、PythonといったLightweight Language(LL)から、オブジェクト指向や関数型、さらにそれぞれのパターンを組み合わせることもあるので、無限に言葉が生まれてくる素地がある。
きゃんち:すごいですね。言語の世界対戦とかやったら盛り上がりそう。
松木:それは宗教の世界だから、立ち入らないほうがいいですよ。
増井:その話をはじめたら朝まで終わらない。日々僕らはそれをやってますが(笑)。こうした新しいサービスを作るときは、みんなで胸ぐらつかんで殴り合って、最後にケンカに勝ったやつが「よし!Goにしよう」とか言って決まるんですよ。権力かもしれませんが(笑)。
きゃんち:ケンカしたんですか?
田中:まあ、最後は決めの問題ですからね。もちろんサービスの方向性に合うように言語の特徴で考えるんですけど。
松木:最近は、あとから作り直ししやすいほうにしておくことが多いようです。例えば、Twitterも前はRuby on Railsで作っていたけど、最近はほとんでScala。MackerelもScalaで組んでます。
はてなとトレタの開発合宿はどんなかんじ?
増井:そういえば、トレタで開発合宿に行ったんですよ、山喜旅館に。もともとはてなで知って、年2回くらい行ってます。
田中:はてなは、2005年から会社の合宿を始めたんですよね。はてなブックマークも合宿から生まれたサービス。当時は、新サービスを作るときには合宿して2~3日で開発して、帰ってきて1週間くらいで仕上げるという勢いがありましたね。少々粗くても許される時代でした。
きゃんち:今は慎重に作られてるんですね。
増井:その頃のはてなとはユーザー数が違いますものね。何十万人ユーザーもいる今のはてなでは、なかなか難しいと思います。
松木:うちも11月に行ってきました。僕は初めての合宿でしたが、驚いたのは合宿用にチームを組んで、仕事とは関係ないサービスを作ったこと。業務をやってはいけないルールを作って、頭の切り替えを図ってたことですね。
きゃんち:どんなサービスを作ったんですか?
松木:ビジネス向けのコラボレーションツールです。僕はPerlが好きなのでPerlで書きました。最近のプロジェクトだとPerlを使う機会が少ないので、思う存分Perlが書けて楽しかったですね。
増井:合宿は環境も大事ですよね。温泉やコンビニは近くにないとしんどいし。ネットワーク回線があるとことはあるけど、ちゃんとした机と椅子がそろっているところって意外と少ないんです。
松木:何を持っていくかも大事ですよね。タップをたくさん持っていくのは必須だし、ディスプレイを持ち込む人もいます。
増井:夜はお酒飲むんですか?飲みながらコーディングできます?
田中:できる人とできない人がいますね。うちはサービス開発本部長の大西(id:onishi)が結構飲むので、区切りの良いところまでやったら、夜からは宴会したりしますね。トレタはどうですか?
増井:うちは酒も飲まず、夜まで自社のサービスを改善するためにどうしたらいいかとか、サポートまでを考えるのを夜23時までガリガリやってました。飲みに行く人はそれから行ってましたけど。半分は旅行みたいなものだから、個人的な話もしたりとか。コミュニケーションも大事ですよね。まあ、夜も一緒にいると、話す内容もなくなりますけどね(笑)。
きゃんち:恋バナきゃーきゃーとかはないんですね。今度エンジニアさんの合宿、見学してみたいです(笑)。今日はいろいろなお話を聞かせていただき、ありがとうございました。ぜひ、私たちのイラスト使ってくださいね♪
ナビゲーター 増井雄一郎さん
1976年、北海道生まれ。札幌大学経営学部卒業。大学時代に起業。2003年にフリーランスとなり、Ajax、Ruby on Railsなどを使ったWebアプリ開発や執筆で活躍するギークエンジニア。08年に渡米し、中島聡氏とともにアプリ開発会社を立ち上げる。10年に帰国し、Appceleratorの「Titanium Mobile」エバンジェリストとして活躍。
現在は株式会社トレタCTO。
Twitter:@masuidrive
レポーター 喜屋武 ちあきさん
きゃんちのニックネームで親しまれる。
職業はオタク>アイドル。グラビアアイドル。アニメ・ゲーム・マンガ・活字が大好き。男装ユニット風男塾の元リーダー。技術とプログラミングを学び、ギークガールを目指す。
千秋らく名義でONE PIECE 47クルーズCD ボン・クレー&Mr.3など、作詞家活動も開始。
喜屋武ちあきオフィシャルブログ:きゃんちまいんち!
Twitter:@kyanchiaki
自分の書いたコードを誰かに評価されたいエンジニアは、けっこう多い?
ITエンジニアのための実務スキル評価サービス『CodeIQ』で出題されている「コード銀行」問題に挑戦すると、あなたのコードが評価されます。
評価(1)出題者からの評価 ⇒評価フィードバック例を見る
- 企業ではたらくという観点からあなたのコードをチェックします
- フィードバックされた観点をふまえてコードを書くと世の中の企業にとって「いいコード」が書けるようになります
評価(2)企業からの評価 ⇒評価フィードバック例を見る
- 「あなたと一緒にはたらきたい」という企業からスカウトが届きます
- あなたのコードが社会でどこまで通用するか、リアルな評価が得られます
興味を持った方はこちらからチャレンジを!