Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How GitHub uses Codespaces
Search
Yuichi Tanaka
August 31, 2022
Programming
1.4k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How GitHub uses Codespaces
Tech Stand #9 GitHubにてお話しした際の資料です。
https://standfm.connpass.com/event/256786/
Yuichi Tanaka
August 31, 2022
More Decks by Yuichi Tanaka
See All by Yuichi Tanaka
GitHub Copilot Tips and Tricks (en)
yuichielectric
1
360
GitHub Copilot Tips and Tricks
yuichielectric
43
20k
30分でわかるシステム運用アンチパターン / Operations Anti Patterns in 30 minutes
yuichielectric
14
21k
オープンソースのベストプラクティスを企業内で実践/How to implement InnerSource
yuichielectric
12
19k
GitHubにおける継続的デリバリー/How GitHub builds and deploy software
yuichielectric
12
4.6k
GitHubにおける GitHub Actions利用法/How GitHub uses GitHub Actions
yuichielectric
7
830
InnerSourceのすすめ / InnerSource
yuichielectric
8
2.1k
GitHub Pro Tips
yuichielectric
0
260
Other Decks in Programming
See All in Programming
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
210
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
590
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
250
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
550
the container ship “Apple Silicon”@WWDC26 Recap -Japan-\(region).swift
shingangan
0
120
Go 1.27 における memory allocation の高速化
andpad
0
150
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
180
Built Our Own Background Agent at LayerX
layerx
PRO
10
5.2k
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
350
FDEが実現するAI駆動経営の現在地
gonta
2
280
その節約、円になってますか?
isamumumu
1
720
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
420
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
22k
Odyssey Design
rkendrick25
PRO
2
750
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
440
How to build a perfect <img>
jonoalderson
1
5.9k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
Typedesign – Prime Four
hannesfritz
42
3.1k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.8k
Practical Orchestrator
shlominoach
191
12k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Transcript
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric 田中
裕一 (@yuichielectric) How GitHub uses Codespaces
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric 田中
裕一 GitHub、シニアソリューションズエンジニア 個人で「システム運用アンチパターン」 (オライリー・ジャパン)の翻訳を担当 @yuichielectric
Codespaces クラウド上の開発環境 妥協のないコーディング体験 ブラウザから、コーディング、ビルド、テスト、 デバッグ、デプロイが可能な完全な開発環境に アクセス。 ワークフローをシンプルに 依存関係やSSHキーを自動でセットアップ。 あらゆるプロジェクトでコーディングを開始できる までの時間を短縮。
カスタマイズ可能 dotfileによるエディタの設定やすべてのCodespace 環境にあらかじめインストールしておくVS Code拡 張の指定など
{ "name": "Go", "build": { "dockerfile": "Dockerfile", "args": { "VARIANT":
"1-bullseye", } }, "runArgs": [ "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined" ], "settings": { "go.toolsManagement.checkForUpdates": "local", "go.useLanguageServer": true, "go.gopath": "/go", "go.goroot": "/usr/local/go" }, "extensions": [ "golang.Go" ], "forwardPorts": [8080], "postCreateCommand": "go version", "remoteUser": "vscode" } https://github.com/microsoft/vscode-dev-containers/blob/main/containers/go/.devcontainer/devcontainer.json 名前 コンテナの指定 Visual Studio Codeの設定 Visual Studio Code拡張 フォワードするポート 環境作成後コマンド 実行ユーザー コンテナ実行時パラメータ .devcontainer/devcontainer.json
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric GitHub社内での標準の開発環境
github/github: コミット数100万以上、サイズは 13GB以上 Codespaces以前 各エンジニアのmac上に開発環境を 構築。すべてスクリプト化されては いたものの、環境構築には半日 かかっていた。 Codespaces以後 github/githubの環境を10秒で用意 ブランチ切り替えの必要なし VS Codeユーザー以外からもSSH https://github.blog/jp/2021-08-30-githubs-engineering-team-moved-codespaces/
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric コンテナイメージ
ベースイメージ用のリポジトリを作 り、Actionsで、イメージをビルド しPackagesにpush プリビルド github/githubのmainへのマージ のたびにCodespaces環境をビルド 環境 32コア、64GBメモリのマシン サイズのみを使うように設定 https://docs.github.com/ja/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds Codespace環境のビルド
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric Codespaceのビルド(プリビルドも
含む)は複数リポジトリにも対応 関連するリポジトリに対しての 権限を要求した上で、プリビルド 環境を構築後に必要なリポジトリ を取得してセットアップ https://github.blog/changelog/2022-07-28-prebuilding-codespaces-is-now-supported-for-multi-repository-and-monorepo-projects/ 複数リポジトリ
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric VPNのセットアップをfeaturesを使って共通化。
プロジェクトごとに必要に応じて利用。 その他の手段として、ローカルマシンを、Codespaceと プライベートリソースへのゲートウェイとして使うことも可能。 GitHub CLI拡張としてプレビュー公開。 https://github.com/github/gh-net プライベートリソースへのアクセス
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric Codespaces環境に単機能を追加するプロセスを定義するための仕組み
例 • GitHub CLI • Ruby • SSHサーバ 独自のfeatureを定義することも可能。 devcontainers/feature-template features
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric Codespacesの別の側面
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric ドキュメント担当以外のメンバーが
GitHubのドキュメントに間違いを 見つけた場合であっても、 devcontainer.jsonがあれば、 Codespace上でドキュメントを修正 して、プレビューを確認後にPull Requestを送るというプロセスが 容易になる。 チームの垣根を超えた コントリビュート
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric 社内の多くのリポジトリで
Codespacesの設定をしておくこと でチームの壁を超えたコントリ ビュートの敷居を低減 プリビルドを積極的に使うことで迅 速に開発環境を構築 CodespacesはGitHub社内での 標準開発環境 その過程で生み出された機能を Codespacesに組み込み まとめ
2022/08/31 How GitHub uses Codespaces Tech Stand #9 @yuichielectric Thank
you