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
IaCにおけるテスト考察 / Tests in IaC
Search
linyows
June 24, 2024
Programming
2
240
IaCにおけるテスト考察 / Tests in IaC
@2024-06-24 さくらインターネット IaC 社内勉強会 LT
linyows
June 24, 2024
Tweet
Share
More Decks by linyows
See All by linyows
奥が深いメールのシステム / The depth of Email system
linyows
3
170
リバースエンジニアリングとGoでSlackの認知負荷を下げる / Reducing cognitive load in Slack with Reverse-engineering and Go
linyows
2
160
透過型SMTPプロキシによる送信メールの可観測性向上 / Improved observability of outgoing emails with transparent smtp proxy
linyows
2
770
プロダクションで使うGo Pluginの利便性とパフォーマンス性 / Simplicity and Performance of Go plugin for Production
linyows
0
370
求められるソフトウェアエンジニア像とキャリア戦略 / Engineers and Career Strategies Required Now
linyows
2
370
CloudflareのCAPTCHAを使って ユーザ体験を下げず不正利用を排除する / Cloudflare's captcha case study that does not degrade ux
linyows
0
270
なぜNotionを使うのか2022 / Why use notion as our workspace in 2022
linyows
3
5.8k
Denoの仕組み / How deno works as TypeScript runtime
linyows
2
700
透過型SMTPプロキシによるメール送信集約とキュー輻輳回避の検討 / A Study on Aggregation of Email Transfer and Avoidance of QueueCongestion using a Transparent SMTP Proxy
linyows
0
2.2k
Other Decks in Programming
See All in Programming
データサイエンスやデータエンジニアリングの求人サイトの個人開発
billyio
0
630
スクラムフェスを支える配信の仕組み
murabayashi
1
140
ゼロから始める型安全なGraphQL開発
shachi_daikon55
0
160
Google I/O 報告LT会 / Building UI with the M3-adaptive-lib
atria
0
210
Kotlin Script 활용하기
kciter
0
120
我々はなぜテストを書くのか / Why we write test codes
takaking22
6
680
Gradle Version Catalog with KTS [KotlinConf'24 Global]
junjaboy
0
110
[Flutter] Unitテストの基礎を理解する
haruki_uiru
0
150
about #67401 //go:linkname
andpad
1
19k
Fat Controller は悪か? ~光のFat Controller・闇のガリController~
stwile
1
250
Web 開発における Deno Fresh の活用例:ペアプロタイマー timer.team の開発
lef237
1
610
Secure Development with PHP
dbrumann
2
170
Featured
See All Featured
From Idea to $5000 a Month in 5 Months
shpigford
377
46k
Clear Off the Table
cherdarchuk
87
320k
Building Adaptive Systems
keathley
33
2k
Visualization
eitanlees
137
14k
The Power of CSS Pseudo Elements
geoffreycrofte
63
5.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
KATA
mclloyd
18
12k
Why Our Code Smells
bkeepers
PRO
331
56k
How to Ace a Technical Interview
jacobian
273
22k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
BBQ
matthewcrist
80
8.9k
RailsConf 2023
tenderlove
11
660
Transcript
@2024-06-24 さくらインターネット IaC 社内勉強会 LT IaCにおけるテスト考察
小 田 知央 / Tomohisa Oda @linyows • 福岡市在住 •
Fukuoka.go 主催 • 趣味は筋トレとテニス • OSS: Octopass, Dewy, Rotion, Warp… • https://tomohisaoda.com • https://x.com/linyows
インフラ変更のテストはどうしていますか? •テストはない、そもそも不要 !? •もちろん 人力 によるテスト •テストはあるがテストの実 行 時間が 長
い
IaCのためのツールはほぼ宣 言 的なコード • IaCのツール、Terraform, Ansible, Chef, Puppet は宣 言
的なインフラリソー スを定義する • 宣 言 的コードの実 行 保証はツール側であり、使う側があえてする必要はない • 利便性のために命令的なモジュールは存在するが宣 言 的になるようモジュール を作るのが好ましい • モジュール開発ではしっかりテストが必要
5 Ansible incorporates declarative and imperative means. This mix offers
you the fl exibility to focus on what you need to do, rather than strictly adhere to one paradigm. l l
それでもテストを書きたい • テスト時間を短くするにはテストサイズの 小 さいUnitテストを書くことにな る • Terraform: terraform test
• Ansible: molecule • Chef: chefspec, test-kitchen
IaCのUnitテストはコストと 見 合っているか • 経験としてはUnitテストを書く時間と得ら れる安全は 見 合っていない感覚がある • IaC
本では、Application Codeのテストピ ラミッドとは異なり Declaration Codeの テストは ダイヤモンドモデルになるだろう と書いてある
Online Stack testを書くには? • Online Stack testは、例えば、ネットワーク、コンピュート、データベー ス、ストレージが連携して期待する動作を確認する • そんなツールありますか?
• 例えば、特定のapache moduleが有効になっていること(設定でなく実際使 える)、メールがを送信するとDKIMヘッダーがついていること • テストするには複雑なことが多い
ユーザーがコマンドを作るのはどうだろうか • テストフレームワークはassetionの成功失敗だけを管理するだけ テストフレームワーク ユーザが書くテストコマンド ユーザが書くテストコマンド ユーザが書くテストコマンド 🤔
ユーザーがコマンドを作るのはどうだろうか • テストフレームワークはassetionの成功失敗だけを管理するだけ テストフレームワーク ユーザが書くテストコマンド ユーザが書くテストコマンド ユーザが書くテストコマンド テストのテストが必 要になるのでダメな ことに気づいた
runnで良いのかもし れない 🙅