More Related Content
Similar to ETロボコン2020 競技会場システムのおはなし (20)
ETロボコン2020 競技会場システムのおはなし
- 2. ETロボコン2020 技術WS/ETロボコン実行委員会
Hello!
• 小田島 哲也 (おだしま てつや)
• パーソルプロセス&テクノロジー株式会社
– Azure コンサル/技術サポート/人材育成
• Microsoft MVP for Microsoft Azure (2018~)
• コミュニティ活動
– Qiita (https://qiita.com/tetsuya-ooooo)
– SlideShare (https://www.slideshare.net/tetsuyaodashima)
– Japan Azure User Group (https://jazug.connpass.com/)
• ETロボコン活動実績
– 2007・2008、「あずまひろしはじめました」で参加
– 2011~ 実行委員会 (東京地区) に参画
– 2013~ 東京地区技術委員長
– 2014、ランキングサイト (https://ranking.etrobo.jp/) 立ち上げ
– 2018~ 本部技術委員を兼務
– 2019、公式サイト (https://www.etrobo.jp/) 移設&リニューアル
– 2020、マイページ (kintone) 構築、メーリングリスト移設、ETロボコン2020 競技会場システム構築
2
- 7. ETロボコン2020 技術WS/ETロボコン実行委員会
Azure が提供する主なサービス
7
Azure Datacenter Infrastructure
Compute Storage VDI Networking
Management Security
Infrastructure as a Services (IaaS)
Platform as a Services (PaaS)
Windows
Virtual
Machines
Linux
Virtual
Machines
Disk
Storage
Windows
Virtual
Desktop
Virtual
Network
VPN
Gateway
Express
Route
Load
Balancer
Azure
Firewall
Azure
WAN
Network
Watcher
Azure Monitor
Log Analytics
Azure Policy
Azure Blueprints
Azure Backup
Azure Site
Recovery
Azure Migrate
Azure Data
Box Family
Azure Cost
Management
Azure Advisor
Azure Security
Center
Azure Active
Directory
Azure AD
Domain Services
Azure AD B2C
Azure DDoS
Protection
Key Vault
Multi-Factor
Authentication
Azure ATP
Role-Based
access control
Azure Bastion
Azure Sentinel
Compute/Containers
Azure
Functions
Azure Kubernetes
Service
Container
Instance
Azure Service
Fabric
Web/Mobile
Integration
Media/CDN
API
Management
Logic Apps
Service Bus Event Grid
Media
Services
Contents
Protection
Video
Indexer
Content Delivery
Network
DevOps/Developer
Data ServicesAnalyticsAIIoT
App Service
(Web Apps)
Mobile Apps
Logic Apps
Notification
Hubs
Azure SignalR
Service
Azure DevOps
Azure Lab
Services
Azure
Application
Insights
Azure SDK
Azure
IoT Hub
Azure
IoT Central
Azure
Time Series
Insights
Azure
Digital Twins
Azure
IoT Edge
Cognitive
Services
Machine
Learning
Studio
Machine
Learning
Services
Azure
Bot Service
Azure Search
Azure Synapse
Analytics
Azure Databricks
HDInsight
Azure
Stream Analytics
Azure Data Lake
Storage Gen2
Azure SQL
Database
Azure
Cosmos DB
Azure Data
Factory
Azure Cache
for Redis
Table Storage
Azure Database
for MySQL
Azure Database
for PostgreSQL
Azure Database
for MariaDB
Azure Database
Migration
Services
400+のサービスを提供
一般提供なサービスには SLA
https://azure.microsoft.com/ja-jp/services/
- 8. ETロボコン2020 技術WS/ETロボコン実行委員会
高信頼と多拠点展開のデータセンター群
8
66 リージョン
世界全域
※2020/10/31現在
165,000 miles+
バックボーン
ネットワーク
90+
95%
コンプライアンス認証
業界で最大のポートフォリオ
Fortune 500 企業の 95% が
Azure で自社ビジネスを展開
$1 billion
セキュリティに対する
1 年あたり投資 (米ドル)
顧客データを保護するために
投資されている
https://azure.microsoft.com/ja-jp/global-infrastructure/
https://azure.microsoft.com/ja-jp/global-infrastructure/geographies/
• Azure リージョンは、待機時間で定義された境界内でデプロイされ、低
遅延の専用リージョン ネットワークを使用して接続された一連のデータ
センター
• Azure データセンターは、ネットワークに接続されたコンピューター
サーバーのグループを収容する、世界中に存在する一意の物理的な建物
- 10. ETロボコン2020 技術WS/ETロボコン実行委員会
ope-subnet
sim-subnet
ETロボコン2020 競技会場システム構成
10
et-sim-vnet (Virtual Network)
審判/マーシャル/
メンテ作業
(VPN Client)
VPN
Gateway
et-sim-vm
(VM:Win10+WSL)
et-work-vm
(VM:WS2019)
ACL
(NSG)
ACL
(NSG)
Azure AD Joined (デバイス参加)
ID/デバイス/アクセス管理
(Azure Active
Directory)
ファイル保管場所
(Blob Storage)
リクエスト管理
(SQL Database)
認証依頼→
←トークン
YouTube
ライブ配信
参加状況
レポート
(Power BI)
走行
リクエスト
ファイル
走行結果
ファイル
ファイル連携
参加者のみなさん
受付カウンター
(App Service)
Relay
リクエスト/リザルト連携
etrobo環境
Athrill
CPU エミュレータ
EV3RT/ASP3
エミュレータ向け移植版
ETロボコンシミュレータ2020
同期・通信
走行体制御ソフトウェア
C/C++
走行結果
MP4・ログ
Microsoft Azure
Point to Site
VPN 接続
(OpenVPN)
アプリ監視
(Application
Insights)
Monitor
Log Analytics
Security
Center
System
Health
Monitoring
異議申し立て
(Microsoft Forms)
ワークフロー
データ連携
(Logic Apps)
コミュニ
ケーション
(Slack)
- 11. ETロボコン2020 技術WS/ETロボコン実行委員会
シミュレータ環境を支えた仮想マシン (Virtual Machines)
Azure では、たくさんの種類の VM イメージをさまざまなサイズで提供している
11
Type 説明 Type 説明
汎用 バランスのとれた CPU 対メモリ比。テス
トと開発、小規模から中規模のデータベー
ス、および低から中程度のトラフィックの
Web サーバーに最適。
ストレージ最適化 ビッグデータ、SQL、NoSQL DB、データ
ウェアハウジング、および大規模なトラン
ザクション DB に最適な高いディスクス
ループットと IO。
コンピューティング
最適化
高い CPU 対メモリ比。中トラフィックの
Web サーバー、ネットワークアプライアン
ス、バッチプロセス、およびアプリケー
ションサーバーに適している。
GPU 負荷の高いグラフィックレンダリングとビ
デオ編集、およびディープラーニングによ
るモデルトレーニングと推論 (ND) を対象
とした専用の仮想マシン。単一または複数
の GPU で利用できる。
メモリ最適化 高いメモリ対 CPU 比。RDB サーバー、中
規模から大規模のキャッシュ、インメモリ
分析に最適。
ハイパフォーマンス
コンピューティング
高スループットネットワークインターフェ
イス (RDMA) のオプションを備えた、最も
高速かつ強力な CPU 仮想マシン。
https://docs.microsoft.com/ja-jp/azure/virtual-machines/sizes
B Dsv3 Dv3 Dasv4 Dav4
DSv2 Dv2 Av2 DC DCv2
Dv4 Dsv4 Ddv4 Ddsv4
F Fs Fsv2
Esv3 Ev3 Easv4 Eav4
Ev4 Esv4 Edv4 Edsv4
Mv2 M DSv2 Dv2
Lsv2
HB HBv2 HC H
NC NCv2 NCv3 NCasT4_v3
(Preview)
ND
NDv2
(Preview)
NV NVv3 NVv4
- 12. ETロボコン2020 技術WS/ETロボコン実行委員会
シミュレータ環境を支えた仮想マシン (Virtual Machines)
• NV12 (*1) (Promo VM)
– コンピューティング処理やグラフィック処理の
高負荷なワークロード向け
– 12 vCPU (Intel Xeon E5-2690 v3 (Haswell) CPU)
– RAM 112 GiB
– GPU NVIDIA Tesla M60 (RAM 16 GiB)
• Maxwell アーキテクチャを採用したグラフィックス
アプリケーション処理用の GPU
• NVIDIA GRID を使って優れたグラフィックス機能
を実現
• Hyper-V 個別デバイス割り当て (DDA) 技術を使用
して、PCIe デバイスパススルーで直接 GPU をつつ
きにいく (高パフォーマンスでアクセスできる)(*2)
• 選んだ理由
– NVIDIA GPU な VM はレンダリング調整ができる
– キャンペーン割引価格が適用できた (*3)
– サイズはロケハン (現地検証) で決めた
12
et-sim-vm
(VM:Win10+WSL)
デバイスマネージャーから見る
と、マシンにGPUカードが
刺さっているかのように見える *1 https://docs.microsoft.com/ja-jp/azure/virtual-machines/nv-series
*2 https://docs.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/plan/plan-for-
deploying-devices-using-discrete-device-assignment
*3 https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/windows/
- 13. ETロボコン2020 技術WS/ETロボコン実行委員会
競技会場 受付カウンターは PaaS で構成
概要 競技会場での用途
Azure App
Service (*1)
ユーザーがインフラを構築および管理する
ことなく、さまざまな種類の Web アプリ
を簡単にホストできるサービス
競技会場 受付カウンター
アプリ
(ASP.NET Core MVC+jQuery)
Azure SQL
Database (*2)
SQL Server のデータベースエンジンを
使ったマネージドなデータベースサービス
走行リクエスト管理
Azure Blob
Storage (*3)
テキスト・バイナリデータなどの大量の非
構造化オブジェクトデータを格納できる
クラウドストレージ、拡張性が非常に高い
走行リクエストファイル・
走行結果ファイルを格納
Azure Active
Directory (*4)
Microsoft が提供するクラウドベースの ID
およびアクセス管理サービス
受付カウンターのユーザー
認証
Azure
Application
Insights (*5)
さまざまな Web アプリと統合して、
パフォーマンス状況の集計や異常の検知な
ど一括で管理できるサービス、APM (アプ
リケーション性能管理) ツールのひとつ
受付カウンターの状態監視
13
ID/デバイス/
アクセス管理
(Azure Active
Directory)
ファイル保管場所
(Blob Storage)
リクエスト管理
(SQL Database)
認証依頼→
←トークン
受付カウンター
(App Service)
アプリ監視
(Application
Insights)
*1 https://docs.microsoft.com/ja-jp/azure/app-service/overview
*2 https://docs.microsoft.com/ja-jp/azure/azure-sql/database/sql-database-paas-overview
*3 https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-blobs-introduction
*4 https://docs.microsoft.com/ja-jp/azure/active-directory/fundamentals/active-directory-whatis
*5 https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/app-insights-overview
リクエスト
取得・更新
Relay
リクエスト/リザルト 連携
- 14. ETロボコン2020 技術WS/ETロボコン実行委員会
ID/アクセス管理は Azure Active Directory におまかせ
• Azure Active Directory (Azure AD)
– Azure AD でアプリを一元管理 (Azure AD 連携)
• Microsoft 365 (Office 365)、Azure ポータル etc.
• 3rd Party SaaS アプリ
• 組織内で開発したアプリ
• こんなところで使いました
– 受付カウンターの認証
– アカウント管理、監査 (サインインレポートなど)
• なぜ Azure AD 連携が有益なのか
– 完璧に実装されたセキュリティをそのまま活用
– 非機能要件の一部 (セキュリティ、監査など) を
任せられる
– ユーザービリティの向上
• デバイス管理、パスワードレス認証、セルフ パス
ワードリセットなどの機能が利用できる
– ID 基盤を集約することで管理コストが下がる
14
クリック
https://docs.microsoft.com/ja-jp/azure/active-directory/fundamentals/active-directory-whatis
https://www.slideshare.net/microsoftjp/decode-2020-apps-on-azure-ad-why-how
- 15. ETロボコン2020 技術WS/ETロボコン実行委員会
データを見える化
15
• Microsoft Power BI
– 組織内外の膨大なデータの傾向を容易に分析し、
”見える化”を実現することで、重要な気づきを
発掘できるツール
– 誰でも簡単に直感的に見やすいダッシュボードや
レポートが作成できる
• こんなところで使いました
– 試走会1・2 参加状況レポート
– 参加チームの統計 (公式サイト)
• 表、グラフでイメージしやすく
– 参加率
– リクエスト数
• データを組み合わせて
新たな発見
– 予定と実績
– チームの所在地と
マップ
https://docs.microsoft.com/ja-jp/power-bi/fundamentals/power-bi-overview
リクエスト数
3倍!!
試走会1 参加状況レポート
試走会2 参加状況レポート
参加率
1.3倍!!
参加チームの統計
- 16. ETロボコン2020 技術WS/ETロボコン実行委員会
ワークフロー/データ連携
16
Azure
Logic Apps
Microsoft
Forms
Slack
• Azure Logic Apps (*1)
– ノンコーディング
– ワークフローを自動化したり、データを統合したり
– 提供される数百のコネクタ (*2) を使って、さまざま
なサービスと連携
– サーバーレス
• サーバーのことは考えなくて👌
• こんなところで使いました
– 異議申し立てボット
• チームから Microsoft Forms に異議申し立てを
Submit されたら、自動的に Slack に投稿
• 迅速に対応 (審議) できるように
• とにかくカンタン、とても便利
– ブロックを置いていくような感じ、わかりやすい!
– ブラウザーだけで作成できる、使いやすい!
– 使ったリソース分だけお支払い、安い! (*3)
審議結果
実行委員会で審議
チームより
異議申し立て
*1 https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-overview
*2 https://docs.microsoft.com/ja-jp/azure/connectors/apis-list
*3 https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/
投稿
Azure SQL
Database
トリガー
アクション
ワークフロー
実際のワークフロー
- 18. ETロボコン2020 技術WS/ETロボコン実行委員会
恒例イベントをオンライン化してみた結果
• 昼夜問わず、ほぼ無人で稼働する環境
– 例年は、
• 場所を借り、事前に会場を設営し、当日は各自の役割を果たす (多くの実行委員が稼働)
• チームは、事前に予約した時間枠に参加する、試走できる時間は限られている (数時間)
– 今年は、
• 今までより圧倒的な少人数で試行錯誤して準備を進める (構築する)
• 昼夜問わず、ほぼ無人で稼働する環境を手に入れることができた
• チームは好きな時に試走でき、試走期間中 (1週間程度) は今まで以上に有益な活動ができただろう
• すべての活動がデータ化、そして見える化
– 今までは、どのチームがいつ参加したかくらいは分かっていた (ほぼ人力ですが) が、
今年はさらにどのチームがいつ、どれくらい試走したかが把握できる
– 蓄えたデータを見える化、そして公開がとてもカンタンに
• 参加者のみなさんと協力して、より良いシステムづくり
– 走行中もキャンセルできれば、もっと多くのチームが試走できるのに…
→ やりましょう …チーム自ら”走行終了を宣言”できる機能を追加!
– ぜんぜん順番 (試走) が回ってこないよー
→ 過剰だった”優しさ”を緩和 …走行順を決めるロジックを改善!
18
- 22. ETロボコン2020 技術WS/ETロボコン実行委員会
責任共有モデル
• 責任の分担
クラウドを利用するにあたり、利用者の責任
範囲と、クラウドプロバイダー (Microsoft)
の責任範囲と分かれている
22
• クラウドセキュリティの利点
クラウドは常にセキュリティの脅威と戦い、
そして学んで強化し続けている
クラウドにシフトすることで、もれなくこの
メリットを受けることができる
https://docs.microsoft.com/ja-jp/azure/security/fundamentals/shared-responsibility
(利用者が常に責任を負う)
(責任はサービスの種類によって異なる)
(責任はクラウドプロバイダーに委譲する)
(従来のアプローチ) (クラウド対応のセキュリティ)
(物理データセンター)
(物理ネットワーク)
(物理ホスト)
(OS)
(ネットワーク制御)
(アプリケーション)
(IDとディレクトリのインフラ)
(アカウントとID)
(デバイス)
(情報とデータ)
- 23. ETロボコン2020 技術WS/ETロボコン実行委員会
試走会1・2の参加率とリクエスト数
23
56.3%
46.2%
59.3% 58.1%
72.7%
59.0%
77.0%
74.2%
0.0%
10.0%
20.0%
30.0%
40.0%
50.0%
60.0%
70.0%
80.0%
90.0%
100.0%
全体 エントリー プライマリー アドバンスト
試走会1・2の参加率
試走会1 試走会2
1,148
128
894
126
3,384
379
2,584
421
0
500
1,000
1,500
2,000
2,500
3,000
3,500
4,000
全体 エントリー プライマリー アドバンスト
試走会1・2のリクエスト数
試走会1 試走会2
(183) (39) (113) (31)
- 24. ETロボコン2020 技術WS/ETロボコン実行委員会
今回の取り組みに関する記事
• Azure VM で ET ロボコン EV3/シミュレータ開発環境を構築しよう (準備編)
– https://qiita.com/tetsuya-ooooo/items/29aca6eb9587e501e033
• Azure VM で ET ロボコン EV3/シミュレータ開発環境を構築しよう (NV/NVv3 シリーズ編)
– https://qiita.com/tetsuya-ooooo/items/dd640004f6fb23ed85fe
• Azure VM で ET ロボコン EV3/シミュレータ開発環境を構築しよう (NVv4 シリーズ編)
– https://qiita.com/tetsuya-ooooo/items/4b05897128abd8109a05
• Azure Windows 10 VM に Azure AD ユーザーで RDP 接続したい (主に接続元のはなし)
– https://qiita.com/tetsuya-ooooo/items/5896b0f77b2cf3d685dc
• Azure AD ユーザーアカウントの棚卸しに便利なスクリプト
– https://qiita.com/tetsuya-ooooo/items/02e66dd35a102792402c
• 参考:弊社内のイベントをオンラインで開催した記事やスライド
– 毎年恒例イベントを Azure Media Services を使ってオンラインで
• https://qiita.com/tetsuya-ooooo/items/d62a983da9887050c6ca
– 毎年恒例イベントを Azure Media Services を使ってオンラインで
• https://www.slideshare.net/tetsuyaodashima/azure-media-services-237071128
24
- 25. ETロボコン2020 技術WS/ETロボコン実行委員会
参考文献
• Azure とは
– https://azure.microsoft.com/ja-jp/overview/what-is-azure/
• Azure 製品
– https://azure.microsoft.com/ja-jp/services/
• Azure グローバル インフラストラクチャ
– https://azure.microsoft.com/ja-jp/global-infrastructure/
• Azure リージョン
– https://azure.microsoft.com/ja-jp/global-infrastructure/geographies/
• クラウドにおける共同責任
– https://docs.microsoft.com/ja-jp/azure/security/fundamentals/shared-responsibility
• Azure の仮想マシンのサイズ
– https://docs.microsoft.com/ja-jp/azure/virtual-machines/sizes
• NV シリーズ
– https://docs.microsoft.com/ja-jp/azure/virtual-machines/nv-series
• 個別のデバイスの割り当てを使用したデバイスの展開の計画
– https://docs.microsoft.com/ja-jp/windows-server/virtualization/hyper-v/plan/plan-for-deploying-devices-using-discrete-device-assignment
• Windows Virtual Machines の料金
– https://azure.microsoft.com/ja-jp/pricing/details/virtual-machines/windows/
• App Service の概要
– https://docs.microsoft.com/ja-jp/azure/app-service/overview
• Azure SQL Database とは
– https://docs.microsoft.com/ja-jp/azure/azure-sql/database/sql-database-paas-overview
25
- 26. ETロボコン2020 技術WS/ETロボコン実行委員会
参考文献
• Azure Blob Storage の概要
– https://docs.microsoft.com/ja-jp/azure/storage/blobs/storage-blobs-introduction
• Azure Active Directory とは
– https://docs.microsoft.com/ja-jp/azure/active-directory/fundamentals/active-directory-whatis
• Application Insights とは何か?
– https://docs.microsoft.com/ja-jp/azure/azure-monitor/app/app-insights-overview
• 【de:code 2020】 Apps on Azure AD - アプリケーション連携 WHY と HOW
– https://www.slideshare.net/microsoftjp/decode-2020-apps-on-azure-ad-why-how
• Power BI とは?
– https://docs.microsoft.com/ja-jp/power-bi/fundamentals/power-bi-overview
• 概要 - Azure Logic Apps とは
– https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-overview
• Azure Logic Apps のコネクタ
– https://docs.microsoft.com/ja-jp/azure/connectors/apis-list
• Logic Apps の価格
– https://azure.microsoft.com/ja-jp/pricing/details/logic-apps/
• サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
– https://youtu.be/zRXDpyN86Gg
– https://www.slideshare.net/ShuheiUda/microsoft-azure-149616966
• サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
– https://youtu.be/0u6y4fKu150
– https://www.slideshare.net/ShuheiUda/azure-225810747
26