【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発

日本マイクロソフト株式会社
日本マイクロソフト株式会社日本マイクロソフト株式会社
 チーム開発がこんなにも快適に!
コーディングもデバッグも GitHub 上で。
GitHub Codespaces で
叶えられるシームレスな開発
Self introduction
スピーカー 自己紹介
大平かづみ / Kazumi OHIRA
• Microsoft MVP for Azure
• ZEN ARCHITECTS 所属
• Infrastructure as Code や
GitHub Actions による自動化が得意
• Code Polaris
• Hack Everything.
• Cogbot
• @dz_
• @dzeyelid
• YouTube
How is your development environment?
もっと集中できる
開発環境がほしい
Visual Studio 以外の開発環境、
どうしてます?
例えば、
• フロントエンドのフレームワークを利用した静的サイト
• フロントエンドといくつかのAPIで構成されたウェブアプリケー
ション
• ちょっと Python で解析したい
• PHP で作成されたバックエンドをデバッグしたい
• Perl で書かれたコードを…
ぶっちゃけ、マシンスペック
足りてます?
何かと待たされるこの環境…
• git clone, git pull, git push が遅くてつらい
• デバッグ実行が遅くてつらい
• 複数プロジェクト立ち上げたときにはもう…
必要だけど毎回悩ましい
開発に食い込んでくる環境セットアップ
• 新しいメンバーを受入れるも、環境整備で一日かかってしまう
• レビューのたびに、レビュー用の環境が増えていく
• 急なデバッグを対応していたら、開発途中のコードを消してし
まった
そんなあなたにお勧めしたい
GitHub Codespaces
GitHub Codespaces
https://github.com/features/codespaces
GitHub Codespaces とは
• Visual Studio Code の Remote containers の仕組みがベース
• コンテナを GitHub がホストしてくれる
• コンテナの環境は VS Code Dev container の仕組みで構成できる
• ポートフォワーディングにより、リモートであることを気にせ
ず実行環境にアクセスできる
GitHub Codespaces とは
container
ブラウザ Visual Studio Code
ブラウザで数クリックですぐ起動
• リポジトリの「<> Code」ボタ
ンから、新しい codespace を
すぐ作成できる
開発に適したスペックを選べる
SKU 価格(per 1h)
2 core (4GB RAM, 32GB) $0.18
4 core (8GB RAM, 32GB) $0.36
8 core (16GB RAM, 64GB) $0.72
16 core (32GB RAM, 128GB) $1.44
32 core (64GB RAM, 64GB) $2.88
ストレージ容量 価格(per 1ヶ月)
1GB $0.07
• ※ 2022/1月時点
• 参照: About billing for Codespaces - GitHub Docs
デフォルトの環境は Ubuntu
• Node.js, .NET Core, Python 3.x, PHP, Ruby, Go などの主要な言語
• Azure CLI
• 参考: https://aka.ms/ghcs-default-image
codespace での作業内容は保持される
container volume
インスタンス
ファイルの変更は、
ボリューム上に保持される
コンテナイメージを
リビルドしたり、差し替えても、
ポートフォワーディング
• localhost としてアクセスできるので、リモートであることを意
識せずに実行環境を利用できる
• 組織、またはパブリックにもポートを共有できる
• 参考: Forwarding ports in your codespace - GitHub Docs
シークレットでカスタマイズ
• codespace 内で、シークレットを環境変数として読み込ませる
ことが可能
スコープ
自身のみ Personal settings > Codespaces > Codespaces secrets(リポジトリ指定可能)
リポジトリで共有 Repository settings > Secrets > Codespaces
Organization で共有 Organization settings > Secrets > Codespaces
Dev container による環境カスタマイズ
• devcontainer.json で環境の構成
を記述できる
• コマンドパレットから、ベー
スにするイメージやプリイン
ストールする features を選択
して、簡単に設定を作成でき
る
• 参考: Developing inside a
Container using Visual Studio
Code Remote Development
Dev container の extensions
• devcontainer.json に記述することにより、Visual Studio Code の拡
張機能をプリインストールしておける
• 参考: Managing extensions - Developing inside a Container using
Visual Studio Code Remote Development
Dev container の features
• Azure CLI や Terraform など、構成済みのスクリプトが用意され
ており、devcontainer.json で指定するだけで組み込める
• ライブラリ vscode-dev-containers/script-library
• 参考: Dev container features (preview) - Developing inside a
Container using Visual Studio Code Remote Development
GitHub Codespaces なら解決!
GitHub Codespaces があれば快適
• 手元のマシンスペックに影響されない
• 新規参入者の開発環境構築が瞬時
• 急なバグ解析したいとき
• レビューしたいとき
• 久々に更新したいとき
• 外出先など別のマシンでも同じ環境にアクセスできる
シナリオ: 開発チームの日常
GitHub Codespaces の快適さをお伝えするデモ
シナリオ: 開発中のプロジェクトへ参入
• 先行して、フロントエンドの開発が進んでいる
• 自分の担当は、バックエンドのAPI開発と、運用環境の整備であ
る
• フロントエンドは Azure Static Web Apps (SWA) へ、API も SWA に
内包する Azure Functions で運用しよう
デモ シナリオ
• 開発がすでに進んでいるチームに参入、Codespaces で環境起動
• スペック選べて快適
• Node.js, TypeScript の開発環境がすぐ用意できた
• Azure へのデプロイ周りを整理するタスク
• Dev container の features で Azure CLI, Terraform をインストール
• Azure Functions の開発環境を整えるタスク
• Dev container の extensions で Azure Functions 拡張インストール
• Dockerfile で azure func core tools 導入
• ポートフォワーディングで動作確認
• デプロイ
モノレポ プロジェクトもOK
温泉MaaS プロジェクトの一環、LINEのインタフェース(LIFF: Line Front-end
Framework)を用いたタクシー配車システムの例をご紹介
LIFFクライアントと管理システムを、
Azure Static Web Apps + Functions で構成
https://github.com/zengeeks/onsen-maas-taxi-allocation/
Azure Static Web Apps + Functions x 2 開発
SWA ローカル実行
フロントエンド
API
client
SWA ローカル実行
フロントエンド
API
admin
Multi-root workspace
Azure Static Web Apps + Functions x 2 開発
• Multi-root workspace で、LIFFクライアントと管理システムそれ
ぞれのディレクトリをワークスペースとして共存
• Visual Studio Code のデバッグを、LIFFクライアントと管理システ
ムそれぞれに設定して同時起動(swa や func のポートはずら
す)
• クライアントは、ポートフォワーディングの公開範囲を Public
に変え、LINEログインのコールバック エンドポイントに設定
GitHub Codespaces
https://github.com/features/codespaces
GitHub Codespaces
https://github.com/features/codespaces
現在は GitHub Team or
GitHub Enterprise Cloud で利用可能
https://github.co.jp/features/codespaces
個人アカウントの人はベータ版申請へ!
1 de 35

