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
Serverspec(をつくった自分)のそれまでとその後
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Gosuke Miyashita
April 20, 2022
Programming
3.4k
9
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Serverspec(をつくった自分)のそれまでとその後
Gosuke Miyashita
April 20, 2022
More Decks by Gosuke Miyashita
See All by Gosuke Miyashita
なぜインフラコードのモジュール化は難しいのか - アプリケーションコードとの本質的な違いから考える
mizzy
72
37k
A method for separating policy definition and behavior control by an intermediate language to achieve optimal server configuration management according to the situation
mizzy
3
310
Past and future of Infrastructure as Code
mizzy
0
370
Configuration Managementツールのポリシー定義用中間言語に関する考察/Considerations about an intermediate language of configuration management tools
mizzy
0
530
Infrastructure as Codeのこれまでとこれから/Infra Study Meetup #1
mizzy
28
13k
エンジニアかつ研究者としての今後のキャリアについて/My Career As An Engineer And A Researcher
mizzy
0
460
Compare OCI Runtimes
mizzy
2
1.7k
Serverspec and OSS at IEICE Society Conference 2018
mizzy
2
380
House Meetup
mizzy
7
3.6k
Other Decks in Programming
See All in Programming
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
0
120
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
230
地域 SRE コミュニティ最前線 - ホンマでっかSRE勉強会
tk3fftk
0
290
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
150
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
130
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
700
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
170
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
480
使いながら育てる Claude Code — 開発フローの1コマンド化 × 繰り返し指摘の自動仕組み化
shiki_kakaku
0
1.3k
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.8k
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
430
霧の中の代数的エフェクト
funnyycat
1
440
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
The World Runs on Bad Software
bkeepers
PRO
72
12k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
670
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
It's Worth the Effort
3n
188
29k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.1k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
57k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
750
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
470
Transcript
Serverspec (Λͭͬͨࣗ͘) ͷͦΕ·Ͱͱͦͷޙ ٶԼ ߶ี (mizzy) iCARE Dev Meetup #32
20224݄20 1
͓͢͠Δ༰ • ServerspecҎલͷ • ͦΕ·ͰͷOSSͱͷؔΘΓํΛͬ͟ͱհ • ServerspecҎޙͷ • ͦͦ͜͜༗໊ʹͳͬͨOSSΛͭͬͨ͘͜ͱʹΑΔࣗͷ Өڹ
• Serverspecͦͷͷͷ͋·Γ͠·ͤΜ 2
ࣗݾհ • ٶԼ ߶ี • mizzy.org, mizzy@github, gosukenator@twitter • ϑϦʔϥϯεͷιϑτΣΞΤϯδχΞ
• 47ࡀ5ࣇͷ 3
ࠜཪ෦͔Β͓ಧ͚ͯ͠·͢ 4
Serverspecͱ ͜Μͳײ͡ͰRubyͷRSpecͰαʔόͷςετΛ͢Δπʔϧɻ20133݄ϦϦʔεɻ describe package('nginx') do it { should be_installed }
end describe service('nginx') do it { should be_enabled } it { should be_running } end describe port(80) do it { should be_listening } end 5
Serverspecͷ໊ • GitHub: 2.4K Stars • oreilly.com: serverspecͰݕࡧ͢Δͱ50݅ώοτ • BestGems.org:
σΠϦʔμϯϩʔυϥϯΩϯάͰ࠷ߴೋܻॱ Ґɺτʔλϧμϯϩʔυ3300ສ͑ • Black Duck Open Source Rookies of the Year 2013 • Thought Works Technology Raderʹܝࡌ • ୈ10ճຊOSSྭड 6
ServerspecΛͭ͘Δ·Ͱ (OSSͱͷؔΘΓํ) 7
OSSʢͬΆ͍ͷʣͱͷؔΘΓ • ࠷ॳʹ৮ΕͨͷNCSA Mosaic, NCSA HTTPd, Mule, Linux͋ ͨΓ •
OSSͱ͍͏ݴ༿͕·ͩͳ͍1995ࠒ • ࣗ࡞ͷϓϩάϥϜެ։2003ࠒ͔Β • ΣϒαΠτͷهࣄͷҰ෦ͱͯ͠ެ։ • Ұྫ: MTV2000ϦϞʔτը༧ 8
OSSͱͷؔΘΓʢ2004ࠒʙʣ • 2004ࠒ͔ΒOSS׆ಈͱݺΜͰΑ͍Α͏ͳ͜ͱΛ࢝͠Ίͨ • ࣗ࡞blosxomϓϥάΠϯͷެ։ • CPANϞδϡʔϧͷύονఏڙ/ࣗ࡞CPANϞδϡʔϧެ։ • Plagger Plugin։ൃ
• CodeReposͷࢀՃ 9
OSSͱͷؔΘΓʢ2008ࠒʙʣ • GitHub͕ओମʹ • ͪΐͬͱͨ͠ͷͰͭͬͨ͘ͷGitHubʹஔ͘Α͏ʹ͍ͯ͠Δ • ݱࡏ238ϦϙδτϦʢ͏ͪΦϦδφϧͰpublicͳͷ130͙Β ͍ʣ • ར༻͍ͯ͠ΔOSSͰؾ͍ͮͨ͜ͱ͕͋ΕϓϧϦΫΤετΛૹΔΑ
͏ʹ͍ͯ͠Δ • ྫ: DockerʹૹͬͨϓϧϦΫΤετ 10
ServerspecΛͭͬͨ͘ޙ (ࣗࣗʹى͖ͨ͜ͱ) 11
ϑϦʔϥϯεʹͳͬͨ • 20144݄ʹϑϦʔϥϯεʹͳ͔ͬͯΒؙ8 • ݫີʹServerspec͕͔͋ͬͨΒϑϦʔϥϯεʹͳͬͨΘ͚Ͱ ͳ͍ • ਖ਼ࣾһͷࣄΛ୳͍͕ͯͨ͠ɺྲྀΕͰۀҕୗͰݸਓࣄۀओͱ͠ ͯࣄΛ͢Δ͜ͱʹͳͬͨ •
͜ͷ··ݸਓࣄۀओͰ͠Β͍ͬͯ͘͜͏ɺͱࢥ͔ͬͯΒ࠷ॳ ʹೖͬͨࣄ͕ServerspecབྷΈͩͬͨ 12
ਓ຺͕͕ͬͨ • ͦΕ·Ͱ PerlίϛϡχςΟͷܨ͕Γ͕ϝΠϯͩͬͨ • ͋ͱαʔόΠϯϑϥք۾ͷํʑ • ςετۦಈͱ͔ΞδϟΠϧͳͲͷίϛϡχςΟͷํʑͱܨ͕ Δػձ͕૿͑ͨ •
ͪΖΜͦΕҎ֎ͷํʑ 13
USͷٕज़ΧϯϑΝϨϯεʹొஃͨ͠ • αϯϑϥϯγείͰ։࠵͞ΕͨChefConf 2014ʹొஃ • ChefConf 2014 ʹདྷͯ·͢ - Gosuke
Miyashita 14
ChefConf 2014ͰͷҰίϚ 15
ΦϥΠϦʔ͔Β୯ஶΛग़ͨ͠ • 20151݄ൃߦ • ࣥචظؒ7ϲ݄ • ࣄ͠ͳ͕ΒͷࣥචʹΑΔετϨε͔ɺࣗՈ ײ࡞ੑൽෘԌΛൃͨ͠ 16
ॻධΑΓʢͦͷ1ʣ ͕ड़͔ͨͬͨͷɺຊॻ͕ɺզʑͷΑ͏ͳOSSʹରͯؔ͠ ΘΓͷڧ͍ιϑτΣΞΤϯδχΞʹͱͬͯɺͨͱ͑ʰϋο ΧʔͱըՈʱʰJoel on SoftwareʱͷΑ͏ͳɺٕज़จԽʹؔ͢ ΔΤοηΠͷΑ͏ͳຯΘ͍Λܼ࣋ͭ࡞Ͱ͋Δͱ͍͏͜ͱͰ͋ Δɻ — Serverspecͷ࡞ऀ͕ͭ͘Δɺ͋ΔͻͱͭͷOSSจԽ
- ॻධ ʰServerspecʱ | ܀ྛ݈ଠ 17
ॻධΑΓʢͦͷ2ʣ mizzy͞ΜʹΑΔServerspecຊɺKonstantinͷSinatraຊΛ͑Δ ͔͠Εͳ͍΄Ͳɺ࡞ऀͷࢥ͕ਵॴʹग़ͯ͘Δڵຯਂ͍ຊͰ ͢ɻ — ΦϥΠϦʔʰServerspecʱΛಡΜͩ - ϩʔϑΝΠه 18
๏ਓԽͨ͠ • ϑϦʔʹͳͬͯ2Ͱ๏ਓԽ • ߹ಉձࣾServerspec Operations • Heavy Water Operations
LLC͔ΒͷΠϯεύΠΞ • ໊ࣾʹ͍ͭͯগ͚ͩ͠ޙչ͕͋Δ • Ұൠͷਓʹͱͬͯͯ͘Θ͔Γʹ͍͘ձ໊ࣾ • ྖऩॻʹ໊ࣾॻ͍ͯΒ͏࣌ʹޱ಄Ͱ௨͡ͳ͍ 19
δϟʔφϧจΛॻ͍ͨ • ٶԼ߶ี, ܀ྛ݈ଠ, দຊ྄հ. "Serverspec: એݴతهड़Ͱαʔόͷઃ ఆঢ়ଶΛςετՄೳͳ൚༻ੑͷߴ͍ςετϑϨʔϜϫʔΫ." ใॲཧֶ ձจࢽ
61.3 (2020): 677-686. • ݩʑͷ͖͔͚ͬɺ201310݄ͷୈ2ճ ίϯςφܕԾԽͷใަ ձˏ౦ژͰmatsumotory͞ΜͱॳΊ͓ͯձ͍ͨ࣌͠ͷձ͔Β • 2014ʹݚڀϨϙʔτͱͯࣥ͠ච͍͕ͯͨ͠ɺ2019ʹ͘͞ΒΠϯ λʔωοτݚڀॴͷࣄΛ͚ͨͷ͕͖͔͚ͬͱͳΓɺվΊͯδϟʔφ ϧจͱͯࣥ͠ච 20
େֶӃʹೖֶͨ͠ • ࡢ4݄ʹژେֶେֶӃใֶݚڀՊത࢜ޙظ՝ఔʹೖֶ • म࢜ඈ͠Ͱത࢜ • δϟʔφϧจࢿ֨৹ࠪͷରԠ݉Ͷ͍ͯͨ 21
·ͱΊ • Serverspecͱ͍͏OSSΛͭͬͨ͘Β46ࡀͰେֶӃੜʹͳͬͯͨ • ࣮ࡍʹServerspecOSS͚ͩͰͳ͘ɺΦʔϓϯͳ׆ಈΛੵΈ ॏͶ͖ͯͨ݁ՌɺͩͱࢥͬͯΔʢϒϩάهࣄษڧձͰͷొஃ ʣ • ࠓߦ͍ͬͯΔେֶӃͷݚڀɺจΦʔϓϯͳͷͳͷͰɺ͍ ··Ͱ͖ͨͨ͠Φʔϓϯͳ׆ಈͱଓ͖
• Openness is our driver for excellence 22