Power Platform と Azure を連携したシステム開発について

プロアクシアコンサルティングでオープンソリューション事業部に所属しています K.N です。
Microsoft社 が提供しているローコード開発ツールの Power Platform を利用した開発案件を中心に担当しています。

本ブログでは、Power Platform と Azure を利用したシステム構築について紹介いたします。

プロアクシアでの役割とこれまでの経験を教えてください

2022年に新卒で入社し、今年で3年目になります。

入社後から一貫して Power Platform を利用した開発に携わっており、大規模な開発も含めて3社のシステム開発を担当しました。担当している範囲については、当初は開発やテストなどを中心に担当しておりましたが、現在では開発以外に顧客との調整や設計なども担当するようになりました。

システム構成について

今回は私が担当したシステムについて紹介したいと思います。

本システムでは、開発は大きく分けて2か所で実施しています。
ユーザーインターフェースとなる部分については Power Platform を利用して開発を行い、データを解析する部分を Azure 上で Python を利用して行いました。

ユーザーインターフェース

Power Pages と Power Apps を利用して開発しています。

Web ページの作成や認証環境の構築には Pawer Pages を利用しており、業務部分の開発は Power Apps のキャンバスアプリで開発しています。作成したキャンバスアプリは Power Pages の Web ページ上に実装することで、Web 上に公開しています。
アプリケーションで取り込んだデータの管理には Dataverse を利用しています。

バックエンド

バックエンドは Python を利用して開発しています。

Python で開発したアプリケーションで Dataverse 上のデータと Azure for PostgreSQL 上のデータを解析し、解析結果を Dataverse に書き込むことで Power Apps へ連携します。
Python からチャットやメールなどへの連携には Azure Communication Services を利用し、実行状況や処理結果をユーザーへ通知できるようにしています。

Python の実行環境については、Azure Container Instances 上に構築することで運用を容易にしています。
運用監視は Azure Log Analytics を活用するしてログ情報を監視することで、コンテナの稼働状況やコスト等の監視・通知する仕組みを構築しています。
本番環境・開発環境の運用に関しては Azure DevOps を使用しており、Git によるコード管理や、pipeline を利用した単体テストの自動化、Azure へのコンテナのデプロイ等を行っています。

Power Platform について

Power Platform は Microsoft 社が提供するローコード開発ツールです。
下記の5つのローコード開発ツールで構成されており、各ツールが連携して様々な開発を実現することが可能です。

  • Power Pages:外部向けの Web サイトを構築できます。
  • Power Apps:ローコードでの業務アプリケーションを開発できます。
  • Power Auotmate:アプリケーションとの連携と自動化を行えます。
  • Power BI:データ解析やデータの可視化を行えます。
  • Microsoft Copilot Studio:AI アシスタントを作成・管理できます。

Power Platform を利用して開発を行う利点について

Power Platform ではローコードで開発するため、旧来の開発言語と比べて技術習得が比較的容易です。また、ユーザー認証や他サービスとの連携等の部品が多く準備されていることで、複雑な記述をすることなくシステムを構成することが可能です。

開発工数については、ローコード開発ツールが苦手とするような複雑な開発を行わない限り、フルスクラッチで開発するより少ない工数で開発できると思います。また、リリース後の保守・運用についても、専門のエンジニアが不在でも手を付けやすい点も利点だと思います。

Power Platform を利用して開発を行う際に難しい点について

設計をする段階でローコード開発ツールの仕様把握を厳密にする必要があります。
ローコード開発ツールでは開発しやすくする為に、エンジニアとして本来考慮や配慮すべき点が予め設定されているため、多くの場合それらについてエンジニア側が内容を把握したり、変更を加えたりする事ができない仕組みになっています。

そういった制限の中でサービスとして堅牢に作り上げていくには随所で工夫が必要になってきます。ローコード開発ツールで実現できること、実現できないこと、実現するためには多くの開発が必要になることなど、ローコード開発ツールの仕様を把握しておいて、お客様の要望事項に対応できるのか判断する必要があります。

今回のシステムでは、ユーザーインターフェースになる部分の開発には適していますが、データを解析するなどの複雑な処理の開発には向いていないと判断したため、開発環境を分けて開発しています。これにより、ローコード開発ツールだけでは実装が難しい複雑な解析機能についても、サービスを連携することで容易に実装することができました。

Power Platform のコストについて

Power Platform を利用する場合、それぞれのツール毎にライセンスが必要になります。これらのライセンスは複数の課金形態が選択できるようになっているため、設計段階でどういったユーザーがどれだけ利用するのかを事前に整理し、どのライセンス形態を利用するのが最適か判断する必要があります。

また、Power Platform の機能拡張やサービス追加に伴い、ライセンス形態や価格が変更される場合もありますので、定期的にライセンス情報について確認する必要があります。

Power Platform に今後の期待する機能について

ローコード開発ツールは Power Platform に限らず、様々な外部サービスとの連携を強める方針でアップデートが重ねられています。今回のシステム構成の様に、 Power Platform と外部サービスの連携をこれからも強めていき、フロントエンドの開発ツールの選択肢として優良になる事を望んでいます。

特に AI の分野については、今後も継続して機能開発が進められていくと思います。ローコード開発ツールで容易に AI 機能を実装したアプリケーション開発が行えるようになると、さらに利用範囲が広がっていくのではないかと思います。

現在どのようなことに取り組んでいますか

Web ツールは絶えずアップデートや新規サービスのリリースが続いているので、最先端の情報を追い続け、常にお客様に対して最適な提案ができるように心がけています。

現在は Power Platform 案件を中心に担当していますが、今回のように Azure 上のサービスと連携しての開発も増えてくると思いますので、Azure のサービスについても知見を広めていこうと考えています。

プロアクシアコンサルティングのつよみについて

オープンソリューション事業部には5つの部があり、それぞれ専門性の高いエンジニアが所属しています。部署間の連携も強く柔軟にコミュニケーションが取れるため、実現したい事に対して様々な角度から技術的アプローチをかける事が可能です。

このため、固定した開発方法や手段にとらわれず、実際のお客様にとって必要な事を見極めて提供するという考え方を育むことができます。

今後エンジニアとしてどのように成長していきたいですか

まだ入社3年目ですので、当面の間は開発を中心に担当し色々な技術を習得していきたいと考えています。既存の知見を活かせる案件に参画するだけでなく、新しい技術についても積極的にチャレンジしていき、技術の幅を広くして必要に応じて必要な技術を使うことができる選択肢を多く持ったエンジニアになりたいです。

開発以外の部分では、業務知識やコミュニケーション能力も磨いて、提案や設計などの上流工程も担当できるように頑張っていきたいです。