【参加レポート】Azure OpenAI×マルチクラウドTech Night

普段の業務ではAWSを扱っているのですが、「最近話題のAzure OpenAIもキャッチアップしないと。。。」という焦りを隠しきれない私です

そんな中、Azure初心者向けのイベントが開催されていたので参加してきました！

https://msdevjp.connpass.com/event/287530/

開催目的から分かる通り、「クラウドは使ってるけどAzureは正直あんまり。。。」という方向けのイベントでした

> 開催目的
最近多くの企業様より AzureとOpenAI が初めてAzure を利用する方が増えてきております。マルチクラウド環境に初めて触れるエンジニアたちのための学びと発見の場を提供することを目指しています。Azure の始め方、Azure OpenAIを活用したマルチクラウド設計の独自のポイントやその設計における注意点など、新たな Azure OpenAI の世界に飛び込むエンジニアが直面する可能性のある課題を共有し、解決策を模索します。

目的の通り、Azureをそこまで知らない自分もとっつきやすい内容になっていました
簡単ではありますが、各登壇者の発表内容をまとめてみます

# オープニング
MS Open Tech Night 主催者より

- MSプロダクトの説明
    - 従来のMSプロダクトは、リリーススケジュールがギリギリだったりすることが多かった
    - 最近リリースしたAI製品は、従来の製品よりも特に急ぎでリリースした


- AI製品における重要なコンセプト
    - Copilot
        - そのままの意味の通り、「副操縦士」としての役割を担ってもらう
        - M365やGitHubにCopilotを搭載して展開中

    - Plugin
        - APIを使用して必要な機能を追加することができるコンセプト
        - 必要に応じて、特定のドメインの情報や最新情報を取得してくることができる
        - One Plugin model：共有規格のエコシステムを用意している


# LT1：AWSエンジニア向け Azure の触り方
発表者：エンジンファイブ株式会社 CEO 佐藤雅信
※急遽欠席のため会場で資料の共有のみ実施

# LT2：マルチクラウド・マルチプロダクトで実運用中のプロダクトのアーキテクチャとIaCの話
発表者：株式会社PKSHA Workplace AI SaaS開発部 テックリード 成定 怜士

- PKSHA AI ヘルプデスク for Microsoft Teams について

    - Teams上で使えるAIヘルプデスク
    - Temas上での問い合わせにAIが回答、回答できなければエスカレを上げることができる
    - 対話からFAQを生成する機能を最近リリース

https://aisaas.pkshatech.com/aihelpdesk/

- マルチクラウドにしてみた経験談
    - PKSHA AI ヘルプデスク for Microsoft Teamsのアーキテクチャ
        - AIヘルプデスクはAzure
        - 一部機能はAWSを使っている
            - プロダクトに限らず、全社でのドメイン管理はRoute53を使用中

    - Azureを使ってみてよかったこと
        - **エンプラ企業はAzureをインフラに使っていることが多いので、セキュリティ観点での納得感を得やすかった**
        - リソースグループ使えるので管理コストも削減
        - Teamsをそのまま使えるので、ユーザーの負荷も軽減できた
    - Azureを使ってみて困ったこと
        - AzureとAWSのコンソールを行き来するのが大変
        - マルチクラウドやってみた、という情報も少ない
        - ログやメトリクスをクラウド横断でトレースするのが大変
            - DatadogやNewRelicのようなSaaSを使って、ログを一括管理するようにした

- Azure Open AI導入によるアーキテクチャの変化
    - 開発言語
        - 元々GoとTSを使用していた
        - AI導入に向けて、Pythonを追加採用しようと検討

    - クラウドインフラ
        - Azureサービスを使用している部分では、App Serviceを採用していた
    - 問題点
        - 応答時間がかかる、同期的処理が難しい
            - Pythonを使うにあたって、キューやキャッシュを管理するのが難しいのでは。。。と言う不安
    - 解決策
        - Azure Container Appsを採用した
            - AWSで言うところのFargeta
            - Daprを使うとAzureサービスとの連携を抽象化した状態で使うことができる
                - 一回設定してしまえば接続が簡単なので便利！
            - 複数のApp Serviceを使う場合は環境変数を別々に管理する必要があったりで大変だった。それがなくなったのがありがたい
            - k8sの知識は多少必要だが、ほとんどk8sを意識せずに使用できた
        - Azure Container Apps Job
            - 現在プレビュー、ジョブコンテナを使うことができる

- AzureリソースのIaCについて
    - プロバイダー
        - 基本azurermを使用
        - たまにAzAPIプロバイダーを使う必要がある
            - ARMを間接的に使用できるプロバイダーなので、Azure側のアップデートに追随している
                - ARM：AWSで言うところのCloudFormation
    - IaC化するにあたって
        - MS公式ドキュメントに細かく手順が書かれているので、基本はそれに従った
    - リソース管理で気をつけていること
        - Azure OpenAI Serviceの環境
            - 本番と検証はリージョンで分けている
            - リージョンごとにクオーターがあるので、それに引っかからないようにリージョンを分割している
        - キャパシティ設定はIaCで行う
            - 管理しないとapplyするたびにデフォルト値になってしまう。。。
        - IaCのデプロイとアプリケーションのデプロイは分けて管理している
            - 以前APIが書きかわってしまうことがあった、その時はapplyするたびにエラーになってしまうことがあった。。。

