SpotifyにおけるFleet Managementの進化:Fleet FirstとFleet Shiftの実踐

はじめに

Spotifyは現在、6億7500萬ユーザーを擁し、180の市場をサポートする巨大な技術インフラを構築しています。技術チームは約2700名おり、毎日4100回のプロダクションデプロイを実施し、2024年には自動化されたPRが65萬2000回以上行われています。しかし、この規模に伴う課題として、技術生態系のフラグメンテーションが生じ、エンジニアの作業負荷(engineering toil)が増加し、開発効率や製品イノベーションに悪影響を及ぼしていました。この背景を踏まえ、SpotifyはFleet First戦略とFleet Shiftツールを導入し、技術の統一と自動化を推進しています。

技術の定義と特性

Golden TechとFleet First戦略

Golden Techは、技術の統一標準を定義する概念で、言語やフレームワーク、ツールの選定を通じて開発効率を向上させ、エラーを減らし、開発サイクルを短縮します。この戦略は、Tech Radarという技術選択ガイドラインを活用し、チームが統一された技術基準に従うことを促進します。

Fleet Firstは、技術の統一を実現するための戦略であり、以下の4つのステップで実施されます:

  1. 開発プロセスの標準化:Golden Path(開発ガイドライン)やソフトウェアテンプレート(バックエンドサービス、データフロー、ウェブサイトなど)を提供。
  2. クラウドリソースの宣言的管理:YAMLファイルでリソースを定義し、自動化変更を簡略化。
  3. CI/CDプラットフォームのアップグレード:大規模なデプロイとビルドをサポートし、年間數千回の移行ニーズに対応。
  4. 自動化メンテナンスメカニズムSoundcheckツールを活用し、ソフトウェアエコシステムの品質を評価し、認証レベルを達成するための推進。

Fleet Shiftツールの機能

Fleet Shiftは、大規模なコード変更を自動化し、人間の介入を最小限に抑えるツールです。その主な機能は以下の通りです:

  • 変更指令の定義:対象リポジトリ、実行時間、パラメータ設定を明示。
  • 変更スクリプトの開発:Dockerコンテナ形式でパッケージ化されたShiftスクリプトを作成。
  • Kubernetesでの実行:対象リポジトリをクローンし、変換を実行し、変更をブランチにプッシュ。
  • 進捗の追跡:エラー処理や成功後のPR生成、CI結果に基づく自動マージ。

実際の応用ケース

Apolloフレームワークのアップグレードでは、過去の200日から7日に短縮され、Log4jセキュリティパッチでは80%のリポジトリが11時間以內に更新されました。変更の種類は、単純な文字列置換から複雑な多ファイル・多リポジトリの移行まで幅広くカバーしています。

成果と今後の展望

Fleet Shiftツールは、180萬回の貢獻を生み出し、機械と人間の貢獻比率が3:1となっています。これにより、無駄なソフトウェアメンテナンスコストが削減され、クラウド費用も低下しています。

今後の方向性としては、以下の4點が挙げられます:

  1. 生産環境のクリーンアップ:過時または実験的なソフトウェアを削除し、リソース使用を最適化。
  2. アーキテクチャの調整:多リポジトリ(polyrepo)から単一リポジトリ(monorepo)への移行。
  3. 自動化の深化:LLMなどの高速技術を探索し、エンジニアの負擔をさらに軽減。
  4. 継続的な最適化:自動化ツールの柔軟性とサポート範囲を強化し、チームの信頼と協力を強化。

結論

Fleet FirstとFleet Shiftの導入により、Spotifyは技術の統一と自動化を実現し、開発効率とイノベーションを向上させています。今後は、さらなる自動化とアーキテクチャの最適化を通じて、スケーラビリティとコスト効率を追求していくことが期待されます。