DynamicsとPower Platformの関係

こんにちは！
今回はDynamicsとPower Platformの関係についてというテーマで記事を書きます！
実はDynamicsとPower Platformは親子のような関係です。
製品機能としてもとても親和性が高い２人ですが、どこにその関係のヒントが隠れているのでしょうか。
<div align="center">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/816e8fe2-81ca-062c-0214-8a25ff3a467f.png" width=50%>
</div>

１つは、「どうやってDynamicsとPower Platformは生まれたのか」というところに隠れています。
それでは始めていきましょう。

DynamicsとPower Platformの歴史を語る上でキーになるのは「クラウド」です。

# クラウド
クラウド環境は、ユーザーエクスペリエンスとそれらのエンドユーザーエクスペリエンスの基礎となるクラウドサービスの両方の観点から、常に進化し、常に最新であるため、「エバーグリーン」ITインフラストラクチャと呼ばれることがよくあります。

::: note 
エバーグリーン：常緑樹のこと。冬になっても美しく緑の葉をもつ常緑樹のように、長い時間が経っても価値が変わらないもののことをいう。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/e870f021-5543-f0eb-74ff-49abafbbb8cc.gif" width=50%>
:::

Microsoftが独自のDynamics 365ソリューションを最新化する取り組みは、この点に関していくつかの貴重な教訓を提供し、非常に複雑なソリューションセットをオンプレミスのベアメタルサーバーからクラウドに正常かつ段階的に移行する方法に関する重要な情報を提供します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/1c7101f4-27f2-7d8d-f229-a95a76be89d2.png)

どのようにDynamicsが変化していったのか、次のセクションから歴史を学びましょう。

# 歴史
物語は、Microsoftがいくつかのビジネスソフトウェア会社を買収し始め、独自のCRMソリューションを立ち上げた2000年代初頭に始まります。

### 初代：Dynamics GP
- 2001年、Microsoftは中小企業向けの会計ソフトウェアのプロバイダーであるGreat Plains Softwareを買収。
- Great Plains製品はMicrosoft Dynamics GPとしてブランド変更された。
### Dynamics NAV
- 2002年、MicrosoftはデンマークのERPソフトウェア会社であるNavisionを買収。
- NavisionのNAV製品はMicrosoft Dynamics NAVとしてブランド変更され、NavisionのAxtapa製品はDynamics AXとしてブランド変更された。
### Microsoft CRM
- 2003 年、Microsoftは社内で開発された顧客関係管理(Customer　Relationship  Management: CRM)ソリューションである Microsoft CRMを発表。

### Dynamics CRM
- 2005年、Microsoft CRMはMicrosoft Dynamics CRMとしてブランド名が変更された。
- 2011年にクラウド化の取り組みが始まりDynamics CRM Onlineが誕生した。

### Dynamics 365
- 2016年、Microsoftはこれら4つのビジネス・ソフトウェア・アプリケーションを1つのソリューション・スイートにまとめた新しいホスト型製品、Microsoft Dynamics 365を発表した。
- 現在、Dynamics 365には、営業、マーケティング、顧客経験管理(CRM)、カスタマーサービス、フィールドサービス、財務、オペレーション、サプライチェーン管理、人事、プロジェクト管理の各モジュールに加え、Office 365、Teams、Power Platformといった他のMicrosoft製品との深い統合が含まれている。

# Dynamicsクラウド移行の歴史
## オンプレからSQL Serverへの移行
クラウドへの移行が始まる前まで、Dynamics 365は従来のオンプレミス ソフトウェアソリューションとして実行されていました。
お客様は、独自のITインフラストラクチャ内にインストールし、独自のITスタッフまたはパートナーの助けを借りて管理およびサポートしました。

そして、移行してからは、Dynamics 365をサービスとしてのソフトウェア (SaaS) モデルで提供し、Microsoftのデータセンターで実行されるようになりました。

オンプレミスとSaaSの主な違いは、SaaSがMicrosoftデータセンターではるかに大規模に実行されることです。

最初にクラウドへ移行する際には、Windows Server 2012 R2 を実行する数千台のベアメタルサーバーを搭載しました。フロントエンドはインターネットインフォメーション サービス (IIS) をベースとし、バックエンドは Microsoft SQL Server 2012 R2を常時接続構成で使用していました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/a5eb5709-7d6b-d834-219e-784abfa22431.png" width=40%>

#### クラウドと比較した時のオンプレの欠点
- 可用性
- スケーラビリティ
- 柔軟性の制限
- 数か月ごとの製品のリリースによる継続的な開発者やパートナーの支援の必要性
- 物理インフラストラクチャのアップグレード (新しいハードウェアへのアップグレードなど) には、大幅な計画とダウンタイムが必要
- ソリューションを実行するために高価なインフラストラクチャに事前に投資する必要がある
→IT予算や専門知識が限られている中小企業が採用することが困難

