SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

【デブサミ2016】セッションレポート(AD)

【デブサミ2016】18-A-1レポート
ヤフーCTOが語る、Yahoo! JAPANのテクノロジー20年の軌跡と未来への挑戦

  • このエントリーをはてなブックマークに追加

 日本最大級のポータルサイトYahoo! JAPAN(ヤフー)。20年にわたり、社会の課題をITの力で解決する「課題解決エンジン」として、時代に即した様々なテクノロジーやサービスを提供し続けてきた。そして近年、業界はもちろん、様々な社会の変化が加速度的に進み、また新たなテクノロジーが求められている。そうしたニーズにヤフーがどのように応え、エンジニア集団としてどこを目指すのか。同社CTOの藤門千明氏が「今後のヤフー」について語った。

  • このエントリーをはてなブックマークに追加

ヤフー株式会社 CTO 藤門千明氏
ヤフー株式会社 CTO 藤門千明氏

コテコテ純日本のクリエイター集団「ヤフー」

 日本屈指のインターネットサービスとして知られる「ヤフー」だが、意外にカンファレンスなどでの登壇も少なく、その実態について誤解する人も多いのではないだろうか。たとえば、あるときはpingの発射先として認識され、米国ヤフーの日本法人と思われ、開発を自社で行わないビジネス企業と捉えられる。さらには米国のサービスを日本に普及させるビジネスモデルであり、独自開発を主としていると思われがちだ。

 しかし、実のところは「コテコテの日本企業」であり、社員の約半数である2500人がエンジニアやデザイナーというクリエイター集団だという。そして彼らが開発するのは数々の独自サービスであり、基本的にはオープンソースを活用し、OpenStackなどのオープンソースコミュニティにもコントリビューターとして積極的に参画している。そんなヤフーの技術力と“エキサイティングさ”を伝えたいと同社CTOの藤門千明氏は語る。

 確かに、月間631億以上のPV、一日8300万以上のユニークブラウザ、そして月間アクティブユーザーIDは3100万とサービス規模は日本最大級。月間有料会員1600万ID、サービスは100以上を数え、アプリについては数えられないほど。その成長ぶりは、20年間で月間総ページビューは6000倍以上になり、その半数以上がスマートフォンからのものになっている。さらに2014年より2年連続でスマホアプリ(※ゲームアプリを除く)のパブリッシャーNo.1を獲得しており、藤門氏は「近年、着実にスマホシフトが進み、既におよそ6割のDUB(デイリーユニークブラウザ)がスマートフォン経由となっている」と語る。

自社サービスはファシリティからHTTPキャッシュまで全てを開発

 そんなヤフーのサービスは、どのような技術で構築され、運用されているのか。藤門氏は、ファシリティから、インフラ、ミドルウェアやサービングエンジンまで、いわば下から上までトータルに開発し、それぞれの強みを発揮しているという。

どんな技術で運営しているのか(インターネットサービス)
どんな技術で運営しているのか(インターネットサービス)

 ファシリティとしては、日本4カ所と米国ワシントン州にデータセンターを持ち、帯域400Gbps、平均200Gbpsの環境を運営する。また、OSは近年になってCentOS(RHEL)、そして6万台以上の物理マシンに加え、OpenStackをベースとしたプライベートクラウドを組み、仮想マシンとして活用している。

 「当初は全て自分たちで構築をしていたのですが、そのうちどんどん手が回らなくなってきました。そこで2013年よりクラウドの基本機能についてはOpenStackを導入してコミュニティによるグロースを促進し、ストレージはどうするのか、ACLをどう設定するのかといった不足分はベンダーと共同開発しました。そして、それでも不足する部分についてはヤフー独自の機能として開発する。それを戦略的に行ってきたわけです」(藤門氏)

 その結果、8万台以上のVMへ到達。ヤフー独自機能に注力し、OSSコミュニティを活性化し、現在では社内のほとんどのサービスで活用されているという。

 また、その上の開発ツールについてもまたDevOpsの開発ツールが一式揃っている。Jenkinsなどを活用した継続的インテグレーション(CI)の仕組みが整っており、さらに継続的デリバリー(CD)ではChefなどを使って構成管理し、デプロイするといった開発スタイルを実現している。すべてがこれに則っているわけではなく、「これから2000人のエンジニアがこれに乗ろうというステイタス」(藤門氏)だという。

どんな技術で運営しているのか(開発ツール)
どんな技術で運営しているのか(開発ツール)

 プログラム言語については、サービスが複数のビジネス分野にまたがること、エンジニアによって好き嫌いがあることなどから、選定には苦慮するものだ。そこで、ヤフーでは、言語の選定基準として「メンテナンス、学習コストを最小化すること」「オープンソースとの親和性」「過去のソフトウェア資産の活用」の3点を明確に定め、それに基づき選定している。WebサーバはPHP、サーバサイドのJavaScriptに対応、ビッグデータやコンピューティングリソースが必要な場合はCや C++、Javaを使っているという。

 また、Webサーバも同様に選定が難しいものだが、安定性やパフォーマンス、セキュリティを考慮してApacheやNode.js、Jettyを採用。さらに安定性とパフォーマンスを意図して独自のパッチをあてているため、社内では、ApacheはyApache、Node.jsはyNode.jsと呼ばれている。

 HTTPキャッシュについては、画像やスタイルシート等をWebサーバ側から配信するとコストがかかるためCDNを経由している。さらに天気やファイナンスといったサービスもTraffic Serverを挟んで提供されている。そうしているのはWebサーバへの大量のリクエスト集中や、ヤフー砲からの防御のためだ。また、オブジェクトストレージ、プッシュ通知や認証、セキュリティといったヤフー全体を支えるプラットフォームも自前で用意している。

 「技術的リソースを一部に特化するより、全体を自社で開発することで、たとえサービスダウンした際にも、自らの責任のもと復旧できるようにという思いがあります。そして、これらのテクノロジーをトップダウンで決めるのではなく、新卒からベテランまでプルリクエストで意見を交換し、クリエイターが議論して決めていく仕組みがあります。そこに大きな意味があると考えています」(藤門氏)

次のページ
20周年を迎え、新たな挑戦へ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
【デブサミ2016】セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9304 2016/03/16 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング