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
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.5k
Other Decks in Programming
See All in Programming
さぁV100、メモリをお食べ・・・
nilpe
0
130
Swiftのレキシカルスコープ管理
kntkymt
0
210
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.9k
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
140
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.6k
JavaDoc 再入門
nagise
0
280
Oxlintのカスタムルールの現況
syumai
5
990
プラグインで拡張される Context をtype-safe にする難しさと設計判断
kazupon
2
580
AIエージェントの隔離技術の徹底比較
kawayu
0
460
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
740
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
350
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
240
How STYLIGHT went responsive
nonsquared
100
6.2k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
580
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Git: the NoSQL Database
bkeepers
PRO
432
67k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
220
Optimizing for Happiness
mojombo
378
71k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
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