Special
» 2020年10月26日 10時00分 公開

簡単ではない「アーキテクチャや文化の改善」を実践し続けるポイントとは:ヤフーのあくなき挑戦、サービス基盤と開発スタイルを、どう進化させてきたか

ヤフーはマイクロサービスアーキテクチャへの刷新を進め、現在ではヤフーが提供する数多くのサービスの基盤として活用している。また、開発の文化や組織に関する課題を解決するため、「820Labs」を設置し、社内での活用を推進している。

[PR/@IT]
PR

さらなるスピード化と効率化を目指し、2015年に開発・運用体制を見直す

 1996年の創業以来、ポータルサイト「Yahoo! JAPAN」をはじめとするさまざまなサービスで、日本のインターネットをリードしてきたヤフー。現在は「UPDATE JAPAN 情報技術のチカラで日本をもっと便利に」をミッションに、「Yahoo!ニュース」などのメディアサービス、「Yahoo!ショッピング」「ヤフオク!」などのEC(電子商取引)、「PayPay」などの金融ビジネスという大きく3つの事業領域で100を超えるサービスを展開する。

 それらのサービスは自社で開発し、サービス基盤を含めて自社で運営してきた。ただし、多岐にわたるサービスを長く提供する中で、2010年ごろからさまざまな課題に直面するようになったという。

ALT ヤフー テクノロジーグループ システム統括本部
水落啓太氏

 まず、開発面では「ユーザーのニーズに、いかにスピーディーに対応するか」が問われるようになった。そこで2012年から「爆速」を旗印に、企画・開発・運用の一体化を進め、開発の効率化とスピード化に取り組んだ。またサービス提供基盤の面では、事業部ごとにインフラが構成されることなどから運用が非効率になっていた。そこで物理サーバ環境から仮想環境への移行を進め、リソースの有効活用と効率化を推進した。ヤフー テクノロジーグループ システム統括本部の水落啓太氏は、当時のインフラ面での取り組みについてこう説明する。

 「開発と運用の一体化やOpenStackを使った仮想化を進めていましたが、さらなる開発の効率化や合理化が求められる状況でした。そこで取り組んだのがPaaS基盤の構築です。2015年から『VMware Tanzu Application Service(当時はPivotal Cloud Foundry)』の検討を開始しました」(水落氏)

ALT ヤフー CTO室 アプリ統括部 部長
西磨翁氏

 また、開発の文化や組織体制の面でも課題が出てきていた。2015年ごろにはアジャイル開発手法は社内に広がっていたのだが、良い結果につながらないケースが出始めていたという。ヤフー CTO室 アプリ統括部 部長の西磨翁氏は、こう話す。

 「スクラムでは、同じメンバーで継続して取り組むことでプロダクトのより良いアップデートが可能です。一方、メンバーが入れ替わると、従来のスタイルを維持しにくくなるという課題がありました。そこで2016年から、『VMware Pivotal Labs(当時Pivotal Labs)』を活用して、リーン(Lean)開発やエクストリームプログラミング(XP)の手法を学び始めました」(西氏)

 2020年現在、VMware Tanzu Application Service(以下、TAS)とVMware Pivotal Labs(以下、Pivotal Labs)は、ヤフーの開発・運用を支える重要な存在になっている。

PaaSとリーンXPの導入に当たりヤフーが抱えていた課題とは

 TASの採用に当たり、ヤフーが抱えていた課題は大きく3つある。

 1つ目は、運用効率の向上だ。OpenStackの導入や基盤の集約などによってIaaS面での効率化は進んでいたものの、OSや基盤部分のメンテナンスといったビジネス価値の向上につながりにくい業務が残っていた。インフラチームのエンジニアがOSのパッチ当てや基盤のアップグレードなどに時間を取られることも増えていた。

 2つ目は、開発スピードの向上だ。社内では、CI/CD(継続的インテグレーション/継続的デリバリー)ツールを使ったDevOpsの取り組みが進んでいたが、開発者はIaaSとして提供される仮想マシンに対する操作など、本来、開発業務と直接関わらない作業が増えていた。

