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
runn is a package/tool for running operations f...
Search
Ken’ichiro Oyama
May 19, 2022
Technology
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
runn is a package/tool for running operations following a scenario. / golang.tokyo #32
https://golangtokyo.connpass.com/event/246982/
Ken’ichiro Oyama
May 19, 2022
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
2
5.7k
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
1.1k
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
880
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
200
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
12
6.4k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
11k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
470
Cleanup handling in Go / Go Conference 2024
k1low
7
4.2k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
18
12k
Other Decks in Technology
See All in Technology
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
140
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
500
OpenTelemetry eBPF Instrumentationの舞台裏 / Behind the Scenes of OpenTelemetry eBPF Instrumentation
ymotongpoo
3
960
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
Screen Lens - 今見てる画面を翻訳する
komagata
0
220
Sigmaユーザーのための有用リソース一挙公開 & Sigmaで使えるMCP #sigma_ucj /useful-resources-for-sigma-computing-users-and-mcps-with-sigma
shinyaa31
0
180
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
300
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
230
20260912_スクフェス三河
kgnkhkr
0
260
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
260
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
340
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
540
Rails Girls Zürich Keynote
gr2m
96
14k
Building Adaptive Systems
keathley
44
3.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
How STYLIGHT went responsive
nonsquared
100
6.3k
So, you think you're a good person
axbom
PRO
2
2.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Paper Plane
katiecoart
PRO
3
53k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Transcript
runn is a package/tool for running operations following a scenario.
খࢁ݈Ұ / GMO PEPABO inc. 2022.5.19 golang.tokyo #32 1
2
• GoͰAPIαʔόΛ։ൃ͍ͯ͠Δ • ୯ҰͷAPIΤϯυϙΠϯτͷςετͰͳͯ͘ෳͷAPIΤϯυϙΠϯτΛ·͍ͨͩ ςετΛॻ͖͍ͨ • ྫ: ϝʔϧೝূΛؚΜͩαΠϯΞοϓ • ྫ:
γϣοϐϯάΧʔτʢબ͔Βߪೖྃ·Ͱʣ • APIΤϯυϙΠϯτͰσʔλϕʔεૢ࡞͕͋ΔͷͰ͋ΕςετσʔλϕʔεΛ༻ҙ ࣮ͯ͠ࡍʹಡΈॻ͖ൃੜ͢ΔςετΛॻ͖͍ͨ 3 https://github.com/k1LoW/runn ։ൃͷϞνϕʔγϣϯ
• runn ( means "Run N" ) is a package/tool
for running operations following a scenario. • γφϦΦΛYAMLʹॻ͍ͯͦΕΛͬͨςετΛ࣮ߦͰ͖Δύοέʔδ/πʔϧ • ࣮ͷ͋ΔΑ͘ΒΕ͍ͯΔπʔϧͱͯ͠ https://github.com/zoncoen/scenarigo ͕͋Δ • ಛͱͯ͠ҎԼͷ௨Γ • γφϦΦ࣮ߦͷCLIίϚϯυʢπʔϧʣͱͯ͠༻Ͱ͖Δ • GoͷTest Helperʢύοέʔδʣͱͯ͠༻Ͱ͖Δ • γφϦΦϑΝΠϧͷϑΥʔϚοτ͕OpenAPI SpecϥΠΫ • γφϦΦͷεςοϓؒͷͷ࿈ܞ͕ߟྀ͞Ε͍ͯΔ 4 https://github.com/k1LoW/runn runn
• runn࠷ऴతʹ1ͭҎ্ͷγφϦΦΛ࣮ߦͯ͠ɺͦΕͧΕͷޭ/ࣦഊΛΈΔ • γφϦΦ1ͭҎ্ͷεςοϓ͔Βߏ͞Ε͍ͯΔ • 1γφϦΦ1YAMLϑΝΠϧʹͳ͍ͬͯΔʢRunbookͱݺΜͰ͍Δʣ • γφϦΦ͝ͱʹRunnerͱݺΜͰ͍Δεςοϓ࣮ߦίϯϙʔωϯτΛఆٛ͠ɺͦͷRunnerΛ֤ͬͯ εςοϓΛ࣮ߦ͍ͯ͘͠ •
RunnerʹγφϦΦʹఆ͕ٛඞཁͳ௨ৗͷRunnerͱɺطʹrunnͰ༻ҙ͍ͯ͠ΔBuilt-in runnerͷ2 छྨ͕͋Δ • Runner: HTTP Runner, DB Runner • Built-in runner: Exec runner, Test runner, Dump runner, Include runner, Bind runner 5 https://github.com/k1LoW/runn ΞʔΩςΫνϟ
6 γφϦΦʢRunbookʣΛॻ͘
7 https://github.com/k1LoW/runn
8 https://github.com/k1LoW/runn
9 https://github.com/k1LoW/runn
10 https://github.com/k1LoW/runn
11 https://github.com/k1LoW/runn
12 https://github.com/k1LoW/runn
13 https://github.com/k1LoW/runn
14 https://github.com/k1LoW/runn
15 https://github.com/k1LoW/runn
• runnTest helperͱͯ͠༻͢Δͱ͖ɺγφϦΦʹఆٛͯ͠ΔRunnerΛࠩ͠ସ͑Δ͜ͱ͕Ͱ͖Δ • HTTP RunnerͷϦΫΤετઌΛ httptest.Server ͷURLʹͨ͠Γ • http.HandlerΛͯ͠
http.Handler ʹϦΫΤετΛ͢Α͏ʹͨ͠Γ • DB RunnerͷΫΤϦ࣮ߦઌΛผͷςετσʔλϕʔεʹͨ͠Γ 16 https://github.com/k1LoW/runn Test helperͱͯ͠ͷརศੑΛ্ͤ͞Δ (1/2)
17 https://github.com/k1LoW/runn As a test helper using httptest.Server
18 https://github.com/k1LoW/runn As a test helper with http.Handler
• γφϦΦࣗମ͕ؒҧ͍ͬͯͳ͍Α͏ʹ͢Δͱͯ͠HTTP Runnerͷ߹ɺεΩʔϚʹԊͬͨόϦ σʔγϣϯΛಉ࣌ʹΒͤΔΈΛఏڙ͍ͯ͠Δʢݱࡏ OpenAPI Spec v3ͷΈରԠʣ • ʮͦͦͦͷγφϦΦͷϦΫΤετ͕ؒҧ͍ͬͯΔʯΛ͙ •
͍ͭͰʹʮϨεϙϯε͕ؒҧ͍ͬͯΔʯݟ͚ͭΔ 19 https://github.com/k1LoW/runn Test helperͱͯ͠ͷརศੑΛ্ͤ͞Δ (2/2)
͓ΘΓʹ 20
• ·͍ͩ࢝Ί͔ͨΓ͕ͩɺݸਓతʹେ͖Ίͷςετ͕ΧδϡΞϧʹॻ͖͘͢ ͳͬͨͱײ͍ͯ͡Δ • σʔλϕʔεͷΛ༻ͨ͠ςετ͕ॻ͚Δͷ͕Τά͍͕ศར • ࠓճհ͍ͯ͠ͳ͍Include runnerBind runnerͳͲʹڵຯ͕͋Δํ README
Λ ͝ཡ͍ͩ͘͞ • ࠓޙͷలͱͯ͠ɺgRPCରԠΛͯ͠Έ͍ͨ 21 https://github.com/k1LoW/runn ͓ΘΓʹ
ࣗݾհ ٕज़෦ɹٕज़ج൫νʔϜ 2018 த్ೖࣾ খࢁ ݈Ұ Ken’ichiro Oyama গ࣮͠༻తͰখ͞ͳOSSΛॻ͘ͷ͕झຯɻ •
GitHub : k1LoW • Twitter : @k1LoW 22 We are hiring!! @pb_recruit
Thank You! Thank You! 23
24 ͓·͚
• github.com/k1LoW/duration • “3 days 4 hours” Έ͍ͨͳจࣈྻ͔Β time.Duration Λੜ͢Δ
• github.com/k1LoW/expand • YAMLϑΝΠϧʹҰׅͰ os.ExpandEnv Λద༻ͨ͠Γ͢Δͷʹ༻͍ͯ͠Δ 25 ͓·͚ runnͷgo.modʹ͍ΔΦϨΦϨϥΠϒϥϦ2બ