デジタルツイン・ユニバース(Digital Twin Universe、略称 DTU)は、StrongDM の AI チームによる用語で、自社ソフトウェアが依存するサードパーティサービスの振る舞いのクローンを指す。これらのクローンは、それらのサービスの API、エッジケース、観察可能な振る舞いを再現するように構築される。ツインは Okta、Jira、Slack、Google Docs、Google Drive、Google Sheets について構築された。ツインの目的は忠実性そのものではなく、検証を実行する場を得ることにある。チームによれば、DTU があることで、本番環境の上限をはるかに超える規模と頻度で検証を行い、実際のサービスに対しては危険または不可能な障害モードをテストし、レート制限に達したり、不正利用検知を作動させたり、API コストを積み上げたりすることなく、1 時間あたり数千ものシナリオを実行できるという。

用法

ツイン自体がエージェントによって構築されており、それがこのアイデアを実行に移せるほど安価にしている。StrongDM の AI チームはコードを見ることすらせずに本格的なソフトウェアをどう構築しているか の筆者が理解したところでは、ツインはサービスの公開 API ドキュメント一式をチームのエージェントハーネスに投入し、自己完結した Go バイナリとして模造品を構築させることで作られ、シミュレーションを完成させるために簡略化された UI がその上に生成される。同記事の追記では、DTU の作成者が述べた忠実性確保のための再現可能な戦略が伝えられている。最も普及している公開のリファレンス SDK クライアントライブラリを互換性の目標とし、常に 100% の互換性を目指すというものである。

チームの ソフトウェアファクトリー の中で、DTU はシナリオの実行対象となる。チームのシナリオテストは、システムが構築されている最中にエージェントがそれに対して継続的に実行するスクリプトとなり、ツインにはシミュレートされたユーザーとトラフィックが投入される。例として挙げられているのは、異なるシミュレート対象システムへのアクセスを必要としようとしている、シミュレートされたディレクトリユーザーの流れを抱えた Slack のツインである。

適用される場面

適用条件は、テスト対象のソフトウェアが何とやりとりするかによって決まる。DTU が対象とするのは、振る舞いの大部分がサードパーティの SaaS API を介して行われるソフトウェアであり、チームが望む検証が、難しさではなく、実際のサービスのレート制限、不正利用検知、コスト、不可逆性によって妨げられている場合である。前提として、それらのサービスにはエージェントが構築の拠り所にできるほど充実した公開 API ドキュメントがあり、クライアントライブラリのレベルでの互換性目標が、重要な振る舞いの代理として十分であることを想定している。

これが新しいものである理由についてのチーム自身の主張は、技術的なものではなく経済的なものである。大規模な SaaS アプリケーションの高忠実度なクローンを作ることは以前から可能だったが、経済的に見合うことはなかった。チームは、何世代ものエンジニアが、テスト対象としてシステムの完全なインメモリのレプリカを欲しながらも、それを構築する提案を自己検閲してきたのかもしれないと述べている。これに対応するリスクは、ツインが模造品にすぎないということである。その忠実性は実際のサービスの振る舞い全体ではなくリファレンスのクライアントライブラリに対して主張されたものであり、互換性の目標が検証しない部分は何であれ取りこぼしうる。

確立の度合いについて言えば、これは 1 つのチームが名前を付けた実践であり、チーム自身が説明し、それを実演で見た実践者が伝えたものである。構築手法は、チームのドキュメントではなく、明示的にその実践者の理解として示されている。測定された結果でも、独立した実践者のいる慣行でもない。

関連用語

ソフトウェアファクトリー、エージェントハーネス、振る舞い評価、軌跡評価、データアウェアテスト