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
aqua で始める CI-Friendly なツール管理
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
YuyaKoda
PRO
November 28, 2023
Business
1.4k
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
80
大規模 Terraform リポジトリで頑張る Continuous Version Update / CI/CD Test Night #8
ponkio_o
PRO
1
2.7k
KubeCon + CloudNativeCon Japan 2025 Recap by CA
ponkio_o
PRO
0
530
Kubernetes だけじゃない!Amazon ECS で実現するクラウドネイティブな GitHub Actions セルフホストランナー / CNDW2024
ponkio_o
PRO
6
820
Renovate ではじめる運用レスなライブラリ更新 / 令和最新版 他人に自慢したいヤバいCI/CD LT会 @ yabaibuki.dev #2
ponkio_o
PRO
1
350
Amazon ECS で作るスケーラブルなセルフホストランナー / GitHub Actions Meetup Tokyo #4
ponkio_o
PRO
2
1.2k
業務で使えるかもしれない…!?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
700
NGINX Ingress Controller を活用した Retty のサービス開発とモニタリング / NGINX ユーザー会 2022 春
ponkio_o
PRO
0
280
Other Decks in Business
See All in Business
FABRIC TOKYO会社紹介資料 / We are hiring(2026年06月17日更新)
yuichirom
39
410k
サステナブルな成長を支えるセルフマネジメントの技術/Self Management skill for growth
ikuodanaka
1
280
AI時代のリスク管理は どうあるべきか考えてみる
0air
0
170
スマートキャンプ株式会社 会社紹介資料 / companydeck
smartcamp
19
740k
Executive Strategy Management: FinOps X 2026 recap at Japan FinOps Meetup #6
shungoa
0
220
余白を生むセルフマネジメント/Self-Management That Creates Breathing Room
ikuodanaka
2
2.8k
株式会社アイリッジ 会社説明資料
iridge
0
6.9k
自分のハンドルを握る〜AI時代だからこそ求められるセルフマネジメントの技術/Self-Management Skills Needed More Than Ever in the AI Era
ikuodanaka
1
3.1k
SimpleForm 会社紹介資料
simpleform
2
56k
ARI_BXデザイン第2事業ドメイン_事業紹介資料
arid2
0
340
【株式会社ファブリカホールディングス】Company deck
fabrica_com
0
990
WDB株式会社エウレカ社会社説明資料
eureka01
0
3.6k
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
340
How to Think Like a Performance Engineer
csswizardry
28
2.7k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
340
Prompt Engineering for Job Search
mfonobong
0
370
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
260
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
220
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
460
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
280
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
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