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
GitLab-CIとGoogleCloudRunで作るSandBox環境
Search
mina
October 18, 2020
2
230
GitLab-CIとGoogleCloudRunで作るSandBox環境
mina
October 18, 2020
Tweet
Share
More Decks by mina
See All by mina
おうちGitLabのススメ
silmin_
3
1.1k
Git入門
silmin_
27
15k
暗号について
silmin_
0
130
LinuxCommand入門
silmin_
0
330
LinuxCommand入門2
silmin_
0
230
Webについて
silmin_
3
150
ネットワークとは
silmin_
0
190
コンピュータとは|初心者向け資料
silmin_
1
150
ビットについて|入門者向け資料
silmin_
0
180
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
282
13k
Code Reviewing Like a Champion
maltzj
524
40k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Agile that works and the tools we love
rasmusluckow
329
21k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
970
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
21
1.3k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
Designing Experiences People Love
moore
142
24k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Transcript
GitLab-CIとGoogleCloudRunで 作るSandbox環境 KIT Developers Meetup #5
None
ぼく silmin(mina) Twitter: @silmin_ すき: NW,仮想化,基盤構築 加藤恵,Vim,Linux 金沢工業大学 工学部 情報工学科
3ねんせい NICT(国立研究開発法人情報通信研究機構)でRA
夏インターン
夏インターン
GitLab-CIとGoogleCloudRun で作るSandbox環境
GitLab-CIとGoogleCloudRun で作るSandbox環境
Sandboxって何
Sandboxって何
Sandboxって何 お手軽に作って壊せる実験環境
GitLab-CIとGoogleCloudRun で作るSandbox環境
GoogleCloudRunって何 (公式より) コンテナ化されたアプリケーションをすばやく安全にデ プロイ、スケーリングできる、フルマネージド型のコン ピューティング プラットフォーム • さまざまな言語(Go、Python、Java、Ruby、Node.js など)で自由にコードを作成で きます。
• インフラストラクチャの管理が一切不要になり、シンプルな開発者エクスペリエンス が実現します。 • オープン標準 Knative を基盤として構築されているため、アプリケーションの移植 が可能になります。
Cloud Run app 1 . . . auto scaling app
2 . . . auto scaling . . . . . . コンテナ化されてるアプリを雑にデプロイできる
GitLab-CIとGoogleCloudRun で作るSandbox環境
GitLab-CIって何 GitLabが持ってるCI機能のこと GitLab=Gitのリモートリポジトリの実装の1つ(GitHub/BitBacket等と同じ) gitlab.comが公式だが,無料でローカルに建てることもできる CI/CD機能などDevOps周りの機能がめちゃくちゃ充実している
CI/CDって何 Continuous Integration (CI) Continuous Delivery (CD) Continuous Deployment (CD)
みたいな意味を持ってる 継続的にテストしたりデプロイしたりしたいね,みたいな感じ commit/push/mergeみたいなGit-Flowによくある動作に紐づいて発火して, 任意の処理をさせられる仕組みのこと(本質的には発火点が特殊なただのcron)
stages: - test - build - deploy test-app: stage: test
script: - ./.ci-scripts/test.sh - echo “任意のスクリプトが呼べ る” only: - pushes build-app: stage: build script: - ./.ci-scripts/build.sh when: on_success deploy-app: stage: deploy script: - ./.ci-scripts/deploy.sh when: manual .gitlab-ci.yml
GitLab-CIとGoogleCloudRun で作るSandbox環境
作ったもの
仕組み ディレクトリ作成 → App作成 ディレクトリ削除 → App削除
仕組み(App作成) Appディレクトリ作成 → App作成 • Dockerfileを含むものをAppと認識 • Appに基づいてCloudRunを作成 • GitLab-CIでgcloudコマンドを実行
• ディレクトリ一覧を走査して App の一覧を取得 • そのAppをbuild • CloudRunにdeploy 開発者 code
push container registry (gcr) Cloud Run
仕組み(App削除) Appディレクトリ削除 → Appを削除 • CloudRunのリストと比較 • 専用のCloudRunAppで対応(cloudrun-remover) • Appの一覧はCloudRunApp内部では使えない
◦ 外部ストレージ(GCS)に上げておく ◦ URLは環境変数に投げる
Cloud Run GCS App一覧 cloudrun-remover ... deploy CI時にupload
Cloud Run GCS App一覧 cloudrun-remover ... App一覧 App内部で取得 比較し,差分を CloudRunから削除
cloudrun-removerとして作る意味 Q. GitLab-CIで任意のスクリプトを実行可能なら,そこで全部できるんじゃ? A. 本当はGoogleCloudSchedulerからキックするようにしたかった
Cloud Run GCS App一覧 cloudrun-remover ... App一覧 App内部で取得 比較し,差分を CloudRunから削除
Cloud Scheduler 定期的に実行
まとめ • GitLab-CI思ったより強力だった • CloudRun楽でいい • GitLab自分の環境にも欲しくなった(建てた) • cloudrun +
gcr + gcs / 8day = $0.03 / $376.60 • やすいね!