【忙しい人のための】Azureの基礎第3部【AzureにおけるIoT・AI・サーバレス・DevOpsサービスと管理ツール】

AzureについてMS Learnで勉強される場合、第3部は2時間18分のラーニングパスになっています。
ここでは、自身の勉強の復習も兼ねて、MS Learn Azureの基礎第3部の要点をまとめておきますので、Azureの情報を素早く知りたいという方の参考になれば幸いです。
自身の勉強の力点を踏まえて記述するので、詳細な情報を得たい方はMS Learnにアクセスください。

本家様

https://docs.microsoft.com/ja-jp/learn/paths/az-900-describe-core-solutions-management-tools-azure/

第2部後編はこちら

https://qiita.com/enurinri/items/d84b563bf8d082491f69

第4部はこちら

https://qiita.com/enurinri/items/dece9d9020bf93315046

# Azure IoTサービス
## Azure IoT Hub
Azure IoT Hubは、クラウドにホストされるマネージドサービスでIoTアプリケーションとそれが管理するデバイスの双方向通信のための中心的なメッセージハブとして機能するもの。
デバイス&クラウド間で双方向通信をサポート。
クラウドからデバイスへの通信は命令&制御可能。
監視することで、ソリューションの正常性を維持することに役立つ。

## Azure IoT Central
Azure IoT Centralは、IoT Hubを含む様々なAzure製品を統合し、IoTデバイスの接続・監視・管理を備えたダッシュボード（インターフェース）を作成するもの。
デバイステンプレートを使用し、サービス側でコーディングすることなくデバイスを接続可能。
→レポートと管理のためにダッシュボードが必要な場合に利用

## Azure Sphere
顧客向けEnd-to-Endで安全性の高いIoTソリューションを作成するもの。
デバイスとAzure間の安全な通信チャネルを確保可能。
→デバイスを侵害されないことが重要な場合に利用

# AIサービス
## Azure Machine Learning
Azure Machine Learningは、予測を行うためのプラットフォーム。
機械学習モデルの開発、トレーニング、テスト、デプロイ、管理、追跡に使用できる機械学習アプリケーション開発環境で、PythonやRが使用可能。
データに接続し、モデルをトレーニングやテストして、将来の結果を最も正確に予測したモデルを発見可能にするツールとサービスにより構成。
→ユーザ自身のデータを使用してアルゴリズムの設計及びトレーニングを完全に制御する時に利用

## Azure Cognitive Services
Azure Cognitive Servicesは、事前に構築された機械学習モデルにより、「言語・音声・視覚・検索・決定」に関するAIアプリケーションを構築するための**API**を提供。
API(Application Programing Interface)とは、ソフトウェアやアプリケーションの機能を、外部の他のプログラムから呼び出して利用するための手順やデータ形式などを定めた規約。
→汎用的にAI技術を利用可能。

## Azure Bot Service
Azure Bot Serviceは人間と自然言語でコミュニケーションを取ることが可能な仮想エージェントを作成。
単純な繰り返しタスクをを自動システムを移行可能。
Power Automateでカスタムワークフローを構築して、Power Virtual Agentsを拡張。
Microsoft Bot Frameworkでより複雑な対話処理を構築。

# サーバレステクノロジ
## Azure Functions
Azure Functionsは、クラウド内で一般的なプログラミング言語を使用して、イベントに応答して実行されるメゾットまたは関数をホ実行することが可能。

* 自動スケーリング
* 関数がトリガーされた時のみ課金
* ステートレスな環境
* Durable Functionsでオーケストレーション

## Azure Logic Apps
Azure Logic Appsは、Azureサービスによってトリガーされるロジックを実行する、ローコードまたはノーコードの開発プラットフォーム。
APIを介して多数の異なるサービスを接続。

# 優れたソリューションを構築するためのツール
## Azure DevOps Services
**DevOps**とは、ソフトウェアに関して開発と導入/運用の担当が協力し、ソフトウェアのローンチから継続的更新を高速で実現することを目的とした概念。
ソフトウェア開発のライフサイクル全てに対応する一連のサービスとして

* **Azure Repos**：一元的なソースコードレポジトリ
* **Azure Boards**：アジャイルなプロジェクト管理スイート
* **Azure Pipeline**：CI/CDパイプラインオートメーションツール
* **Azure Artifacts**：成果物をホスティング
* **Azure Test Plans**：自動テストツール

が存在し、プロジェクト管理とレポートに優れる。

## GitHub
GitHubとは**Git**の機能をマネージドサービスとして提供。
Gitとは、ソフトウェア開発に必要なソースコードをバージョン管理するためのOSS。

## Azure DevTest Labs
Azure DevTest Labsは、ソフトウェアプロジェクトのビルドを含むVMの構築・設定・破棄のプロセスを管理する自動化された手段を提供するもの。
→テストやデモなどの環境の作成を自動化及び管理するときに利用

# Azure環境の管理と構成用のツール
## Azure Portal
Azure Portalは、AzureにおけるWebベースの統合ユーザインターフェース。
Azureのほぼ全ての機能にアクセスでき、カスタムレポートを作成。

## Azure Mobile App
Azure Mobile Appは、iOSやAndroid OSからAzureリソースにアクセスできるモバイルアプリ。
Azureリソースの正常性と状態を監視。
アラートを見て、問題を修正し、WebアプリやVMを再起動。
Azure CLI, Azure PowerShellのコマンドでAzureリソースを管理。

## Azure PowerShell
Azure PowerShellは、コマンドやスクリプトでAzure Rest APIを呼び出してAzureで可能な全ての管理タスクを実行可能。
**Azure Cloud Shell**を介してWebブラウザでアクセス可能。
PowerShell Coreを構成することによりLinux, macOSでも利用可能。

## Azure CLI
Azure CLIは、Azureリソースに対する管理コマンドを実行可能なクロスプラットフォームコマンドライン管理ツール。
**Azure Cloud Shell**を介してWebブラウザでアクセス可能。
Windows, Linux, macOS上で実行可能。

## ARMテンプレート
ARMテンプレートは、Azure Resource Managerに対して、使用するリソースを宣言型のJSON形式で記述し、複数の作業を一括で実行可能。
→リソースに対して一貫した操作を反復するときに利用

# 監視サービス
## Azure Advisor
Azure Advisorは、Azureリソースを評価して

* 信頼性・セキュリティ・パフォーマンス向上
* オペレーショナルエクセレンスの実現
* コスト削減

に役立つ推奨事項を提供。

## Azure Monitor
Azure Monitorは、Azureとオンプレミス環境全体でのメトリックとログデータに基づいて収集・分析・可視化・アクションを実行するためのプラットフォーム。
アラートによって重大なイベントにもリアルタイムで対応可能。

## Azure Service Health
Azure Service Healthは、Azureのサービス・リージョン・リソースの正常性に関するパーソナライズされた監視ツールを提供。
特に、

* サービスの問題：サービス停止などの情報
* 計画メンテナンス：可用性に影響するメンテナンス情報
* 正常性の勧告：サービスの提供終了や破壊的変更に関する情報
* セキュリティアドバイザリ

に対しては、正式な根本原因分析を提供。