ALT ヤフー テクノロジーグループ システム統括本部
石川真幸氏

 3つ目は、アーキテクチャの刷新だ。ヤフーのサービスには、歴史的ないきさつからモノリシックな(全ての機能を単一のアプリケーションに統合する)アーキテクチャで構成されていたサービスが少なくなかった。ユーザーのニーズに爆速で対応していくためには、当時、注目を集め始めていたマイクロサービスアーキテクチャ(機能ごとに細かくサービスを分割して開発や運用を行うアーキテクチャ)やコンテナへの移行が必要だと考えられた。

 ヤフー テクノロジーグループ システム統括本部の石川真幸氏はこう話す。

 「これらの課題を解決する手段がPaaSでした。PaaSを採用することでアプリケーションエンジニアはOSや基盤のメンテナンスから解放され、アプリケーション開発本来の作業に集中できます。また、インフラ管理に関わる作業を最小限にすることで、DevOpsの取り組みを加速できます。さらに、モノリシックでレガシーなアプリケーションをマイクロサービスへとモダナイズする作業もスムーズになると期待していました」(石川氏)

 一方、Pivotal Labsの利用に当たって抱えていたのは、チームのメンバーが入れ替わることでスタイルが維持できなくなるという課題だった。具体的には、ドキュメントがメンテナンスされなくなったり、テストコードが書かれなくなったりしていた。また、新しいメンバーが参加したときに教育などの受け入れコストも高くなっていた。こうした課題が積み重なった結果、リリース予定が延期される事態に陥ることもあったという。

 「Pivotal Labsでは、リーンとXPを融合させた体系化されたアプローチを採用していると聞き、興味を持ちました。当時は、ヤフオク!のアプリ開発部部長だったことから、まずヤフオク!でトライアルを開始しました」(西氏)

VMware Tanzu Application ServiceとPivotal Labsを選択した理由

 TASの採用は2015年末に正式に決定し、2016年から導入が始まった。選定に当たって特に重視したのは、サービスのアーキテクチャをモダンな形に進化させられる点だ。これに伴って、インフラの運用効率や開発スピードの向上を目指した。選定には、サービスごとにマネジャーと構築担当者が数名ずつ選ばれ、Kubernetesなどの競合製品と比較した上で、最終的にTASに決定した。

ALT ヤフー テクノロジーグループ システム統括本部
吉田幸平氏

 「採用の決め手は、機能やサポートが充実していたことです。脆弱(ぜいじゃく)性への対応など手間のかかる作業についても、TASの『Buildpack』という、機能を拡張する仕組みを用いることで簡単に実施できました。製品として成熟しており、サポートも手厚いことを評価しました」(石川氏)

 Kubernetesなどの新しいプロダクトを採用し「機能改善しながら一緒に成長していく」アプローチも検討されたが、当時は「全社的な取り組みとして、各サービスのマネジャーと推進する上では、成熟した製品を採用し、まず現状の課題を解決することが重要」と判断したという。Kubernetesは一部環境で採用することにとどめ、TASを中心にマイクロサービスアーキテクチャを推進した。

 導入はユーザーの開発環境からスタートし、1年後には本番環境での稼働が始まった。2020年現在、Yahoo! JAPANのポータルサイトをはじめ、ヤフオク!、Yahoo!ショッピング、Yahoo!天気・災害、Yahoo!路線情報など数多くのサービスでTASが活用されているという状況だ。

 ヤフー テクノロジーグループ システム統括本部の吉田幸平氏は「アプリケーション数は約1万7000、本番環境を含む全ての環境で8万コンテナが稼働しています。現在、フロントエンドに近いサービスではTASで、複雑で特殊な要件のものはKubernetesで運用しています。運用はPrivate PaaSチームの20人で行っています」と説明する。

