Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ETロボコン2020 競技会場システムのおはなし

ETロボコン2020 競技会場システムのおはなし

試走会、ヴァーチャル競技会に向けて構築した「ETロボコン2020 競技会場システム」。このシステムのプラットフォームには「Microsoft Azure」を採用した。

本ワークショップでは、「ETロボコン2020 競技会場システム」で注目していただきたいところをピックアップし、加えてこれらを実現するために採用したMicrosoft Azureのサービスとともに紹介する。

ETロボコン2020 競技会場システムのおはなし (フォローアップ)
https://qiita.com/tetsuya-ooooo/items/632896ed3f99ac0ef7b3

Tetsuya Odashima

November 30, 2020
Tweet

More Decks by Tetsuya Odashima

Other Decks in Technology

Transcript

  1. 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
  2. ETロボコン2020 技術WS/ETロボコン実行委員会 本日お話しすること 3 • 試走会、ヴァーチャル競技会に向けて構築した 「ETロボコン2020 競技会場システム」 – 注目していただきたいところをピックアップ

    • インフラのこと • 参加者のみなさんと競技会場とをつなぐ 受付カウンター • イベントを盛り上げる?サブシステムたち • 「ETロボコン2020 競技会場システム」の プラットフォームである「Microsoft Azure」 EV3/シミュレータ開発環境構築 https://github.com/ETrobocon/etrobo/
  3. 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 Services Analytics AI IoT 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/
  4. 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 データセンターは、ネットワークに接続されたコンピューター サーバーのグループを収容する、世界中に存在する一意の物理的な建物
  5. 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)
  6. 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
  7. 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/
  8. 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 リクエスト/リザルト 連携
  9. 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
  10. 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倍!! 参加チームの統計
  11. 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 トリガー アクション ワークフロー 実際のワークフロー
  12. ETロボコン2020 技術WS/ETロボコン実行委員会 恒例イベントをオンライン化してみた結果 • 昼夜問わず、ほぼ無人で稼働する環境 – 例年は、 • 場所を借り、事前に会場を設営し、当日は各自の役割を果たす (多くの実行委員が稼働)

    • チームは、事前に予約した時間枠に参加する、試走できる時間は限られている (数時間) – 今年は、 • 今までより圧倒的な少人数で試行錯誤して準備を進める (構築する) • 昼夜問わず、ほぼ無人で稼働する環境を手に入れることができた • チームは好きな時に試走でき、試走期間中 (1週間程度) は今まで以上に有益な活動ができただろう • すべての活動がデータ化、そして見える化 – 今までは、どのチームがいつ参加したかくらいは分かっていた (ほぼ人力ですが) が、 今年はさらにどのチームがいつ、どれくらい試走したかが把握できる – 蓄えたデータを見える化、そして公開がとてもカンタンに • 参加者のみなさんと協力して、より良いシステムづくり – 走行中もキャンセルできれば、もっと多くのチームが試走できるのに… → やりましょう …チーム自ら”走行終了を宣言”できる機能を追加! – ぜんぜん順番 (試走) が回ってこないよー → 過剰だった”優しさ”を緩和 …走行順を決めるロジックを改善! 18
  13. ETロボコン2020 技術WS/ETロボコン実行委員会 責任共有モデル • 責任の分担 クラウドを利用するにあたり、利用者の責任 範囲と、クラウドプロバイダー (Microsoft) の責任範囲と分かれている 22

    • クラウドセキュリティの利点 クラウドは常にセキュリティの脅威と戦い、 そして学んで強化し続けている クラウドにシフトすることで、もれなくこの メリットを受けることができる https://docs.microsoft.com/ja-jp/azure/security/fundamentals/shared-responsibility (利用者が常に責任を負う) (責任はサービスの種類によって異なる) (責任はクラウドプロバイダーに委譲する) (従来のアプローチ) (クラウド対応のセキュリティ) (物理データセンター) (物理ネットワーク) (物理ホスト) (OS) (ネットワーク制御) (アプリケーション) (IDとディレクトリのインフラ) (アカウントとID) (デバイス) (情報とデータ)
  14. 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)
  15. 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
  16. 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
  17. 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