## SQL ServerからAzure SQLへの移行
次に、2016年ごろからWindows Serverで実行されている SQL Server から[エラスティックプールを使用したAzure SQLへの移行](https://learn.microsoft.com/ja-jp/azure/azure-sql/database/elastic-pool-overview?view=azuresql)への取り組みが開始しました。
（完了は2017年7月）

この変更に関しての大きなメリットには、以下のような点があります。
- すべてのハードウェアとデータベース操作のための自動化されたプログラム可能なファブリック
- 弾力性のあるスケーラビリティ
- Azure リージョンでのより高速なビルドアウト
- Azure 可用性ゾーンの使用による信頼性の向上
→ユーザー側で一時的にサーバー使用量が跳ね上がった際にも、柔軟に対応できるようになった

そして、Dynamics 365で新しい Azure サービスの活用をすぐに開始できるようになり、イノベーションのスピードが向上していきます。


# Power Platformの始まり
クラウド化するにあたり、顧客が運用していく上で課題がうまれていました。
それは、DynamicsのカスタマイズがプロのDynamics専門のチームやベンダーだけのものになっていたということでした。

## 課題
Dynamics 365のCRMアプリケーションのプログラミングモデルは、顧客、パートナー、および ISV がカスタマイズ、拡張機能、およびカスタム プラグインを実装するために必要な、クライアント拡張機能用の JavaScript とバックエンド拡張機能用の Microsoft .NET に基づいていました。
ERP アプリケーションのカスタマイズと拡張は、AxaptaのX++言語 (C++とほとんど一緒) に基づいており、（強力なプログラミングモデルではありますが）.NET ほど使いやすくはありませんでした。
その為、顧客とパートナーはDynamics専門のチームやベンダーに構築してもらうことがほとんどで、内製でのカスタマイズはほとんど不可能でした。
内製できないことにより、実際に使用するビジネスユーザーの意見を直接反映しづらくなることは簡単に想像できます。
そして、それが原因でDynamics 365の利用が少なくなることを避けるべく、Dynamics 365チームは解決策を考えます。

## 転換点
そこで、Dynamics 365チームは、拡張性を外部化し、顧客とパートナーが Dynamics 365 ソリューションを希望どおりに拡張するために使用できることを決定しました。
それを経て、xmlとしてコーディングでカスタマイズが可能になりましたが、それだけではまだカスタマイズしづらいということで、ローコードツールの適用が考えられるようになります。

これがのちのPower Platform です。
Power PlatformはDynamicsのカスタマイズ方法として生まれ、現在では市民開発のツールとしてエンジニアではないビジネスユーザーがロ―コードでさまざまな開発を行う為のツールとして使われています。

「新しいアプリケーションがすべてのシナリオにあったすべての機能を提供すると仮定したり、新しい一連の要件が出現するたびにまったく新しいアプリケーションを構築したりするのではなく、新しいシナリオの新しいソリューションに構成できる一連のサービスとしてアプリケーションランドスケープについて考え始める必要があります」- Homann（クラウド＋AI コーポレート・バイスプレジデント）

# Dataverseについて
Dynamics 365 チームが Azure SQL をどのように活用し、2020 万を超える顧客データベースをサポートするか、という取り組みにおいて生まれたのが、モダンでスケーラブルなビジネスアプリケーションプラットフォームであるDataverseでした。

Dataverseは、お客様が直接 Dynamics 365 アプリケーションと Power Platform ソリューションのシームレスなカスタマイズと拡張もサポートしています。
Dataverseは約3万のAzure SQLデータベースを網羅しており、Azure SQLハイパースケールを活用して、迅速なスケールアップ、迅速なスケールアウト、高可用性により、個々のデータベースあたり最大 100 TB をサポートしています。

図１：データプラットフォームの観点からDataverseによって提供される機能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/b4865923-2116-8ce4-6b21-cce422771f8a.png)
図２：Dataverseがローコード開発をどのようにサポートしているかを示す詳細な機能内訳
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/ca5fe89f-689f-d15a-e315-839314ec6f31.png)
図３：Dataverse を強化するフルマネージドのAzureサービス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/976b22b9-5e60-a5e5-b40b-306802aed353.png)

