Uber、エンジニアリング サステナビリティの構築を評価され DevOps Awards を受賞
Google Cloud Japan Team
※この投稿は米国時間 2023 年 7 月 21 日に、Google Cloud blog に投稿されたものの抄訳です。
Uber は 2009 年にサンフランシスコで設立されて以来、物理世界とデジタル世界をつなげることに専心してきました。Uber のアプリベースのサービスは、Uber および Uber Eats における月間約 1 億 3,000 万人のアクティブなプラットフォーム ユーザーと、月間 560 万人を超えるアクティブなドライバーと配達パートナーを結び付けています。このブログ投稿では、2022 年の DevOps Awards で「DevOps communities of practice(DevOps 実践コミュニティ)」賞を獲得した Uber による DevOps の成功事例をご紹介します。DevOps Awards の受賞者と、各受賞者が DevOps Research and Assessment(DORA)の指標と手法を活用してビジネスを成長させた事例の詳細については、まずこちらをご覧ください。
70 か国、10,000 都市を超える地域で事業を展開する世界的な組織として、Uber は温室効果ガス排出量を最小限に抑えることに重点を置いています。2020 年、Uber はグリーン リカバリーへのコミットメントを表明しました。これには、2040 年までに完全なゼロ エミッション プラットフォームとなり、配車 / 配達サービスの 100% をゼロ エミッション車、公共交通機関、またはマイクロ モビリティで行うという取り組みが含まれています。また、Uber は、ゼロ エミッションな世界へ向けてサステナブルなエンジニアリングのベスト プラクティスを実践し、サステナビリティを重視した斬新なプロダクトを導入することにも取り組んでいます。
これは、とりわけ大規模な組織のサステナビリティ指標であることを考慮すると、大きな変革といえます。Uber では、大規模なプロダクトやソフトウェア サービスを運用する際に大量のハードウェアが必要になります。つまり、エネルギー消費を低く抑えるには、ソフトウェアやハードウェアにサステナビリティの自動化を実装し、従業員の間にサステナビリティの文化を醸成するなど、あらゆるレベルでの最適化が求められます。
目標
サステナビリティのニーズを満たすには、こうした変革と並行して社内文化を変化させる必要がありました。たとえば、次のようなものです。
サステナビリティを改善できる領域を特定する
そうした変化の導入を推進する方法を決定する
Uber のサステナビリティ文化にマッチした技術環境を構築する
Uber グリーン ソリューション
コミュニティにおけるこうした取り組みを設計するため、Uber はサステナビリティのサービスとプログラムの専門家からなる小規模な「フォーカス チーム」を社内から集めることから着手しました。このチームの目標は、知識とツールを社内の開発者とエンジニアのコミュニティに提供し、サステナビリティのベスト プラクティスを拡大して広めることでした。これは、Uber のコアバリューの一つである「正しい行いをすること」に基づいており、その一環として、業務慣行を更新し改善する方法、サステナビリティを念頭に最適化する新しいツールやサービスを生み出す方法を発見することを目的に、アクティブ リスニング セッションを開催するなどしています。
Uber が採用したベスト プラクティスには次のようなものがあります。
プロダクトに対する責任: エンジニアと開発者は、単にメンテナンスを実行するのではなく、プロダクトの継続的な改善に責任を負っています。
サステナブルな CI: 各チームに、継続的な改善ライフサイクルにサステナビリティを直接組み込んで計画するよう奨励しています。
あらゆるレベルからの改善: 経営陣と連携してガイダンスに影響を与えたり、サステナブルな開発にスポンサーシップを提供したりするなど、ボトムアップとトップダウンのアプローチを奨励しています。
こうした文化を継続的に構築し、広めていくなかで、Uber は Google Cloud を価値あるパートナーと認識しました。サステナブルなエンジニアリングに対し、両社それぞれが同様に献身しているからです。Carbon Footprint ダッシュボードなどのツールにより、Uber は CO2 排出量を削減する重要な機会を特定することができました。主要なサービスの一つ(社内では「Google Cloud プロジェクト ライフサイクル」と呼んでいます)では、組織における Google Cloud プロジェクトのアクティビティがすべてモニタリングされ、最適化に関する推奨事項が提供されています。このプロジェクト ライフサイクルにより、チームは次のことを発見しました。
一部の未使用のリソースと Google Cloud プロジェクトが削除されていなかった
削除された Google Cloud プロジェクトについても、そうするまでに各チームで 6 か月から 1 年かかっていた
削除は長く時間のかかるプロセスであった。また、少数のケースながらも、ヒューマン エラーによってプロジェクトが手動で削除され、再作成が必要になることがあった
何を変更する必要があるかを把握した後、私たちは、手動のメンテナンスによる速度の低下や潜在的な問題を発生させずに調整を行う自動化ソリューションを作成することにしました。対面会議やビデオ会議を通じて Google Cloud チームと連携することで、各チームからフィードバックを収集し、機能リクエストを送信し、バグを修正して改善とイノベーションを推進するうえで最良の方法を決定しました。こうしてまとめられたソリューション、Sustainability Suite は、次のようなクラウド コンピューティングの 5 つの重要な特性によって大部分が定義されています。
リソース プーリング: Uber は、Google Active Assist にクエリを実行して情報を Firestore に保存する Python スクリプトの実行の担い手として Cloud Functions を使用して、未使用または十分に活用されていない Compute VM、プロジェクト、リージョンなどを見つけて記録します。
迅速な拡張: 0 から必要なコンピューティング容量まで拡張できるスケーラビリティにより、Uber は、大規模なファイルを受信してすぐ検査するなどのイベントベースのオペレーションを実行でき、不要なときにマシンを実行し続ける必要がありません。
サービスの測定: おそらく Sustainability Suite の最も重要な側面は、プロジェクトまたはリソースの範囲内のアクティビティを測定し、CO2 排出量などの傾向を判断して、プロセスを自動的に最適化したり、ユーザーが改善を推進できるように推奨事項を発行したりできる機能です。
オンデマンドのセルフサービス: Uber のエンジニアは、その場でリソースの再プロビジョニングやプロビジョニングの解除を行えるため、リソースをスケールアップまたはスケールダウンする必要性の判断と、それに応じた調整を自動化する機会が生まれます。
広範なネットワーク アクセス: Google Cloud により、各チームは Terraform を使用した Infrastructure-as-Code(IaC)を通じてアセット プロビジョニングに対処できるだけでなく、Jira や ServiceNow チケットの発行を通じてチェンジ マネジメント、モニタリング、アラートを制御できます。
結果
非効率的な要素を自動で発見して自動で対処できる機能により、Uber は即時かつ長期的な改善を実現できました。たとえば、次のような改善です。
アイドル状態で放置されたプロジェクトをより適切に特定して排除し、年間推定数十万キログラムの CO2 を削減
Google Cloud プロジェクトの攻撃対象領域の縮小
大幅な費用削減
推奨事項チケットに関する顧客満足度スコアの向上
DevOps Award 受賞者を紹介するシリーズの今後のブログ投稿に引き続きご注目ください。DORA リサーチについて詳しくは、2022 年の State of DevOps Report をお読みください。Saravanan Raman 氏、Dima Melnyk 氏、Sharon Fang 氏をはじめとする Google Cloud の皆様の長年にわたるパートナーシップとサポートに心より感謝いたします。