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
Gosuke Miyashita
April 20, 2022
Programming
8
3.1k
Serverspec(をつくった自分)のそれまでとその後
Gosuke Miyashita
April 20, 2022
Tweet
Share
More Decks by Gosuke Miyashita
See All by Gosuke Miyashita
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
250
Past and future of Infrastructure as Code
mizzy
0
180
Configuration Managementツールのポリシー定義用中間言語に関する考察/Considerations about an intermediate language of configuration management tools
mizzy
0
450
Infrastructure as Codeのこれまでとこれから/Infra Study Meetup #1
mizzy
29
13k
エンジニアかつ研究者としての今後のキャリアについて/My Career As An Engineer And A Researcher
mizzy
0
390
Compare OCI Runtimes
mizzy
2
1.5k
Serverspec and OSS at IEICE Society Conference 2018
mizzy
2
290
House Meetup
mizzy
7
3.2k
Rust + Ruby/mruby
mizzy
0
1.7k
Other Decks in Programming
See All in Programming
ASP.NETアプリケーションのモダナイゼーションについて
tomokusaba
0
260
Boast Code Party / RubyKaigi 2025 After Event
lemonade_37
0
110
UMAPをざっくりと理解 / Overview of UMAP
kaityo256
PRO
3
1.6k
AIコーディングの本質は“コード“ではなく“構造“だった / The essence of AI coding is not “code” but "structure
seike460
PRO
2
450
The New Developer Workflow: How AI Transforms Ideas into Code
danielsogl
0
140
KANNA Android の技術的課題と取り組み
watabee
1
530
Browser and UI #2 HTML/ARIA
ken7253
2
180
データと事例で振り返るDevin導入の"リアル" / The Realities of Devin Reflected in Data and Case Studies
rkaga
3
2.2k
The Nature of Complexity in John Ousterhout’s Philosophy of Software Design
philipschwarz
PRO
0
170
Vibe Coding の話をしよう
schroneko
14
3.8k
ComposeでのPicture in Picture
takathemax
0
140
インプロセスQAにおいて大事にしていること / In-process QA Meetup
medley
0
170
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Optimising Largest Contentful Paint
csswizardry
37
3.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
Agile that works and the tools we love
rasmusluckow
329
21k
Site-Speed That Sticks
csswizardry
6
540
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.7k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Making Projects Easy
brettharned
116
6.2k
Docker and Python
trallard
44
3.4k
Bash Introduction
62gerente
613
210k
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