Power Platform のマネージド ソリューションとアンマネージド ソリューションの違い:完全ガイド
By Mirko Peters ·
Power Platform のマネージド ソリューションとアンマネージド ソリューションの重要な違い、デプロイのルール、アプリ向けの ALM ベスト プラクティスを解説します。
Automatically translated with AI from the original post. Read the English original

マネージド ソリューションとアンマネージド ソリューションの違いを理解することは、致命的なアプリの削除やデプロイの失敗を防ぐうえで不可欠です。このガイドでは、アンマネージド レイヤーが編集可能な作業領域として機能し、マネージド ソリューションが開発、テスト、本番の各環境にわたって固定された、デプロイ可能なパッケージとして機能する仕組みを解説します。
重要なポイント
- アンマネージド ソリューションは、開発環境における作業用のコピーであり、構築、編集、試行錯誤を行う場所です。
- マネージド ソリューションは固定されたデプロイ用のコピーであり、安定性を維持するためにテスト環境と本番環境でのみ使用すべきものです。
- アンマネージド ソリューションを削除してもコンポーネントはコンテナーとともに削除されるだけで残りますが、マネージド ソリューションをアンインストールすると、関連するカスタム テーブルとデータが消去されます。
- マネージド ソリューションを、そのアンマネージドの元となったソリューションが作成された開発環境に再インポートすることはできません。
- アンマネージド ソリューションをソース コードとして、マネージド ソリューションをビルド成果物として扱うことで、Power Platform の ALM を一般的なソフトウェア開発の慣行に合わせることができます。
マネージド ソリューションとアンマネージド ソリューションの主な違い
Microsoft Power Platform でアプリ、フロー、テーブルを作り始めたばかりの頃は、環境を巨大な作業用のメモ帳のように扱ってしまいがちです。既定の環境や共有のワークスペースで、クリックしながらカスタム エンティティを作成し、クラウド フローを直接組み立てていくのは簡単です。しかし、プロジェクトが概念実証の段階を過ぎると、この場当たり的な進め方はすぐに保守困難なコードや、意図しないデータ損失につながります。信頼性の高いアプリを構築するには、アンマネージド ソリューションとマネージド ソリューションの基本的な違いを理解する必要があります。
本質的に、ソリューションとは、アプリのコンポーネントをまとめて、環境間を安全に移動できるようにする単なるコンテナーです。出荷時の積荷目録のようなものだと考えてください。そのコンテナーの中には、アンマネージドかマネージドかという明確な区別があります。「アンマネージドは編集するため、マネージドはデプロイするため」というこの一文を覚えておくと、それぞれの目的がはっきりします。
アンマネージド ソリューション:開発用の作業領域
アンマネージド ソリューションは、編集可能な作業用のコピーです。キャンバス アプリを設計したり、ビジネス ルールを作成したり、Dataverse のテーブルを変更したりする際は、開発環境内のアンマネージド ソリューションの中で作業しています。色の変更やスキーマの調整はすべて、基になるアプリに即座に反映されます。
アンマネージド ソリューションを削除するとどうなるか?
アンマネージド ソリューションの最も重要な安全上の特徴の一つは、削除時の扱いです。開発環境からアンマネージド ソリューションを削除すると、消えるのはコンテナー自体だけです。作成したカスタマイズ、アプリ、テーブルが消えることはなく、既定のソリューションに静かに戻ります。開発中に全体が誤って破壊されるのを防ぐ一方で、注意しないと既定のワークスペースが散らかる原因にもなります。
Microsoft では、非マネージド ソリューションを GitHub や Azure DevOps などのソース管理システムに直接チェックインすることを推奨しています。非マネージド ソリューションを真のソース コード リポジトリとして扱うことで、開発チームが行ったすべての変更について、完全で履歴をたどれる監査証跡を維持できます。
マネージド ソリューション: 本番デプロイ用パッケージ
マネージド ソリューションは、完成してコンパイルされ、固定された状態のアプリケーションのコピーです。マネージド ソリューションを直接編集することはありません。代わりに、非マネージド ソリューションをマネージドとしてエクスポートし、そのパッケージを、ユーザー受け入れテスト (UAT)、システム結合テスト (SIT)、そして最終的に本番などの後続環境にデプロイします。
マネージド ソリューションの削除がもたらす重大なリスク
非マネージド ソリューションと異なり、マネージド ソリューションは設計上、厳格にロックされています。マネージド ソリューション内のコンポーネントを直接編集することはできません。さらに重要なのは、マネージド ソリューションをアンインストールすると、非マネージドの場合とは正反対の動作になることです。パッケージ内のすべてが特定のデプロイに紐付いているため、ソリューションを削除すると、含まれるすべてのコンポーネントが削除されます。
特に注意すべきなのは、このアンインストールによる削除には、ソリューションに含まれていたカスタム テーブル内のデータや、既存のテーブルに追加されたカスタム列内のデータも含まれる点です。マネージド ソリューションを環境からアンインストールすると、関連するデータは完全に失われます。ネイティブの元に戻す機能はないため、デプロイ アーキテクチャを理解することは、管理者にとって極めて重要な責任となります。
環境アーキテクチャとテストのルール
Power Platform の仕組み上、これら 2 種類のソリューションの扱いには、環境の境界が厳格に適用されます。たとえば、非マネージド ソリューションを作成した開発環境に、マネージド ソリューションをインポートし直すことはできません。マネージド デプロイのテストには、完全に別の環境が必要です。そのため、初日から専用のマルチ環境パイプラインを構築することがベスト プラクティスとされています。
一般的で健全な ALM (アプリケーション ライフサイクル管理) の構成には、少なくとも 3 つの独立した環境が含まれます。
- 開発: メーカーが非マネージド ソリューションを作成・変更する環境です。
- テスト (UAT): マネージド ソリューションをインポートして、デプロイ プロセスとアプリの機能の両方が正しく動作することを確認する環境です。
- 本番: 実際のユーザーが、安定して固定されたマネージド ソリューションを毎日利用する環境です。
Power Platform のデプロイ戦略を使いこなす
非マネージドの開発ワークスペースと、マネージドの本番デプロイを厳密に分離することで、Power Platform の戦略は、脆い場当たり的な対応の寄せ集めから、エンタープライズ級のソフトウェア エンジニアリングへと変わります。ソリューションの境界を尊重し、本番環境への場当たり的な編集を防ぎ、クリーンなソース管理の習慣を維持することで、ビジネスに不可欠なアプリケーションを、規模が拡大しても安定して回復力のある状態に保てます。
Power Platform のコンポーネント、パブリッシャー、接頭辞、ソリューション レイヤーの仕組みをさらに深く知るには、エピソード全編を聴いて、Microsoft クラウド エコシステムに関する最新情報を得るために、ポッドキャストを購読してください。