Hatena Engineer Seminarに行ってきた #hatenatech

はてなの東京オフィスが南青山に移転するということで、エンジニア向けのセミナーがあったので参加してきました!
詳細は、はてな東京開発センターを開設します&エンジニア向けセミナーのお知らせ – Hatena Developer Blogから。

以下、内容のまとめです。

はてなのサービス開発と東京開発センターの立ち上げ

田中さん id:stanaka / @stanaka

はてなの歴史

はてなを知らない人向けに、はてなの歴史など。

オフィスの場所を、京都 → 東京 → (シリコンバレー) → 京都と移転。色々と試行錯誤しているのが垣間見れる。
京都 → 東京のときに、サービスを停止して、サーバーを車に載っけて移動させたらしい。今じゃ考えられない。

開発について

ペーパープロトタイピングでアプリ開発を行なっている。
リーン開発(仮説→計測→検証)も。

環境について

生産性が重要になるので、それを意識した環境づくりを行なっている。
例えば、ディスプレイは、30インチクラスのものを使用しているし、人によってはディスプレイ4つを並べている場合もある。(インフラ関連のグラフを見るのに最適化)

最近、Github Enterpriseを使い始めたそう。

インターンなど、教育面も力を入れている。

東京開発センター

独立したプロダクト開発をするようにしたい考え。
ディレクターとエンジニアとデザイナーをワンセットに運営できるようにしたい(今はデザイナーだけ東京であとは京都のパターンが多い)

職種について

  • スマホアプリエンジニア
  • アプリケーションエンジニア(主にPerl使い)
  • DevOpsエンジニア(インフラエンジニア)
  • ディレクター
  • デザイナー

すっきりしてて、分かりやすい。

はてなにおけるアプリケーションエンジニアの役割

山家さん id:yanbe / @yanbe
はてなブックマークの開発を担当

デザイナーだけが東京オフィスで、それ以外は京都で開発。
コミュニケーションは、社内IRC、Polycom(テレビ会議)、はてなグループなどで行う。
タスク管理は、Trelloで。
バージョン管理は、Github Enterprise。

はてブ改善について

レスポンスを早める為に、Solrを利用するように変更。
レスポンスタイムはアクセスログに出力して、Hadoopで集計して、計測しているとのこと。

スパム判定

元々は、一定のルールによって判定していたが、AdaBoostアルゴリズムをベースにした、機械学習を利用して判定するように変更。

B!KUMAガールズ企画

既存のユーザー層以外にもはてブを訴求する為の企画したもの。3ヶ月でリリース。

機械学習ベースではなくて、ルールベースでコンテンツを制御。

はてなで働くメリット

  • 少人数のチームで企画、開発、リリース、効果測定まで行える
  • 古くからネットサービス運営しているのでノウハウがある

はてなのサービスを支えるインフラについて

田村さん id:shoichimasuhara
DevOpsエンジニア

PWG(パフォーマンス・ワーキング・グループ)

アプリエンジニア、インフラエンジニア合同のパフォーマンス評価のための定例会(PWG)をチームごとに行なっている。

インフラエンジニアもコードを読んで改善方法を提案したりもする。
アプリエンジニアの要求に答えるのが仕事。

はてなのバックエンド

構成はシンプルな分散構成で、サーバーの仮想化を以前から行なっている。

環境の構築に、Chefを使っていて、2千数百ホストを管理しているらしい。

負荷問題

負荷分散を行っても、1台1台のマシンスペック起因の問題が発生するので、SSDやFusion-ioなども取り入れている。
AWSのインスタンスなどよりも、高スペックなマシンで運用しているとのこと。

使用しているミドルウェア

MySQL、Nginxなど、良く聞くものの他に、Solrやfluentd+mongoDBを利用。

エンジニアの裁量が大きいので、エンジニアがやりたければ導入することは可能。

質疑応答

Q.セキュリティはどうしてるの?

A.専任の人間はいないので、個々のエンジニアで。
A.GitHub Enterpriseで、各エンジニアにレビュー依頼が飛ぶので、気になる人は個々にチェックして指摘することもある。

Q.レビューの文化は?

A.見る人は見る。セキュリティ的な問題は、大体同じ人が発見する。

Q.京都からの移動はどうする?

A.はじめは2拠点体制でチームを運用

Q.新卒採用は?

A.片手ぐらいの人数で採用を考えている

Q.Solrとかはどうやって導入したの?勝手にやったの?

A.とりあえずプロトタイプを作って、ディレクターと社長に見せて許可をもらった
A.撤退が容易かどうかが重要。例えば、MySQLを置き換えるとかは、データが失われたら復旧出来ないので、なかなか出来ない。

Q.収益源は?

A.広告メイン、ブログの有料会員とか

Q.機械学習のスパム判定は常時動いているのか、適当なタイミングでバッチを走らせているのか?

A.常時だと、全ブクマがスパム判定される可能性があるので、エンジニアが判断して、操作してる

Q.新サービスのリソースは?

A.はじめは小さく始める。開発合宿で新機能の開発を行ったりしている。

Q.Githubじゃなくて、Github Enterpriseを使った理由は?

A.コードは超重要なので、社内においておきたい。数百サーバーにデプロイするのに、Githubからだと遅延が気になる。現場でもGithub Enterpriseを使いたいと要望があったので。

〆のことば

近藤さん id:jkondo / @jkondo

シリコンバレーから戻ってくるとき、海外じゃなくても世界に向けてサービスを提供出来るのではないかと思ったとのこと。
世界に通用するWebサービスを提供するため、とにかくいいものを作る為に、京都を選択した。

今、はてなをさらに拡大していくために、東京にも開発センターを作る。

東京と比べると、京都は本当に集中できるいい環境だと思う。
京都と比べると、東京はベンチャーも盛んで、刺激や得るものが多い。
どちらも行ったり来たりして、いいとこ取りをすれば良いと思う。

サービスで人々を豊かにしたい。

最後に

ざっとセミナーの内容をまとめてみました。

写真OKだったらしいのですが、静かすぎて撮るタイミングを逸してしまったので、表の案内だけ。

頂いたステッカーも。

はてなのセミナーは初参戦でした。
以前からはてなユーザーだったので、参加出来てよかったです!
これからもセミナー開催お願いします!!

コメントは受け付けていません。