2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
藤門千明氏(以下、藤門):先ほどからのつなぎになりますが、90以上のリリースができた3つめもう1つの理由。技術への投資があります。
先ほどもいくつか伝えましたが、この90以上のサービスでこのコロナ関連特集や混雑情報の可視化、旅行、飲食、イベントの支援といったさまざまなサービス開発を独自で我々はやってきましたが、これを担当したエンジニアに対して「なんでみんなこんなに早くサービスをローンチできたの? リリースできたの?」と、ヒアリングをしています。
結果、すべての開発者に共通して出てきたワードが実は3つありました。CI/CDの導入。CIはContinuous Integration、テストの自動化やアプリケーションのビルドの自動化。加えてCDです。Continuous Delivery、これはリリースの自動化が進んでいたからというのが1つ。
2つ目がYahoo! JAPANの開発環境。先ほど東日本大震災の時は物理サーバーの確保に奔走していたと伝えましたが、クラウドネイティブな環境を自ら構築して、開発したいときにすぐサーバー環境に入らせるようにしていたのが2つ目。
そして3番目は、2番目と関連しますが、クラウドネイティブな環境で動作させていれば、その中で動くサービスプラットフォームを組み合わせることで、よりリッチなサービス体験を提供できるようになっていたから。この3つがあったからこそ、サービスが早くリリースできたとみんな口を揃えて言っていました。
じゃあこれはいつ頃から着手していたのかですが、実はかなり前からです。早いものだと2014年ぐらいから実は着手をしていて、今この環境がすべて整っています。今日はまず、どういう技術投資をしてきたか、3つのポイントを伝えられればと思っています。まず、CI/CDの導入です。
私が2015年にCTOに就任してから、ヤフーで初めて、すべてのエンジニア、デザイナーを集めて「これからのYahoo! JAPANはどういう技術開発、サービス開発をしていくんだ」という集会、オールハンズをしました。この時に、Yahoo! JAPANは今度CIを導入してテストを自動化しようと。しかも、それを半年以内にやり遂げて、テストが自動化できる会社に変えようとしたがこの2015年12月の話です。
なぜテストを自動化するのか。これは、よいサービスをユーザーに早く届けるためにテストをしているんだと。全従業員に朝礼など、いろいろな場所で繰り返し伝えています。これがどうして今のコロナ禍において機能しているかというと、よいサービス、よい機能がユーザーに待たれているから作りたい。
ただ、今動かしているサービスに、どうしても手を加えて変更しなければいけない。もし変更して間違ったらユーザーに適切な情報を届けられないかもしれない。ただテストを自動化していれば「大丈夫、僕は大丈夫。なぜならテストを自動化しているから。ソースコードを修正してもし間違っていても、必ずテストでそれが発見できる。だからよいサービスを作るために、ワイルドにソースコードに手を入れて機能開発できるようになる」ということです。
実際に半年でCI/CDの仕組みを立ち上げて、Yahoo! JAPAN開発サイクルもどんどん早まってきています。加えて、このCI/CDのプロセスがYahoo! JAPANにとって非常に大事なものになってきていて、Yahoo! JAPANの開発環境や、サービス規模により最適なCI/CDのツールを作ったほうが、更に私たちの開発サイクルを早められると思いました。
CI/CDのツールも、今は自分たちで作っています。具体的にはアメリカのYahoo!とベライゾンメディアとヤフーがの共同で作った、ScrewdriverというオープンソースでCI/CDツールを公開していますが、自らこのCI/CDのツールを作って、Yahoo! JAPAN上でテストやリリースの自動化を今しております。
今現在どうなっているのかがこのグラフです。これは始まってから今までの話ではなく、実は2019年と比べてどうだったか、1年間の差分だけでもこれだけ違うことを今日は伝えられればと思っています。例えばCIに関して言うと、1年で1日のビルド回数は1万回以上増えていて、トータルでいっても1.5倍のビルドの回数。アプリの変更の回数は、CIの導入によってどんどん増えてきています。
加えてCD、Continuous Deliveryです。青いグラフがリリースの数ですが、1年を通じて倍増しています。加えて、黄色の折れ線グラフ。
これはサービスを開発しようと思って手を加えてから、実際に世に出るまでの時間を表しています。このChange Lead Timeがどんどん下がっている。ほぼ半減するところまで来ています。ユーザーのみなさんにとって価値のある課題解決を、ものすごい早さでできるようになったのが、このCI/CDの導入によるものだと私は思っています。
そして2つ目。クラウドネイティブな開発環境を自ら作っていったこと。これが早くリリースできた2つ目の技術投資のポイントです。現在自社で開発しているヤフーのクラウドネイティブな環境は3つあります。上から、Platform as a Service、PaaSというもの。そして真ん中が、コンテナ技術を使ったContainer as a Service。
そして最後、2017年4月にいわゆるサーバーレスという、サーバーを使わない技術ですが、Function as a Service。この3つをYahoo! JAPANの新しいクラウドネイティブな環境として構築し、今多くのサービスがこの環境下で動いています。どうしてこのPaaS、CaaS、FaaSを使うとサービスの開発スピードが速くなるのか。
これはPaaSの例ですが、Yahoo! JAPANには、大きく分けてアプリケーションを作るエンジニアとインフラを作るエンジニアがいます。サービスを作るエンジニアがユーザーのタッチポイント。ブラウザやアプリなど、ユーザーとコミュニケーションするアプリケーションを書くエンジニアが、このサービスクリエイターという職種です。サービスクリエイターのみなさんには、やってほしいことがある。
それは何かというと、ユーザーの課題解決だけにフォーカスしてほしい。一方で、例えば物理サーバーを買ってしまうと、サーバーのOSの設定やストレージの設定、ネットワークの設定を全部やらないといけません。ただ、私たちがサービスクリエイターにやってほしいところはそこじゃない。PaaSの右側の青い部分だけを一生懸命やってもらうと、本質的な開発業務に集中できると。
サービス開発、機能開発に集中してもらって、90以上のサービス開発につなげられます。Yahoo! JAPANで開発しているContainer as a Service、みなさんが大好きなLinuxコンテナを使った開発環境の利用状況ですが、社内サービス開発当時はグラフの一番左側です。
たった5クラスタから始めましたが、Yahoo! JAPANのサービスがこのクラスタの環境を利用することで、今現在では130倍に成長しています。多くのヤフーサービスがこのコンテナ上で今動くようになり、結果として素早い開発ができるようになったのが、Yahoo! JAPANの2番目、クラウドネイティブな開発環境の話になります。
最後、3つ目のポイント。クラウドネイティブな環境で動作するプラットフォームに対する技術投資をして、サービス開発のスピードが速くなった話です。Yahoo! JAPANの開発環境の上で、クラウドネイティブな環境で動作するサービスのプラットフォーム。ここに全部は書いていませんが、例えばこういうものがあります。
例えば「Yahoo! 〇〇」というサービスを立ち上げようとしたとき、何か機能を加えようとしたとき。キュリティのフレームワークを入れたいと思ったら、一番の左にあるセキュリティのフレームワークをプラットフォームとして導入し、サイト内で検索エンジンを作りたいと。
そういう場合は、右の上の検索エンジンのプラットフォームを使えば簡単に作れます。AIを使って、ユーザーに何かおすすめの記事を出したり、おすすめの商品をレコメンデーションしたい場合は、左下のAIのプラットフォームを使えばすぐ簡単に作れるようにYahoo! JAPAN上ではなっています。
例えば、マイクロソフトのAzureや、AmazonのAWSを想像してもらえればわかるかと思いますが、その社内版がYahoo! JAPANには構築されていて、多くの従業員がこれを使ってYahoo! JAPANのサービスを作れるようになっています。
まとめると、Yahoo! JAPANはこのクラウドネイティブな環境で動作するアプリケーションを実は作っているから、この真ん中の雲で書いてあるサービスのプラットフォームを使うことで、よりリッチなユーザー体験を作れる。開発の効率もどんどん上がるので、サービス開発のスピードがどんどん速くなっていく、というのがYahoo! JAPANの特徴になっているのです。
(次回につづく)
関連タグ:
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05