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
220
GitLab-CIとGoogleCloudRunで作るSandBox環境
mina
October 18, 2020
Tweet
Share
More Decks by mina
See All by mina
おうちGitLabのススメ
silmin_
3
960
Git入門
silmin_
23
13k
暗号について
silmin_
0
110
LinuxCommand入門
silmin_
0
270
LinuxCommand入門2
silmin_
0
190
Webについて
silmin_
3
130
ネットワークとは
silmin_
0
170
コンピュータとは|初心者向け資料
silmin_
1
97
ビットについて|入門者向け資料
silmin_
0
140
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Building an army of robots
kneath
302
44k
A Philosophy of Restraint
colly
203
16k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Speed Design
sergeychernyshev
25
670
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
Why Our Code Smells
bkeepers
PRO
335
57k
The Cost Of JavaScript in 2023
addyosmani
45
7k
GitHub's CSS Performance
jonrohan
1030
460k
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 • やすいね!