TofuLithのDevOps最適化:リードタイムの短縮とインフラ変更の効率化

はじめに

DevOpsの実踐において、リードタイム(Lead Times)の短縮は継続的デリバリー(Continuous Delivery)の核心的な課題です。特に、SaaSモデルで29千億ドル規模の資産を監視し、多租戶のAWSアカウントアーキテクチャを管理するTofuLithでは、インフラ変更の効率化が業務の競爭力を左右しました。本記事では、TofuLithが実施したDevOps最適化の戦略と成果を解説し、Platform EngineeringとCNCF(Cloud Native Computing Foundation)の枠組みにおける実踐例を紹介します。

主な技術的課題と背景

核心的な問題

Terraformのインフラデプロイパイプラインがボトルネックとなり、インフラ変更のリードタイムが長引いていました。特に、以下の課題が顕在化していました:

  • 並行処理制限:既存のサプライヤーは並行処理數に制限(最大10ワークスペース)
  • 大規模なステートファイル:數千のリソースを管理するため、処理負荷が増加
  • 分散された構成アーキテクチャ:Nest/DevNest/AccountFactoryなどの分散設計により、統一管理が困難

ビジネス特性

  • SaaSモデルによる柔軟なスケーリングの必要性
  • 多租戶アーキテクチャにおけるセキュリティと管理の複雑性
  • リアルタイム監視と迅速なインフラ変更の要請

解決策と実裝

1. ワークスペースの分割戦略

分割の原則

  • 変更頻度分析:GPTを用いて高頻度変更リソースを特定し、低頻度リソースを統合
  • ビジネスロジックに基づく分割:アカウントベースライン、データ監視、エンジンサービス、結果サービス、SSOなどに分類
  • 過度な微細化の迴避:アカウントベースラインとネットワーク設定は統合管理

成果

  • 各テナントあたり29のワークスペースを実現
  • 総數8,453のワークスペースを達成
  • 並行処理能力を10から120に向上

2. サプライヤーとツールの最適化

サプライヤーの変更

  • Scalaを採用し、使用量ベースの課金モデルに移行

ツールのアップグレード

  • Terraform 1.5+のmoved blocks機能を活用
  • 自社の構成ストレージと標準化モジュール(例:locals.tf)を構築
  • 特化モジュール(例:Aurora Serverless)を開発

3. アーキテクチャとプロセスの改善

構成の標準化

  • JSON Schemaによる層別構造(テナント→サービス→リソース)を定義
  • ラベルとデータドッグイベントの統合を強制

リモートステート管理

  • データソースを用いてリモートステートのクエリを削減
  • ユニファイドモジュールリポジトリ(例:VPC/持久層モジュール)を構築

チーム構造の変革

  • 保守チームを解散し、「あなたが構築するあなたが運用する」モデルを採用
  • 50人のエンジニアチームに非開発者貢獻者を含む

成果とデータ

リードタイムの改善

  • 90%のリードタイム削減(実証データの検証が必要)

貢獻者分析

  • 2020年:4人 → 2022年:30人 → 2023年:45人
  • 管理層の參加がプロセス簡素化を反映

エフェクティブ指標

  • ヒートマップで一部ワークスペースの活動頻度が高め
  • プロダクトチームが自主的にワークスペースを生成(平均2つ/プロダクト)
  • 並行処理能力の向上(10→120)

キーテクノロジー実踐

ステートファイル管理

  • moved blocksによるリソース移行
  • スクリプトによるステートファイル変更パターンの分析

モジュール化設計

  • 標準化されたルートモジュール構造
  • 共通ロジックの封入(例:コミットIDの追跡)

継続的デリバリー

  • 內部トレーニング(年次/半年次)の提供
  • 領域特化知識庫(例:Terraformモジュール使用ガイド)の構築

今後の改善方向

  • 自動化の最適化:非必須Terraform使用の削減(例:Lambdaデプロイの専用ツール化)
  • ステートファイルの精簡:全ステートの保持の必要性評価
  • パフォーマンスモニタリング:ワークスペース活動の熱點とリソース利用率の継続的分析

まとめ

TofuLithのDevOps最適化は、インフラ変更のリードタイム短縮と継続的デリバリーの実現に成功しました。ワークスペースの分割戦略、サプライヤーとツールの最適化、アーキテクチャの再設計を通じて、並行処理能力を大幅に向上させました。また、Platform Engineeringの原則に基づく構成標準化とチーム構造の変革により、柔軟なスケーリングとセキュリティを実現しました。今後の課題として、自動化のさらなる深化とステート管理の最適化が求められます。