# LT3：マルチクラウド歴7年のプレイドからみたMicrosoft Azure
登壇者：株式会社プレイド エンジニア 矢澤 学

- 今回言いたいこと
    - **Azure Open AIはAzureを始める第一歩におすすめ！**

- KARTEについて
    - サイト利用者のデータ利活用を推進するツール
    - お客様のサイトにコードを埋め込ませてもらうことで導入
    - 7年前からマルチクラウド化を進めている
        - スタートはAWS
        - 途中でBigQurey、Bigtableをデータ分析基盤に採用
        - マクロサービス化のためにGKEを追加

    - KARTE Craft
        - KARTEの中で、お客様が処理をカスタマイズしたりすることができる機能
        - 最近リリースしたため、ChatGTPを採用したかった
            - ただし、エンドユーザーの情報を預かるサービスなのでデータ管理は重要、普通にChatGPTを使用することができない。。。
            - そんな中、Azure Open AIがリリースされたため早速使ってみた！

https://karte.io/

https://developers.karte.io/docs/what-is-karte-craft

- Azure Open AIを採用したその後
    - コード作成を支援するAI機能をAzure OpenAI Serviceで実装
        - 裏でAzure Open AIのAPIを叩いている
        - Cognitive Searchを使用して検索を実施
        - KARTEのサービス基盤は、従来と同様AWSとGCPで稼働している

    - 思いがけず、社内のエンジニアのスキル向上にも貢献
        - 元セールスエンジニアでもJavaのコードが簡単にかけた！と言う声が社内であった

- Azure Open AI利用開始するハードル
    - **マルチクラウドと言いつつ、実はAzure Open AIはAPIを呼んでいるだけなので、利用を始めるハードルは非常に低かった**

    - 加えて、ディレクトリ、サブスクリプションは整備済みだったのがよりハードルを下げた
        - MSの申請を通すことが一番大変だったかも。。。
    - デプロイ後はAPIエンドポイントにリクエストするだけ
        - 「まず作って動かしてみる」をそのまま体現したイメージ
    - 大変だった点
        - 使い始める準備はそれなりに大変
            - セキュリティや請求まわりの話を社内で通すことからスタートしないといけない
        - それさえできれば、後はエンジニア側でよしなに開発を進めることができる


# LT4：AWSユーザがAI活用のためにAzureと共存させるためにトライしたこととトライすること
登壇者：株式会社リンクアンドモチベーション データユニットマネージャー 東山 英治

- リンクアンドモチベーション

    - 従来は人事コンサルを実施、最近はコンサルのノウハウを中小企業に展開することにも注力
    - BtoBサービスを中心にサービスを展開
        - 例）モチベーションクラウド
            - サーベイの結果からどんな行動に移すべきなのかをAIに聞くことができる
            - 中間管理職でも行動に移せそうなプランを提示してくれる
            - ChatGTP APIを使った機能も開発中

https://www.lmi.ne.jp/

https://www.motivation-cloud.com/

- Azure OpenAI Serviceの採用

    - 採用理由
        - **エンタープライズ向けなのでお客様への説明が格段にしやすくなる**

    - 現状のアーキテクチャ
        - システムはAWS上でのサーバレス構成で、ChatGPTのAPIを叩きに行く構成
        - Azure OpenAI Serviceの導入をきっかけに、サーバレス基盤をAzureに持っていくことを検討し始める
    - 課題
        - ChatGPT→Azure Open AIの切り替えは簡単
            - サービス基盤は変わらないので、コードを少し書き換えればよし
        - AWS→Azureの移行は意見が分かれた。。。
            - 「お客様にとってのメリットはある？」に帰結した
    - Prompt Flowの登場
        - LangChain、VectorIndex、デプロイまでパッケージ化
            - MVPの作成が非常に簡単、デプロイスピードの向上
            - お客様への提供スピード向上が実現できる！
        - 他サービスの導入もやりやすくなった
            - サービスの質向上に繋がりそう
        - 目にみえるメリットが見えてきたため、Azureへの移行が進みやすそう！
- 困ったことからの学び
    - エンジニアとしては新しいものを導入したいが、最終的にはお客様の体験重要
    - 一方で、日々技術は進歩している
    - **導入しなくてもキャッチアップはしておくことが重要**

https://speakerdeck.com/lmi/azure-openaixmulti-cloud-tech-night-link-and-motivation

※今回のLTは以下の発表の続きに位置するとのことでした

https://speakerdeck.com/lmi/chatgpt-meetup-tokyo-number-2-link-and-motivation

# 所感
クラウドのシェアNo1のAWSとの比較が多かったため、かなりわかりやすい内容でした
Azure OpenAI Serviceは他のAzureサービスと比べても、APIを叩くだけで使うことができることがわかりました
これくらい気軽に試せるのであれば、ぜひ活用してみたいと思いました

ちなみに、MS公式ドキュメントでAWSとAzureのサービス比較が掲載されています

https://learn.microsoft.com/ja-jp/azure/architecture/aws-professional/services

また、これはChatGPTですがAIアプリ開発を実践できるハンズオン資料も多く存在します

https://zenn.dev/ml_bear/books/d1f060a3f166a5

この辺りをベースに、AzureおよびAzure OpenAI Serviceの勉強もしていこうと思います！