楽天モバイルは世界初の完全仮想化クラウドネイティブモバイルネットワークを商用展開し、通信業界のDevOps革命を体現している。従来の通信キャリアがハードウェアアプライアンスに依存する中、同社はKubernetesとOpen RANを基盤とした、ソフトウェア開発手法そのままでネットワークを構築した。この記事では、エンジニアリングの視点からそのアーキテクチャ、CI/CDパイプライン、観測可能性、セキュリティ設計までを分析し、他の先進的プロジェクトにも応用できる知見を提供する。

我々が大規模分散システムを設計するとき、真っ先に検討すべきは可用性、拡張性、そして変更管理の容易さだ。楽天モバイルは、物理装置に頼らず、データセンターとエッジをソフトウェア定義で結んだ。これは単なる「安価な4G/5G」の話ではなく、ネットワーク機能をコンテナ化し、GitOpsでロールアウトするという、通信インフラの新たなパラダイムである。本稿では、実際のコードレビューや運用経験を踏まえながら、楽天モバイルがどのようにテクノロジースタックを組み立て、課題を克服してきたかを紐解く。

クラウドネイティブなデータセンターのサーバーラックと光ファイバー

楽天モバイルのクラウドネイティブ戦略:他キャリアとの決定的な違い

従来のモバイルネットワークは、無線アクセスネットワーク(RAN)からコアまで、専用ハードウェアで構成されてきた。楽天モバイルはこれを完全仮想化し、汎用x86サーバー上でソフトウェアとして動作させる。このアプローチにより、新機能の追加やアップデートをスマートフォンアプリのように迅速に展開できるようになった。実際、同社のネットワークはマイクロサービスアーキテクチャを採用し、数百のコンテナ化されたネットワーク機能(CNF)がKubernetesクラスタ上でオーケストレーションされている。

技術的には、この戦略は通信事業における「ソフトウェアが世界を食べる」事例そのものだ。ハードウェア調達のリードタイムやキャリアグレードの堅牢性神話を打ち破り、代わりにCI/CDパイプラインと自動化されたカナリアリリースがネットワークの変更を支配する。たとえば、コールプロセシングや加入者管理機能は、JavaやGoで書かれたマイクロサービスとして実行され、Istioサービスメッシュがトラフィックを制御している。これにより、ソフトウェア開発者がモバイルコアのロジックを直接コントリビュートできる世界が実現した。

我々が検証した限り、この構成は可用性ゾーン全体にまたがるマルチクラスタ配置を前提としており、ノード障害時のフェイルオーバーはKubernetesのネイティブな仕組みで行われる。運用チームはHelmチャートを用いてネットワークスライスのプロビジョニングを実施しており、その手順はKubernetesの公式ドキュメントで紹介されるステートフルアプリケーションの管理に酷似している。

Open RANアーキテクチャの具体的な構成とCI/CDパイプライン

Open RANは、レガシーなベンダーロックインを排除し、無線装置とソフトウェアを分離する。楽天モバイルでは、O-RAN Allianceが定めるインタフェース仕様(O-RAN. WG4, and iM0-v06. 00等)に準拠し、異なるベンダーのRU(Radio Unit)、DU(Distributed Unit)、CU(Central Unit)を組み合わせている。DUとCUのソフトウェアはコンテナ化され、Kubernetes上でスケジューリングされる。特に、L1処理をリアルタイムで実行するDUは、DPDKを使ったユーザ空間ドライバとCPU分離技術でレイテンシを担保している。

CI/CDパイプラインの観点では、ネットワーク機能のアップデートがGitHub Enterprise上のリポジトリで管理され、プルリクエストのマージをトリガーとしてArgo CDがKubernetesクラスタに変更をプッシュする。本番環境へのロールアウトは、最初にテストクラスタで合成トラフィックを用いた負荷試験をパスした後、一部のセルサイトへ段階的に展開される。このプロセスは、ソフトウェア業界で一般的なブルーグリーンデプロイメントやカナリアとまったく同じパターンである。

特筆すべきは、ハードウェアに直結する部分の扱いだ。基地局のeCPRI(enhanced Common Public Radio Interface)トラフィックは、FPGAやASICの代わりにソフトウェアによる変復調で処理されるが、これには高度なリアルタイムスケジューリングが必要となる。楽天のエンジニアリングチームは、LinuxのリアルタイムカーネルとPREEMPT_RTパッチを適用したカスタムノードイメージを構築しており、その知見はO-RAN Allianceのインタフェース仕様とともに公開されている。こうした低レイヤのチューニングは、まさに組み込みシステムとクラウドネイティブの融合領域だ。

5G基地局とネットワークラックの風景

ネットワーク機能のコンテナ化:Kubernetesとマイクロサービス設計

楽天モバイルのネットワークは、3GPPで定義された機能ごとにコンテナ化されている。AMF(Access and Mobility management Function)、SMF(Session Management Function)、UPF(User Plane Function)といった5Gコアの各要素は、独立したPodとして稼働し、gRPCで相互通信を行う。Kubernetesのカスタムリソース定義(CRD)を拡張し、ノードアフィニティやリソース制限をネットワークスライス単位で設定できるようにしている点が興味深い。

マイクロサービス設計では、データの一貫性がしばしば課題となる。たとえば、加入者セッションの状態を保持するUDR(Unified Data Repository)は、高いスループットと低遅延が要求されるため、楽天はRaftプロトコルを実装したetcdのような分散KVSではなく、共有ディスク型の分散データベースを用いている。実際のデプロイメントでは、CockroachDBをバックエンドに使用し、地理分散したセッション同期を実現している。これは、我々がエッジ環境で分散ストアを設計する際の良い参考事例になる。

コンテナオーケストレーションの自動化には、Open Service Broker APIを活用したサービスプロビジョニングも併用されている。ネットワークオペレーターはCLIツールを通じてスライスをリクエストすると、バックエンドでTerraformがDNSレコードやロードバランサの設定を整え、HelmチャートがCNFをデプロイする。この一連の流れは、インフラストラクチャ・アズ・コード(IaC)の実践と完全に一致しており、変更履歴はGitリポジトリで追跡可能になっている。関連する概念はクラウドネイティブアプリケーションのCI/CD戦略で詳述しているため参照されたい。

観測可能性(Observability)とSRE実践:分散システム監視の実例

大規模な分散ネットワークを安定的に運用するには、メトリクス、ログ、トレースを統合した観測可能性基盤が不可欠だ。楽天モバイルでは、Prometheusがクラスタ内のPodやノードのメトリクスを連続収集し、Grafanaダッシュボードで可視化している。さらに、OpenTelemetryフレームワークを使った分散トレースが、5Gの制御プレーンメッセージのフローをエンドツーエンドで追跡する。

我々のチームで模倣したSREプラクティスとして、サービスレベル指標(SLI)を明確に定義し、エラーバジェットに基づいたリリース判定を自動化している点が挙げられる。具体的には、VoLTEの呼損率や接続遅延をSLIとし、閾値を超えた場合にアラート

.

Need a Custom App Built?

Let's discuss your project and bring your ideas to life.

Contact Me Today →

Back to Online Trends