NTTドコモ: Google Cloud 上にマイクロサービス共通基盤『MACARON』を構築し、迅速なサービス開発に貢献
Google Cloud Japan Team
格安料金プランの登場などによって、一段と競争が激化しつつある携帯電話業界。このような中、株式会社NTTドコモ(以下、NTTドコモ)は、顧客向けサービスから、社内および店舗向けサービスまで、アプリケーションの開発・運用を効率化、標準化するためのプラットフォーム『MACARON(マカロン)』を Google Cloud 上に立ち上げました。その狙いについて、『MACARON』の開発を主導した、同社情報システム部の皆さんに話を伺いました。
利用しているサービス:
Google Kubernetes Engine(GKE), Cloud Storage, Cloud CDN, Apigee, Cloud Armor, Anthos Service Mesh, Cloud Interconnect, VPC Peering, Private Service Connect など
利用しているソリューション:
アプリケーションのモダナイゼーション, アプリケーションの統合
共通基盤の構築でスピーディかつ低コストな開発・運用を実現
NTTドコモ情報システム部は、主に顧客管理システムや料金計算システム、データ分析基盤など、いわゆる SoR(System of Record / 記録のためのシステム)領域に分類される、基幹システム群の開発・運用を行ってきました。しかし 2018 年 7 月、顧客との関係性を深める SoE(System of Engagement)領域の開発・運用を行う、 IT基盤戦略 / アプリ技術担当を部内に設立。2021 年 7 月には、この組織を現在の DDXD(Digital Design / Experience Design)担当に改称し、SoE 領域の業務をさらに拡充します。そして 2021 年度には、『MACARON(Microservice Architecture Cloud plAtform for fRONtend system / フロントエンド開発のためのマイクロサービス アーキテクチャを提供する、クラウド プラットフォーム)』という構想を始動させました。開発チームリーダーとして『MACARON』基盤構築を牽引してきた、同社情報システム部 主査の国府田 充氏は、プロジェクトの目的を次のように説明します。
「近年はビジネス価値の迅速な向上が求められており、たとえ基幹システムであっても、フロントエンドなど SoE 領域についてはアジャイルで速度感をもって開発していく必要性が高まっています。我々の担当はこのような認識に基づいて発足しました。しかしミッション クリティカルな基幹システムと連携する以上、速度感を重視しながら、運用やセキュリティに関する厳しい規定や、エンタープライズ企業ならではの全社的なルールなどに準拠した開発も求められます。そうした課題を踏まえ、部品の共通化などによるスクラム開発のさらなる高速化や、オペレーションの標準化による運用を含めた全体最適に貢献すべく、Google Cloud 上に構築したのが『MACARON』です。『MACARON』はアーキテクチャ、オペレーション、セキュリティが一体となったインフラ / オペレーションの共通基盤となっています。」
当時の NTTドコモは、開発プロセスで 主に 2 つの大きな課題を抱えていました。1 つは、複数のビジネス部門が複数のプロダクトを独自に開発し続けた結果、至るところで顧客体験が分断されていたこと。もう 1 つは、各プロダクトが個別に最適化されていたためにサイロ化(縦割り化)し、開発プロセスやアーキテクチャ、オペレーションがほとんど共有できていなかったことです。
「以前は、同じロジックでありながら別サービスで独自にアプリを開発したり、インフラを新規に構築したりする、あるいは CI / CD パイプラインの設計思想がサービスごとに異なるなど極めて非効率な状況が生じており、組織としてのスケーラビリティが大きく損なわれていました。『MACARON』はこの状況を打開するためのプラットフォームであり、標準化を図る営みそのものともなっています。」(国府田氏)
『MACARON』構想の基盤に Google Cloud が採用されたのは、確かな実績に基づくものでした。情報システム部では、2019 年末に初めて Google Cloud を用いて『パーソナルデータダッシュボード』の開発に成功。以来、アジャイル開発の基盤として Google Cloud を積極的に活用し、2020 年末には他社クラウドプラットフォーム上に構築されていた既存プロダクトも、すべて Google Cloud にマイグレーションしています。その後も 2021 年 3 月ローンチの「格安料金プラン」申し込みサイトをはじめとして、Google Cloud 上にさまざまな新規プロダクトが開発され続けており、2023 年までに数十のプロダクトが立ち上げられています。
「最初期は、GKE(Google Kubernetes Engine)の機能性が他社の選択肢を大きくリードしている点が、採用の理由でした。Google Cloud は、その後も Cloud Run、Cloud Functions、GKE Autopilot など、開発効率を大きく高められるマネージド サービスを次々に投入し続けています。現時点においても Google Cloud が私たちにとって魅力的な選択肢であることに変わりありませんし、今後のさらなる機能拡張を期待しています。」(国府田氏)
SoE 領域の構成要素をレイヤーに分割・整理して機能を提供
『MACARON』では、サイロ型の開発・運営モデルを脱却すべく、アーキテクチャを各レイヤーに分割。その大部分を徹底的に共通化 / 標準化(上図参照)することにより、効率化を図っています。本プロジェクトでテックリーダーを担い、『MACARON』の名付け親ともなった情報システム部 主査の浅野 玲央氏は、構成の詳細と狙いをこう説明します。
「『MACARON』では、SoE 領域の構成要素を『Touch Point & Channels』『UXUI』『Microservices』『Business Engines』『DevOps』『Platform & Infra』の 6 層に分割。個々の層の目的を定義して、それに従った設計 / 構築を行っています。特に力を入れたのは、共通化の要となる『Microservices』の層です。マイクロサービスはきちんと設計しないと通信が煩雑になってしまうため、ビジネスや組織とアプリケーションを一致させること、サービスの役割や責任を明確にすること、そしてスモールチームで開発可能なことを意識し、さらに細かく 4 層に分解しました。中でも『Business Service』層は、業務部品としての再利用性を高めるうえで重要度が高いため、NTTドコモのビジネスに即した形でチャネル、事業、業務を軸としたドメイン分割を行い、利用目的に応じて適切なドメインへの配置設計を行っています。」
「この構想を少ないコストと労力で実現すべく、私たちは全体の方針として Google Cloud のマネージド サービスを積極的に活用しました。具体的には『UXUI』層の静的ファイル配信を、Cloud Storage と Cloud CDN の組み合わせで実現しました。また『UXUI』および『Microservices』層では、ドメインごとに Google Cloud プロジェクトを分割することによりマイクロサービス間の独立性を向上させたうえで、 マルチテナント マイクロサービス設計を実現しています。」(浅野氏)
一方、セキュリティ面では Apigee X や Cloud Armor、Anthos Service Mesh を用いて、統一的なセキュリティ ガバナンスを実現。既存オンプレミス環境との接続には、Cloud Interconnect、VPC Peering、Private Service Connect などを組み合わせてプライベート接続を確立しています。さまざまな開発作業においては、Google Cloud の PSO(Professional Services Organization)ならびにプレミアム サポート / TAM(テクニカル アカウント マネージャー)サービスが、包括的なサポートを提供し続けました。
「ぴったり当てはまる先行事例がない中、PSO には私たちが定めた要件を満たすことができる、最適な Google Cloud プロダクトの組み合わせ(仕様)の提案と簡易的な検証をしていただきました。またサンプルコードの提供によってクイックに確認でき、技術的な裏付けを取れたのでありがたかったですね。プレミアム サポート / TAM にも、きめ細かなサポートをしていただき本当に助かりました。」(浅野氏)
すでに 8 つのプロダクトと 33 のマイクロサービスが稼働中
こうして『MACARON』は、2022 年 7 月にファースト ローンチ。その後、同年 11 月に「dポイントクラブ」会員向けのアンケート基盤、翌年 3 月には、子育て応援プログラムのバックエンド サービスが『MACARON』上で実現されています。2023 年 11 月の時点では、8 つのプロダクトが稼働しており、『MACARON』上で動作するマイクロサービスは 33 を数えるまでに増えました。
『MACARON』の導入は、アプリケーションの開発・運用を効率化、標準化するきっかけとなっただけでなく、NTTドコモ全体の競争力を一層高める触媒にもなりました。情報システム部 課長として『MACARON』プロジェクトのマネージャーを務める酒井 大介氏は、そのインパクトの大きさを指摘します。
「『MACARON』の導入によって、アーキテクチャやパイプライン、オペレーションのスキームに方法論が確立されました。マイクロサービスの共通化と併せて、設計、構築から運用にいたるまで、作業の高速化と低コスト化が実現できつつありますので、プロダクトが増えていっても、低コストかつスピーディに開発を進めていけるのではないかと期待しています。」
最後に酒井氏は、現時点での課題と目標を挙げつつ、今後のビジョンについて述べています。
「むろん私たちは、あらゆるケースに現在の『MACARON』が適合するとは考えておりません。今後は個々のケースを見極め、プロダクトの特性に応じて最適なアーキテクチャを構築できるよう、Cloud Run や Cloud Functions など、新しい技術を積極的に取り入れていきたいですね。自分たちで管理する領域を極力減らしつつ、Google Cloud が得意とするマネージド サービスに寄せていくことで、開発の効率化だけでなく、運用品質向上や運用稼働削減をさらに目指していきたいと考えています。その意味では、まだ道半ばという部分もありますが、『MACARON』からは、すでに 5 つのプロダクトで共通利用されているマイクロサービスも登場しています。Google Cloud を基盤にした『MACARON』の構築・運用によって、実現を目指している世界観に向け、一歩ずつ着実に近づいている。私たちはそう実感しています。」
株式会社NTTドコモ
国内 8,796 万ユーザーを擁する日本最大の携帯電話事業者。携帯電話サービス、光ブロードバンド サービスなどからなる通信事業を主軸に、近年は動画配信などのコンテンツ・ライフスタイル サービス、金融・決済サービスなどスマートライフ領域事業も強力に推進している。従業員数は 2023 年 3 月 31 日現在、7,903 名(グループ全体では 47,151 名)。
インタビュイー(写真右から)
・情報システム部 主査 国府田 充 氏
・情報システム部 課長 酒井 大介 氏
・情報システム部 主査 浅野 玲央 氏
その他の導入事例はこちらをご覧ください。