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
Seiya
October 18, 2020
270
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitLab-CIとGoogleCloudRunで作るSandBox環境
Seiya
October 18, 2020
More Decks by Seiya
See All by Seiya
ATProtocol ざっくり概要把握してみた @ DWeb Tokyo Meetup #2
silmin_
0
67
おうちGitLabのススメ
silmin_
4
2k
Git入門
silmin_
38
26k
暗号について
silmin_
0
220
LinuxCommand入門
silmin_
0
430
LinuxCommand入門2
silmin_
0
310
Webについて
silmin_
3
230
ネットワークとは
silmin_
0
290
コンピュータとは|初心者向け資料
silmin_
1
230
Featured
See All Featured
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
660
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Faster Mobile Websites
deanohume
310
32k
Agile that works and the tools we love
rasmusluckow
331
22k
Claude Code のすすめ
schroneko
67
230k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Being A Developer After 40
akosma
91
590k
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 • やすいね!