このページの記事一覧

2012年3月27日火曜日

米国への引越とFacebook入社のご報告

件名の通り、私は米Facebookに最近入社したことをここでご報告します。

相変わらずMySQL関係の仕事をすることになります。
チームメンバーはアジアには誰もおらず大半が米国本社(Menlo Park)にいるため、自分も引っ越すこととなりました。
すでに生活の拠点を会社から10km未満というそう遠くないところに移しています。

当然ながら入社前に話をオープンにするわけにもいかないので、DeNAの中の方たちや、ごく親しい人にしかご挨拶ができずにすみませんでした。

このBlogの読者であればご存知のように、私はキャリアの途中からほぼMySQL一本で仕事をしてきています。

実はDeNAは、世界でも指折りのMySQLのヘビーユーザとして認知されています。
去年の米MySQL Conferenceでは会社としてAwardを受けました。それも純粋に技術的な貢献が評価された上での受賞であり、「日本でのコミュニティ活動に貢献した」のような海外のユーザにとって技術的な意味のないものではありませんでした。MySQLヘビーユーザ企業としては国内では文句なくNo.1で、海外でも2-5番目くらいの位置にいると言えるでしょう。

では世界で最もMySQLを使い倒しているユーザ企業と言えば、それはFacebookであることに疑いの余地はありません。
というわけで引き続きMySQL関係のお仕事をやっていきます。

DeNAでは1年半しか仕事をしなかったのですが、実力のある同僚に恵まれたこともあり、マスターの無停止切り替えや自動フェイルオーバーによる可用性の向上、効率化/高速化によるコスト大幅改善など、良い成果を出すことができました。
去年の後半には社内で社長賞を頂いたのですが、言うまでもなくそれは周りの方のおかげです。
一度問題を解決すると、類似の問題をことごとく自力で解決してくれる有能な若手技術者に恵まれたことや、マネジメント層が色々と気を使ってくれたりしたことで、
自分が現場にいながらにして中長期的な施策に多くの時間を割くことができました。
インフラチームや、ソーシャルゲームチームの同僚たちにとても感謝しています。ほかの会社ではこの短期間で同等の成果を出すことは難しかったと思います。
ですから、今でもエンジニアに対してDeNAという会社を自信を持って勧めることができます。

では、なぜ移るという決断に至ったのかというと、それは去年後半にお誘いを受けたというのが直接のきっかけではあるのですが、以下のような様々なことを考えて総合的に決めました。

・データベース技術の未来について
 ・データベース技術にはどのような分類があり、
 それぞれの領域は今後どのように進化していき、
 どのような人材が求められるようになるのか、
 ということに対する自分の考え

・エンジニアのキャリアについて
 ・インフラエンジニアのキャリア形成について
 ・一点集中型と全方位型の違いについて
 ・枯れた技術と新しい技術の違いについて
 ・ベンダーとサービス企業の違いについて
 ・海外に住んで働くということについて
 ・日本という国についてどう思っているか
 ・家族/結婚/出産/住宅ローンなどについて
 ・ソーシャルゲームやライバル企業について

2月末に、DeNAの多くのエンジニアの方に対して、この「データベース技術の未来と エンジニアのキャリアを考える」というテーマで90分間にもわたって自分の考えを発表させて頂くという機会を頂きました。この内容は社外秘の情報を含むのでここでお見せすることはできませんが、参加してくださった方々の反応を見てもかなりの手応えがあったので、自分としても後悔の無いようにやっていきたいと思います。

今後ともどうぞよろしくお願い致します。

2012年3月6日火曜日

新著「Webエンジニアのための データベース技術[実践]入門」

データベース技術に関する新著を執筆しました。「Webエンジニアのための データベース技術[実践]入門」という本です。



第1章:データベースがないと何が困るのか
第2章:インデックスで高速アクセスを実現する
第3章:テーブル設計とリレーション
第4章:SQL文の特徴とその使いこなし方
第5章:可用性とデータの複製
第6章:トランザクションと整合性・耐障害性
第7章:ストレージ技術の変遷とデータベースへの影響
第8章:データベース運用技術の勘どころ
第9章:MySQLに学ぶデータベース管理
第10章:MySQLのソースコードを追ってみよう
第11章:データベース技術の現在と未来
第12章:ビッグデータ時代のDB設計

---「はじめに」より
 私たちが日々活用しているオンラインサービスでは、ほぼ例外なくデータベースが背後で重要な役割を果たしています。ブログサービスのような無料のものだけでなく、ショッピングサイトのようにお金が動くもの、オンラインバンキングのように高額のお金が動くクリティカルなものに至るまで、あらゆる環境でデータベースは使われています。これらのサービスは例外なくデータを保存しておく必要があり、そのデータの保存場所がデータベースです。
 私たちは、背後のデータベースがどうなっているかなどと意識することなく、こうしたサービスを使うことができます。ただ、そのサービスの「質」を意識させられる場面は少なからずあります。頻繁にアクセス不能に陥ったり、応答時間が遅かったりするサービスは少なくありません。こうした質の問題は、背後にあるシステムの品質に大きく依存します。データベースもその中で非常に重要な役割を果たしています。
 データベース自体の歴史は長く、インデックスやデータモデリング、トランザクションといった基幹の技術は大きくは変わっていません。それにも関わらずデータベースに起因する問題がよく発生するのは、データベースに対する理解が十分ではないからというのが大きな要因でしょう。本質を理解すれば、流行に振り回されることなく適切な設計ができるようになるはずです。
 本書は、データベース技術のトレンドを整理して体系的に解説することで、こうした本質面での理解ができるようにすることを目指した書籍です。元々は技術評論社のSoftware Design誌に連載したものをベースにしています。Software Designや姉妹誌のWeb+DB Pressでは筆者が専門としているMySQL関連の特集記事の執筆などを行なったことがあり、これらのトピックも取り入れています。本質面での話と、MySQLの具体的な話を織り交ぜることで、より理解を深められるような構成を心がけたつもりです。
---

 小手先のツールが使えようが何だろうが、基本を知らん奴はトラブルの現場では何もできやしない、ということで、データベース技術の歴史を振り返り基礎をおさえたい方におすすめです。