Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
aqua で始める CI-Friendly なツール管理
Search
YuyaKoda
PRO
November 28, 2023
Business
1.9k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
aqua で始める CI-Friendly なツール管理
Engineering Productivity Meetup #1 in Tokyo
https://cybozu.connpass.com/event/298452/
YuyaKoda
PRO
November 28, 2023
More Decks by YuyaKoda
See All by YuyaKoda
Introduction to dag-andersen/argocd-diff-preview
ponkio_o
PRO
0
93
大規模 Terraform リポジトリで頑張る Continuous Version Update / CI/CD Test Night #8
ponkio_o
PRO
1
3.6k
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
560
Kubernetes だけじゃない!Amazon ECS で実現するクラウドネイティブな GitHub Actions セルフホストランナー / CNDW2024
ponkio_o
PRO
6
870
Renovate ではじめる運用レスなライブラリ更新 / 令和最新版 他人に自慢したいヤバいCI/CD LT会 @ yabaibuki.dev #2
ponkio_o
PRO
1
380
Amazon ECS で作るスケーラブルなセルフホストランナー / GitHub Actions Meetup Tokyo #4
ponkio_o
PRO
2
1.3k
業務で使えるかもしれない…!?GitHub Actions の Tips 集 / CI/CD Test Night #7
ponkio_o
PRO
49
23k
set-terraform-matrix という Actions を作った / set-terraform-matrix-actions
ponkio_o
PRO
0
720
NGINX Ingress Controller を活用した Retty のサービス開発とモニタリング / NGINX ユーザー会 2022 春
ponkio_o
PRO
0
300
Other Decks in Business
See All in Business
01_全社_FLUX採用ピッチ資料_Ver.5.8
flux
13
230k
freeeの福利厚生と働き方
freee
PRO
1
110k
採用ピッチ資料(2026年8月版)|ナカソネ住設株式会社
nakasonejusetsu
0
430
アッテル会社紹介資料/culture deck
attelu
11
17k
三井物産グループのデジタル証券~文京区目白台・学生レジデンス~徹底解説セミナー
c0rp_mdm
PRO
0
420
データ基盤を Athena _ Glue から Databricks へ移行しました - 第4回 Youは何しにDatabricksへ!?
stanby_inc
0
240
営業が見てきた"AI導入ガバナンス"のリアル — あなたの会社は今どのステージ?
kuraryu0128
0
120
会社案内資料
auditech2022
0
330
納品して終わり、を事業会社でやった話
tamosan01
2
180
malna-recruiting-pitch
malna
1
28k
さまざまなサイズにおける巻き込み方と伝え方 / OSO2026
daiksy
3
930
株式会社kanaL|会社紹介資料(Company Deck 2026)
tamagakiyuya
0
130
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.3k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Are puppies a ranking factor?
jonoalderson
2
4k
Practical Orchestrator
shlominoach
192
12k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.1k
Music & Morning Musume
bryan
48
7.4k
Thoughts on Productivity
jonyablonski
76
5.4k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Transcript
© DeNA Co., Ltd. 1 aqua で始める CI-Friendly な ツール管理
幸田優哉 品質本部品質管理部 SWET 第二グループ 株式会社ディー・エヌ・エー
© DeNA Co., Ltd. 2 Yuya Koda 今年の9月に DeNA に
Join しました。前職は toC の 会社でインフラ周りを中心に見ていました。 現在は主に社内向けに提供している GitHub Actions self-hosted runner の運用改善などを行っています。 DeNA 品質本部品質管理部 SWET 第二グループ ponkio-o ponkio_o yuya-koda y.koda0301 © DeNA Co., Ltd. 自己紹介
© DeNA Co., Ltd. 3 aquaproj/aqua
© DeNA Co., Ltd. 4 1 aquaproj/aqua とは • Golang
製のマルチプラットフォーム (Windows/Linux/Mac) で動く CLI ツール • ツールのジャンルとしては「CLI バージョンマネージャー」に分類される ◦ 類似ツールだと asdf が有名 ◦ 言語に特化したものだと nvm や pyenv などが有名 • 現在 (2023/11/14) サポートされているツールは 1300 以上 ◦ シングルバイナリで動くツールはだいたいサポートされている(はず) • aqua は様々な機能が存在するが、特に CI で便利に使える機能がたくさんある
© DeNA Co., Ltd. 5 簡単な使い方
© DeNA Co., Ltd. 6 2 簡単な使い方の紹介 (ツールのインストールから実行まで) 例:terraform コマンド
(hashicorp/terraform) をインストールする手順 1. aqua init で aqua.yaml を生成する 2. aqua g -i で “terraform” を検索して選択 (-i は aqua.yaml への自動追加のオプション) 3. aqua i -l でインストール (-l は Lazy Install のオプション) 4. “terraform” を実行する ※ aqua 本体のインストールや PATH の設定は済んでいる前提
© DeNA Co., Ltd. 7 簡単なデモ
© DeNA Co., Ltd. 8 aqua の CI-Friendly な機能
© DeNA Co., Ltd. 9 3 CI-Friendly な aqua の機能
CI で動かすツール管理をするうえで便利な機能がたくさんある • Single Binary & Cross Platform 対応 • Orb (CircleCI) / Actions (GitHub Actions) の提供 • 厳密なバージョン管理 • Renovate による継続的なバージョンアップデート • aqua i -l による Lazy Install • Checksum Verification / Policy as Code など Supply Chain Attack への対策 など
© DeNA Co., Ltd. 10 3 Single Binary & Cross
Platform • aqua 本体は Golang 製で Windows/Linux/Mac をサポート ◦ アーキテクチャは x86_64 と arm64 に対応 • シングルバイナリなので他の依存はない ◦ 利用する場合には aqua のバイナリを落として PATH を通すだけ • 最近では CI 環境の実行環境の種類 (OS/Arch) も増えてきているので便利
© DeNA Co., Ltd. 11 3 Orb (CircleCI) & Actions
(GitHub) の提供 • Orb (CircleCI) と Actions (GitHub Actions) が提供されている ◦ aqua 本体と aqua で管理しているツールのインストールが行われる ◦ Layz Install (後述) でインストールされる CircleCI の例 GitHub Actions の例
© DeNA Co., Ltd. 12 3 厳密なバージョン管理 • aqua では
latest や stable のような mutable なバージョン指定ができない ◦ これは不便なようにも見えますが特に CI では厳密にバージョンを管理するべき (だと個人的にも思っています) ◦ 個人的に気に入っている機能 (というか仕様) 公式ドキュメントの latest について書かれている箇所
© DeNA Co., Ltd. 13 3 Renovate による継続的なバージョンアップデート • aqua-renovate-config
で Renovate の Shareable Config Presets が提供されている • aqua 本体と aqua.yaml で管理しているツールのバージョンアップが行える ◦ extends で読み込む形なので schedule や automerge のルールは各プロジェクトに 合わせて任意のものを設定可能 renovate.json の例
© DeNA Co., Ltd. 14 3 aqua i -l による
Lazy Install のサポート • Lazy Install は、各種ツール (e.g. terraform) のインストール (バイナリのダウンロード) を「ツールの実行時」に実行するための機能 ◦ 各ツールの PATH は通されるが、バイナリはダウンロードされない ◦ そのツール (e.g. terraform) を実行したタイミングで初めてバイナリのダウンロード が始まる • CI では Job 毎に必要なツールが異なるケースがあるが、インストールする/しないを意 識する必要がない ◦ とりあえず aqua-installer を実行すれば OK ◦ aqua i -l は秒(文字通り)で終わる
© DeNA Co., Ltd. 15