Mais conteúdo relacionado

Mais procurados(20)

今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation8.4K visualizações
nginx入門nginx入門
nginx入門
Takashi Takizawa53.5K visualizações
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
Shun Tsunoda2.5K visualizações
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda7.5K visualizações
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
Takayuki Shimizukawa11K visualizações
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru99.4K visualizações
AWS Black Belt Online Seminar 2016 Amazon EC2 Container ServiceAWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
AWS Black Belt Online Seminar 2016 Amazon EC2 Container Service
Amazon Web Services Japan53.7K visualizações
こわくない Gitこわくない Git
こわくない Git
Kota Saito881.1K visualizações
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka145.6K visualizações
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
Hiroyuki Wada10.3K visualizações

Similar a 【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発(20)

.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
Yuki Igarashi6.8K visualizações
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
Jumpei Miyata67.8K visualizações
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
日本マイクロソフト株式会社529 visualizações
2014.11.01 Dockerことはじめ2014.11.01 Dockerことはじめ
2014.11.01 Dockerことはじめ
xyzplus_net854 visualizações
はじめての Azure 開発はじめての Azure 開発
はじめての Azure 開発
Yoshitaka Seo1.3K visualizações
Microsoft azureで実装するwebserviceondockerMicrosoft azureで実装するwebserviceondocker
Microsoft azureで実装するwebserviceondocker
Tsukasa Kato1.1K visualizações
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
Kaoru NAKAMURA766 visualizações

Mais de 日本マイクロソフト株式会社(20)

【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
日本マイクロソフト株式会社541 visualizações
【BS12】Visual Studio 2022 40分一本勝負!【BS12】Visual Studio 2022 40分一本勝負!
【BS12】Visual Studio 2022 40分一本勝負!
日本マイクロソフト株式会社383 visualizações
【BS7】GitHubをフル活用した開発【BS7】GitHubをフル活用した開発
【BS7】GitHubをフル活用した開発
日本マイクロソフト株式会社429 visualizações
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社10.1K visualizações
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
日本マイクロソフト株式会社2.3K visualizações
【BS2】.NET 6 最新アップデート【BS2】.NET 6 最新アップデート
【BS2】.NET 6 最新アップデート
日本マイクロソフト株式会社730 visualizações
【BS6】 マイクロソフトの GitHub との取り組み 【BS6】 マイクロソフトの GitHub との取り組み
【BS6】 マイクロソフトの GitHub との取り組み
日本マイクロソフト株式会社317 visualizações
【BS1】What’s new in visual studio 2022 and c# 10【BS1】What’s new in visual studio 2022 and c# 10
【BS1】What’s new in visual studio 2022 and c# 10
日本マイクロソフト株式会社695 visualizações
S17_25 分でわかる!Windows 365 [Microsoft Japan Digital Days]S17_25 分でわかる!Windows 365 [Microsoft Japan Digital Days]
S17_25 分でわかる!Windows 365 [Microsoft Japan Digital Days]
日本マイクロソフト株式会社597 visualizações

Último(17)

スクラムコーチの問題発見スクラムコーチの問題発見
スクラムコーチの問題発見
MieNishizono110 visualizações
231027fy2023_2q231027fy2023_2q
231027fy2023_2q
bm_pr121 visualizações
ビジュアルノベル発展に向けてビジュアルノベル発展に向けて
ビジュアルノベル発展に向けて
Keiichi Tabata168 visualizações
Service.pdfService.pdf
Service.pdf
Yasuyoshi Minehisa23 visualizações
p02_info 2.pdfp02_info 2.pdf
p02_info 2.pdf
ssuser615e8611 visualizações
1ページでわかるTAPP.pdf1ページでわかるTAPP.pdf
1ページでわかるTAPP.pdf
ssuser615e8622 visualizações
fmx_credential.pdffmx_credential.pdf
fmx_credential.pdf
kiryutakumi35 visualizações
slide.pdfslide.pdf
slide.pdf
ssuser7664a882 visualizações
p02_info 2.pdfp02_info 2.pdf
p02_info 2.pdf
ssuser615e8619 visualizações
他社会計ソフトからの仕訳インポート(TKC)他社会計ソフトからの仕訳インポート(TKC)
他社会計ソフトからの仕訳インポート(TKC)
Money Forward, Inc.10 visualizações
シナスタジア_企業紹介.pdfシナスタジア_企業紹介.pdf
シナスタジア_企業紹介.pdf
takashikawamoto939 visualizações

【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発