Slide 1

Slide 1 text

GitHub Codespacesで改善する チームの開発環境 2022/12/06 MICUG GitHub Part Yuta Matsumura (Alterbooth Inc.) Copyright © Alterbooth Inc. All Rights Reserved.

Slide 2

Slide 2 text

松村 優大 (Yuta Matsumura) Chief Technical Architect (C#, PHP, Azure) Microsoft MVP (Developer Technologies) #fukuten #devblogradio の中の人 @tsubakimoto_s Currently working for Copyright © Alterbooth Inc. All Rights Reserved.

Slide 3

Slide 3 text

Copyright © Alterbooth Inc. All Rights Reserved.

Slide 4

Slide 4 text

こんな経験ありませんか? これ作ったので 動かしてみて 動かない・・・ Copyright © Alterbooth Inc. All Rights Reserved.

Slide 5

Slide 5 text

こんな経験ありませんか? 開発環境 • Windows • Node.js 14 • VS Code • 手動インストール • … 開発環境 • macOS • Node.js 18 • IDE • homebrew • … 開発環境の作り方が バラバラ Copyright © Alterbooth Inc. All Rights Reserved.

Slide 6

Slide 6 text

開発環境の揃え方 • 同じ PC の支給 • 環境構築のマニュアル化 • セットアップスクリプトの配布 • 共通の仮想イメージの配布 • 共通のコンテナーイメージの配布 Copyright © Alterbooth Inc. All Rights Reserved.

Slide 7

Slide 7 text

Visual Studio Code + Extensions • 開発環境を「リモート」にもつ仕組み WSL or Containers ▼ • 開発環境としてコンテナーを準備する (devcontainer) • https://code.visualstudio.com/docs/remote/containers • Visual Studio Code + 拡張機能パック • Docker (Windows / macOS / Engine) Copyright © Alterbooth Inc. All Rights Reserved.

Slide 8

Slide 8 text

devcontainer の始め方① Copyright © Alterbooth Inc. All Rights Reserved.

Slide 9

Slide 9 text

devcontainer の始め方① 1. アプリケーションを VS Code で開く 2. Dockerfile を準備する 3. コマンドパレットを開く Dev Containers: Open Folder in Container… 4. Dockerfile のあるフォルダを指定する 5. devcontainer.json のできあがり Copyright © Alterbooth Inc. All Rights Reserved.

Slide 10

Slide 10 text

Copyright © Alterbooth Inc. All Rights Reserved.

Slide 11

Slide 11 text

devcontainer の始め方② Copyright © Alterbooth Inc. All Rights Reserved.

Slide 12

Slide 12 text

devcontainer の始め方② 1. アプリケーションを VS Code で開く 2. コマンドパレットを開く 3. devcontainer 構成の設定 Dev Containers: Add Development Container Configuration Files... 4. プリセットから選択 Show All Definitions... > Definitions 5. コンテナーで開き直す Reopen in Container Copyright © Alterbooth Inc. All Rights Reserved.

Slide 13

Slide 13 text

開発に必要なツールも一緒にインストールすることができます Copyright © Alterbooth Inc. All Rights Reserved.

Slide 14

Slide 14 text

.devcontainer/ .devcontainer ├ base.Dockerfile │ ベースイメージ構成 (参考用) ├ devcontainer.json │ コンテナー構成 └ Dockerfile Copyright © Alterbooth Inc. All Rights Reserved.

Slide 15

Slide 15 text

▶コンテナー構成 ▶VS Code構成 ▶転送ポート番号 ▶コンテナー作成後コマンド ▶コンテナー内ユーザー Copyright © Alterbooth Inc. All Rights Reserved.

Slide 16

Slide 16 text

GitHub Codespaces Copyright © Alterbooth Inc. All Rights Reserved.

Slide 17

Slide 17 text

GitHub Codespaces Copyright © Alterbooth Inc. All Rights Reserved. GitHub 上にホストされる仮想マシンを使用して、 オンライン上に開発環境を構築することができる。 devcontainer.json をリポジトリに保管している場合、 devcontainer.json の構成がセットアップされる。

Slide 18

Slide 18 text

その他のクラウド上の開発環境 • Azure Virtual Desktop • 開発環境の構築は別途必要 • Windows OSのみ • Azure Virtual Machine • 開発環境の構築は別途必要 • Windows OS, Linux OS • Microsoft Dev Box (Preview) • Azureサービスだが、Azure AD P1のユーザーライセンスが必要 • https://learn.microsoft.com/ja-jp/azure/dev-box/quickstart-configure-dev- box-service#prerequisites Copyright © Alterbooth Inc. All Rights Reserved.

Slide 19

Slide 19 text

GitHub Codespaces のマシン種別と価格 Copyright © Alterbooth Inc. All Rights Reserved. https://docs.github.com/ja/billing/managing-billing-for-github-codespaces/about-billing-for-github-codespaces

Slide 20

Slide 20 text

“組織” で GitHub Codespaces を使う利点 • 開発環境を統一することができる • Git で開発環境を管理することができる • 開発用 PC の調達が必須でなくなる Copyright © Alterbooth Inc. All Rights Reserved.

Slide 21

Slide 21 text

GitHub Enterprise Cloud / Server 個人所有のGitHub アカウントは、組織の管理下から外れちゃう? ▶自社 ID 基盤と SAML 連携を行うことで、組織アカウントとの シングルサインオンを構成可能。 Copyright © Alterbooth Inc. All Rights Reserved. 組織アカウント ログイン Enterprise Repository, Issue, Pull requests Actions, Projects, Wiki Codespaces, Advanced Security

Slide 22

Slide 22 text

GitHub Codespaces のセキュリティ • 分離された仮想マシンや仮想ネットワーク • Codespace にアクセスできるのは作成者のみ • 外部からのアクセス不可 • ポートフォワーディング機能 • シークレット管理 Copyright © Alterbooth Inc. All Rights Reserved. https://docs.github.com/en/codespaces/codespaces-reference/security-in-github-codespaces

Slide 23

Slide 23 text

Codespace のパーソナライズ VSCode 設定の同期 dotfiles リポジトリの反映 Copyright © Alterbooth Inc. All Rights Reserved. https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-github-codespaces-for-your-account

Slide 24

Slide 24 text

Appendix • GitHub Universe 2022 • https://github.blog/jp/2022-11-10-everything-new-from-github-universe-2022/ • Azure AD + GitHub Enterprise • https://learn.microsoft.com/ja-jp/azure/active-directory/saas-apps/github-ae-tutorial • https://learn.microsoft.com/ja-jp/azure/active-directory/saas-apps/github-enterprise-cloud- enterprise-account-tutorial • GitHub Codespaces • https://docs.github.com/ja/billing/managing-billing-for-github-codespaces/about-billing- for-github-codespaces • https://docs.github.com/en/codespaces/codespaces-reference/security-in-github- codespaces • https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-github- codespaces-for-your-account • https://aadojo.alterbooth.com/entry/2022/08/24/095308 Copyright © Alterbooth Inc. All Rights Reserved.

Slide 25

Slide 25 text

Copyright © Alterbooth Inc. All Rights Reserved. https://www.alterbooth.com/products/ghec/ https://prtimes.jp/main/html/rd/p/000000084.000043685.html

Slide 26

Slide 26 text

Copyright © Alterbooth Inc. All Rights Reserved. より多くの人にもっとクラウドを楽しんでほしい。 つまらない世界からもっと 刺激のある世界へ変化させよう!