y_megane.log

日々の勉強や改善ネタの備忘。

de:code2020 セッションメモ

Microsoftのカンファレンスであるde:code2020視聴時のメモ。

開催期間:6 月 17 日 (水) – 7 月 17 日 (金) 17:00 オンラインにて

www.microsoft.com


A01 React Native で Windows アプリ開発 ~React Native for Windows~

React Native for Windows とは React で Android/iOS の UI を作ってネイティブコード生成。TypeScript 開発も可。
2020 年 2 月からハイパフォーマンスな C++版が Windows のデフォルトになった。
Native Module や Native UI Components を使うことでネイティブ UI や API を利用できる。
ReactNative のコンポーネントをネイティブ開発に組み込むこともできる。

デモ:Android と Win のプレビューを出しながら開発。開発コードはWinとAndroidに同時に反映される。

A02 Azure Bot Services を使って Teams bot を開発する

【第 1/5】Teams bot をローカル (Visual Studio 2019) で開発し、Azure で無料で動かす【その1:VS でローカル web サーバ立てる編】 #decode20 #A02 - Qiita

Azure Bot Services Bot 開発の IDE。エンドポイント定義、SDKBot とチャネル間のフレームワーク

BotFrameworkSDK

Step1:ローカルでエミュレータ使って開発
Step2:ローカル Bot に Teams から接続。Teams > 365 > Azure(Bot チャンネル)> ngrok >ローカルサーバ
Step3:AzureAppService に Bot をデプロイ。Teams > 365 > Azure・・・逆順で帰ってくる