ALT ヤフー コマースカンパニー ヤフオク!統括本部
山下真一郎氏

 一方、Pivotal Labsのサービスについては、2016年からペアプログラミングに代表されるリーンXPをPivotal Labsで2カ月学び、その後、ヤフオク!チーム内に専用の開発ラボを設けて推進された。ヤフー コマースカンパニー ヤフオク!統括本部の山下真一郎氏は「当初は『スクラムでいいのでは』という声がかなりありました。今までのやり方を変えようとすると、実践できるメンバーが過半数に達しないとどうしても反対されやすい。当初は孤軍奮闘であっても、効果を少しずつ認めさせていくことが大事です」と振り返る。2018年には社内に推進のための組織「820Labs」が設置され、徐々にリーンXPが広まってきている状況だ。

VMware Tanzu Application ServiceとPivotal Labsがヤフーのビジネスにもたらしたもの

 TASの導入効果は、さまざまな形で現れている。

 まずは、OSやミドルウェアの脆弱性対応などをサービス事業者に任せることができたことだ。これにより、インフラの運用効率が向上し、アプリケーションエンジニアがより価値の高い業務に集中できるようになった。現在は、PaaS基盤のメンテナンス作業は一切必要ないという。また、クラスタは導入当初から10倍に増えたものの、人員は数人しか増えておらず、効率的な運用を維持している。

 開発スピードが向上し、ユーザーのニーズに応えやすくなったことも大きな成果だ。開発のリリースサイクルがより速く回るようになり、環境変化に合わせて、必要なサービスを素早く提供できるようになった。

 こうしたメリットは、アーキテクチャ刷新の効果と併せて、ヤフーのサービスを利用するエンドユーザーにも直接的なメリットをもたらしている。ヤフーが提供するサービスの中には、地震速報や台風情報など、社会インフラとして広く利用されているものも少なくない。地震や台風などの自然災害が発生すると、サービスへのリクエスト数がスパイクするが、仮想マシンと比べてPaaS環境ではスケールがしやすいため、必要な情報をタイムリーにユーザーに届けられるようになっている。

 「TASのメリットは手軽に使えることです。仮想マシンやKubernetesなども併用していますが、OSやクラスタ管理などアプリケーションより下の部分を見る必要がどうしてもあります。簡単なワークロードをTASで扱うことで、これまでとは全く違う開発者体験を提供できます。2021年度に向けてさらに8つのTASクラスタを追加するなど、今後も利用を拡大していきます」(水落氏)

 一方、Pivotal Labsの導入効果としては「テスト時の品質が向上したこと」「開発チーム全員が仕様に詳しくなり、属人化が解消されたこと」「残業削減にも効果があったこと」の3つを定量的に確認している。

ALT リーンXPスタイルを実践した結果、テストの品質が向上し、失敗数が100分の1以下に減少した(出典:ヤフー)
ALT リーンXPスタイルの実践で8割以上のエンジニアが仕様理解が進み、属人化が解消した(出典:ヤフー)

 「総テスト数に占めるテスト失敗数はリーンXP導入前と比べて100分の1になりました。取り組みを継続することで、テスト失敗数を低い状態に保つことができています。また、仕様に詳しくなることで、必ずしもドキュメントが最新ではなくても取り組めるようになり、リリース日を守ることにもつながっています。その上、残業も削減できています」(西氏)

 社内におけるリーンXPの採用率は10%ほどだが、現在は16%まで向上させることを目指してペアプログラミングの研修やツールの提供を進めている段階だ。文化から変えることは簡単ではないが、水落氏は「トップダウンの強いメッセージを出すこと、適材適所で進めること、キャズムを超えるまで背中を押し続けること」がポイントだと強調する。

 ビジネス環境が激しく変化する中で、時代に合わせてアーキテクチャや文化を見直し、作り替えることは簡単なことではない。それを実践し続けることができるのがヤフーの強みといえる。TASやPivotal Labsは、そうしたヤフーの取り組みを今後も支援していく。

Copyright © ITmedia, Inc. All Rights Reserved.


提供:ヴイエムウェア株式会社
アイティメディア営業企画/制作:@IT 編集部/掲載内容有効期限:2020年11月25日

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。