現在、Dataverse は 25を超えるフルマネージドの Azureサービスによって透過的に強化されており、あらゆる種類の情報に対応する独自の地球規模のデータプラットフォームをお客様に提供しています。
組み込み機能には、包括的なセキュリティ、強力な分析と AI、高度なビジネス ロジックとイベント、データ モデリング、Dynamics 365、Office 365、Azure などとの統合が含まれます。これらの機能はすべて、Azure SQL DB (リレーショナル データ用)、Azure Cosmos DB (NoSQL 用)、Azure Blob Storage (ファイル用)、および Azure Data Lake Storage Gen 2 (大規模な分析と長期的なデータ保持用) に基づく多言語 Dataverse ストレージレイヤー上に構築されています。

Dataverseを通して、Dynamics 365と Power Platformはシームレスに連携ができ、カスタマイズと拡張もしやすくなっています。

また、アプリとしてもDynamicsとPower Appsは密な関係を持っていて、Dynamics 365のネイティブ（ベース）アプリはPower Appsのモデル駆動型になっています。

# Power Platformコア製品の誕生
Power Apps は、2016 年に、作成、読み取り、更新、削除など、さまざまなソースと簡単に統合できる、ローコードでキャンバスファーストのアプリケーション開発ツールとして最初に登場しました。
その後、データの視覚化には Power BI、ワークフローの自動化には Power Automate を、チャットボット作成には Power Virtual Agents、Web サイトを構築するには Power Pages を、と製品が次々に発表されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/4ce906e0-6ad0-42e1-627f-d69e5ac21877.png)


# AI機能の統合
MicrosoftはAIを最重要な投資先の一つとして、開発に取り組んできました。
そんなAI技術のDynamics 365 への導入は、Microsoftが AI for Customer Service と AI for Sales を立ち上げた2018 年に始まりました。

2019 年、Dynamics 365 チームは、技術に詳しくないビジネスユーザーがデータをより効率的かつ正確に分析し、分析情報に基づいて行動し、ビジネス プロセスを自動化できるようにする手段として、AI機能をより多く組み込みました。
これらのAI機能はAzure Machine Learningの上に構築されました。
この際に誕生したのがAI Builderでした。
AI Builderの誕生により、エンジニアではないユーザーがビジネスプロセスにデータ分析や予測のために、ロ―コードでAIモデルを構築できるようになりました。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2883014/155147f9-3d56-01ff-d9e0-c47b01830e09.png" width=60%>

2021 年、Dynamics 365 チームはさらに一歩前進し、Open AI GPT3 モデルを使用し多機能を実装しました。この機能により、ユーザーが自然言語で一部の開発が行えるようになりました。

https://powerapps.microsoft.com/en-us/blog/introducing-power-apps-ideas-ai-powered-assistance-now-helps-anyone-create-apps-using-natural-language/

2022年には画像からアプリを作成する機能が発表され、2023年にはDynamics 365とPower PlatformそれぞれのサービスにCopilot機能が発表されました。

Dynamics 365は、ミッションクリティカルなデータをためるデータソースでしたが、多くの場合、手動によるデータ入力などのタスクが必要になり、その活用に困難を感じるユーザーも多くいました。
Dynamics 365 Copilotの誕生により、生成型 AI 技術を利用して、これらの面倒なタスクを自動化し、従業員の創造性を最大限に引き出し、ビジネスの成果を向上させることができるようになります。

https://blogs.microsoft.com/blog/2023/03/06/introducing-microsoft-dynamics-365-copilot/

また、Power Platform Copilotにより、ローコード開発がさらに民主化され、ソリューションを想像できさえすれば、それを自然言語で簡単に記述し、数秒でソリューションを作成できるようになります。

https://cloudblogs.microsoft.com/powerplatform/2023/03/16/power-platform-is-leading-a-new-era-of-ai-generated-low-code-app-development/


# まとめ
Dynamics 365 と Power Platform はMicrosoftにとって最も急速に成長しているソフトウェア カテゴリの一部となっています。

DynamicsのAzure移行から歴史は動き、Dataverse、Power Appsがうまれ、今日まで発展を続けてきました。
Open AI GPT3 モデルを利用した機能の実装など、今後も進化が進んでいくDynamicsとPower Platformから目を離さないでください！

https://powerapps.microsoft.com/en-us/blog/introducing-power-apps-ideas-ai-powered-assistance-now-helps-anyone-create-apps-using-natural-language/

https://powerapps.microsoft.com/en-us/blog/new-express-design-in-power-apps-converts-images-and-designs-to-apps-in-seconds/

https://blogs.microsoft.com/blog/2023/03/06/introducing-microsoft-dynamics-365-copilot/


# 参考

https://customers.microsoft.com/en-au/story/1636062794805219031-dynamics-365-application-modernization-on-microsoft-azure


# Special Thanks
@yuichi-masuda