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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Gosuke Miyashita
April 20, 2022
Programming
3.3k
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
71
36k
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
520
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
370
House Meetup
mizzy
7
3.6k
Other Decks in Programming
See All in Programming
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
560
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
Inside Stream API
skrb
1
680
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
110
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
490
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
200
ふつうのFeature Flag実践入門
irof
7
3.7k
RTSPクライアントを自作してみた話
simotin13
0
570
スマートグラスで並列バイブコーディング
hyshu
0
120
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
2
660
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
240
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
240
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
230
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Automating Front-end Workflow
addyosmani
1370
210k
sira's awesome portfolio website redesign presentation
elsirapls
0
280
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Designing for Performance
lara
611
70k
The Limits of Empathy - UXLibs8
cassininazir
1
350
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
23k
Prompt Engineering for Job Search
mfonobong
0
340
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
390
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
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