Step1:ローカル実行(エミュレータ
空プロジェクト>拡張 FW > BotFramework
再起動して新しい PJ > Echo Bot テンプレート>実行・・・Bot サーバは OK.

BotFramework エミュレータを入れる(GitHub から入手)
エンドポイント設定して動作確認。

Step2:ローカル実行(Teams) Azure > BotChannelsRegistration
ngrok で localhost のポートをトンネルしてエンドポイント生成。BotChannels に登録。
appId,appSecretswoVS の secret.json に設定。
Teams アプリのマニフェスト作成(アイコンと manifest.json を zip)して Teams から Upload。

Step3:AppService Azure の AppService を立ち上げる。
VS >発行> AppService を選択して発行。
Secret 設定、BotChannels のエンドポイント更新。

A06 Azure Kubernetes Service と Azure DevOps による GitOps の実践

IaC + Kubernetes によってコードによって、宣言的にインフラ構築が可能になった。
変更追跡も容易になった。
IaC のデプロイや切り戻し、CI への攻撃が課題になってくる。

GitOps マニフェストを Push すると GitOps 側で環境との差分を検知。差分があればデプロイ実行。
インフラ側に Push 用のエンドポイントを容易する必要がない=悪意あるデプロイを受けない。 Pull型。

A04 Azure ならこうする、こうできる!

AWS と Azure の比較。
課金と管理の単位が違う。AWS はアカウント単位だが Azure はサブスクリプション単位。
特定のリソース群ごとにサブスクリプション(課金単位)を分けて管理することも可能。

Azure のマルチ AZ 構成では IP のセグメント分ける必要がない。
Azure の AZ はペアが設定されていて(東京と大阪など)マルチ AZ はを選択するとそれらが使われる。

教材としては MS Learn が無償で使える。Azure の無償環境もついてくる。

A11 Azure 10 周年の節目に見直したい、Azure インフラのちょっと大事な話

Azure10 年の歩み。
デビューは 2008 年。当初は 1 日止まるメンテナンスなどもあった。現在はほぼ無影響でメンテナンス。

可用性セットは1つのデータセンターのクラスタのひとつ。
クラスタ内の 1 台が落ちても大丈夫だが、クラスタで共有している電源や空調などが落ちると全滅する。
可用性ゾーンは、電源などが独立したクラスタの組。
ゾーンがまるごと落ちてもサービスを継続できる。

A14 「あつまれ フロントエンドエンジニア」 Azure Static Web Apps がやってきた

いままでは WebApps…オーバースペック。BlobStorage…機能不足。
クラウドデザインパターン:Coulout Static Hosting Patttern

Azure Static Web Apps
GitHub Actions と統合された CI/CD。GitHubリポジトリとフォルダ指定すれば OK. プロダクトと別にプレビュー用のサイトにデプロイ可能。
AzureFunctions と統合されたサーバレス API
無料プランあり。コンテンツはグローバルに配置、CDN あり。

A31 Development from anywhere! 全ての開発者が生産性を維持するためにマイクロソフトが貢献できること

リモートワークによって 52%が生産性 UP(アメリカの調査)

Code from anywhere

リモートアクセスのセキュリティ、セットアップ時間、

  • Vidual Studio Codespaces クラウド開発環境。ブラウザベース。
  • VisualStudio Intellicode AI による高性能は

    Collaborate from anywhere

  • VisualStudio Live Share VS の拡張機能。共同編集が可能。

  • GitHub
  • Azure Boards アジャイル用のかんばんツール。スクラム対応。

    Ship from anywhere

  • GitHub Actions Azure と連携すると手軽にデプロイ。

  • DevTest Labs
  • Azure Monittor, Insight
  • Azure Policy

マイクロソフトが実施していること

  • カルチャー醸成
    • Teams 上でのカルチャーチャンネル
    • ランチ、コーヒー、通話しながら散歩、ゲーム
  • 情報共有
    • ヘルプリスト
    • リモートワークの指針
    • ハードウェアガイダンス
    • ベストプラクティス
  • 技術セットアップ
    • モニター、周辺機器など作業効率を損なわない環境
    • VSCodeSpace、WindowsVirtualDesktop などクラウド利用
  • 価値提供
    • リズムを維持し、Teams 上で実施
    • Azure Boards, Whiteboard を活用
  • ペアプログラミング

A51 未来を生き抜く子どもの教育、マインクラフトで扉を開くコンピューターサイエンスの学び。

イクラでのバーチャル卒業式。大学の校舎、政府公式にサーバー提供、昔話を再現、音楽の実験、etc
イクラのバージョンによるが、科学実験やプログラミングが可能。

  • Python を学ぶ
    • イクラ内のコードビルダーでコーディングやブロックプログラミングが可能。
    • コマンドを学ぶこともできる
    • 現実世界の AI の働きを学ぶ
  • 学習のプロセス
    • 想像:なにをつくるか
    • 調査:どう作るか
    • 試行:つくってみる
    • 修正:作り直す
    • 発信:作ったものを発信
  • Minecraft カップ 2019

B01 今日から始めたくなる Power Platform 入門編 ~デモで分かるローコード開発の無限の可能性~

  • PowerApps ノーコード・ローコードでアプリ開発
  • PowerAutomate ワークフロー機能。RPA 機能も追加。トリガーとアクションを設定する。
  • PowerBI データ可視化、分析。
  • PowerVirtualAgents Bot 開発。

データコネクタ、カスタムコネクタによって手軽にほかシステム連携。
CommonDataService:GUI で触れるデータストア。

キャンバスアプリ GUI でシンプルな画面開発。スマホ機能、カメラ、MR など利用可能。

モデル駆動型 ダッシュボードなど複雑なモデルを開発。
モデルを定義して対応するフォームを開発する。

PowerApps ポータル 社内ポータル向け。 Azure,Google などの認証基盤を使って認証機能をつけることもできる。

B41 Power Apps の可能性 ~やらない技術者に未来はない?~

ハンズオン。 SharePoint で用意したテーブルを用いて申請フォーム作成。
ブラウザ上で部品を並べてアプリ作成。
Windows フォームアプリや OutSystems のもっとシンプル&イケてる版。


M13 開発者が語る! Microsoft Teams アプリケーション開発の実例とコツ

タブアプリケーション
Planner のようにタブとして表示するもの。Web アプリを Teams 内で表示しているようなもの。
認証などを Teams 向けに改修すれば既存の Web アプリの流用も可能。

ボットアプリケーション ちょまどさんのセッション参照


Z02 セキュアなソフトウェアを実現する、GitHub のコード解析のご紹介

セキュリティ侵害の 53%はコードの脆弱性が原因。 セキュリティリサーチャーは不足している。リサーチャーによって CodeQL のクエリなど日々開発されている。

  • コードのセキュリティ

    • CodeQL
      • コード上の脆弱性を探索
      • 脆弱性のメソッドコールを辿って分析、表示でき(XSS の呼び出しから発言まで)
      • GitHub Actions として提供
      • セキュリティインシデント発生時にパターンを検知するクエリを作成し全プロダクトに実行することで網羅的に検査
      • 分析時のクエリに追加することで予防
    • Code Scanning
      • CodeQL による脆弱性探索を開発者ワークフローの提供
  • 依存関係のセキュリティ

    • 依存しているライブラリの脆弱性が見つかった場合にアラートを上げる
    • 脆弱性の詳細、解消されたバージョンなど
    • バージョンアップ用のプルリクを作成。リリースノートへのリンクなど補足情報つき
  • 安全なデプロイメント

Z03 GitHub 新機能のご紹介(2020 年 5 月発表)

  • GitHub Mobile
  • GitHub Actions
    • Organization でランナーを共有できる
    • ランナーにタグをつけて、フローごとに使用するタグを指定できる(GPU マシン、高 CPU マシンなど)
  • Codespaces
    • リポジトリのクローン、定義されたツールや拡張機能などがすべてインストールされた環境構築が可能。
    • devcontainer.json
  • Discussions
    • タスク管理である Issue と議論を分離
  • Secret Scannning
    • Push された瞬間にシークレットを検知。
    • すべての Git ヒストリをスキャン
  • Code Scanning
    • コードをマージする前にコードレベルの脆弱性を検知。
    • 他の SAST ツールによる拡張も可能
  • GitHub Private Instances
    • GitHub マネージドのシングルテナントのクラウドサービス
    • Azure 上にホストされる
    • AzureAD との統合