Slide 1

Slide 1 text

Serverspec (Λͭͬͨࣗ͘෼) ͷͦΕ·Ͱͱͦͷޙ ٶԼ ߶ี (mizzy) iCARE Dev Meetup #32 2022೥4݄20೔ 1

Slide 2

Slide 2 text

͓࿩͢͠Δ಺༰ • ServerspecҎલͷ࿩ • ͦΕ·ͰͷOSSͱͷؔΘΓํΛͬ͟ͱ঺հ • ServerspecҎޙͷ࿩ • ͦͦ͜͜༗໊ʹͳͬͨOSSΛͭͬͨ͘͜ͱʹΑΔࣗ਎΁ͷ Өڹ • Serverspecͦͷ΋ͷͷ࿩͸͋·Γ͠·ͤΜ 2

Slide 3

Slide 3 text

ࣗݾ঺հ • ٶԼ ߶ี • mizzy.org, mizzy@github, gosukenator@twitter • ϑϦʔϥϯεͷιϑτ΢ΣΞΤϯδχΞ • 47ࡀ5ࣇͷ෕ 3

Slide 4

Slide 4 text

԰ࠜཪ෦԰͔Β͓ಧ͚ͯ͠·͢ 4

Slide 5

Slide 5 text

Serverspecͱ͸ ͜Μͳײ͡ͰRubyͷRSpecͰαʔόͷςετΛ͢Δπʔϧɻ2013೥3݄ϦϦʔεɻ 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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

ServerspecΛͭ͘Δ·Ͱ (OSSͱͷؔΘΓํ) 7

Slide 8

Slide 8 text

OSSʢͬΆ͍΋ͷʣͱͷؔΘΓ • ࠷ॳʹ৮Εͨͷ͸NCSA Mosaic, NCSA HTTPd, Mule, Linux͋ ͨΓ • OSSͱ͍͏ݴ༿͕·ͩͳ͍1995೥ࠒ • ࣗ࡞ͷϓϩάϥϜެ։͸2003೥ࠒ͔Β • ΢ΣϒαΠτͷهࣄͷҰ෦ͱͯ͠ެ։ • Ұྫ: MTV2000ϦϞʔτ࿥ը༧໿ 8

Slide 9

Slide 9 text

OSSͱͷؔΘΓʢ2004೥ࠒʙʣ • 2004೥ࠒ͔ΒOSS׆ಈͱݺΜͰ΋Α͍Α͏ͳ͜ͱΛ࢝͠Ίͨ • ࣗ࡞blosxomϓϥάΠϯͷެ։ • CPANϞδϡʔϧ΁ͷύονఏڙ/ࣗ࡞CPANϞδϡʔϧެ։ • Plagger Plugin։ൃ • CodeRepos΁ͷࢀՃ 9

Slide 10

Slide 10 text

OSSͱͷؔΘΓʢ2008೥ࠒʙʣ • GitHub͕ओମʹ • ͪΐͬͱͨ͠΋ͷͰ΋ͭͬͨ͘΋ͷ͸GitHubʹஔ͘Α͏ʹ͍ͯ͠Δ • ݱࡏ238ϦϙδτϦʢ͏ͪΦϦδφϧͰpublicͳ΋ͷ͸130͙Β ͍ʣ • ར༻͍ͯ͠ΔOSSͰؾ͍ͮͨ͜ͱ͕͋Ε͹ϓϧϦΫΤετΛૹΔΑ ͏ʹ͍ͯ͠Δ • ྫ: DockerʹૹͬͨϓϧϦΫΤετ 10

Slide 11

Slide 11 text

ServerspecΛͭͬͨ͘ޙ (ࣗ෼ࣗ਎ʹى͖ͨ͜ͱ) 11

Slide 12

Slide 12 text

ϑϦʔϥϯεʹͳͬͨ • 2014೥4݄ʹϑϦʔϥϯεʹͳ͔ͬͯΒؙ8೥ • ݫີʹ͸Serverspec͕͔͋ͬͨΒϑϦʔϥϯεʹͳͬͨΘ͚Ͱ͸ ͳ͍ • ਖ਼ࣾһͷ࢓ࣄΛ୳͍͕ͯͨ͠ɺྲྀΕͰۀ຿ҕୗͰݸਓࣄۀओͱ͠ ͯ࢓ࣄΛ͢Δ͜ͱʹͳͬͨ • ͜ͷ··ݸਓࣄۀओͰ͠͹Β͘΍͍ͬͯ͜͏ɺͱࢥ͔ͬͯΒ࠷ॳ ʹೖͬͨ࢓ࣄ͕ServerspecབྷΈͩͬͨ 12

Slide 13

Slide 13 text

ਓ຺͕޿͕ͬͨ • ͦΕ·Ͱ͸ PerlίϛϡχςΟͷܨ͕Γ͕ϝΠϯͩͬͨ • ͋ͱ͸αʔόΠϯϑϥք۾ͷํʑ • ςετۦಈͱ͔ΞδϟΠϧͳͲͷίϛϡχςΟͷํʑͱܨ͕ Δػձ͕૿͑ͨ • ΋ͪΖΜͦΕҎ֎ͷํʑ΋ 13

Slide 14

Slide 14 text

USͷٕज़ΧϯϑΝϨϯεʹొஃͨ͠ • αϯϑϥϯγείͰ։࠵͞ΕͨChefConf 2014ʹొஃ • ChefConf 2014 ʹདྷͯ·͢ - Gosuke Miyashita 14

Slide 15

Slide 15 text

ChefConf 2014ͰͷҰίϚ 15

Slide 16

Slide 16 text

ΦϥΠϦʔ͔Β୯ஶΛग़ͨ͠ • 2015೥1݄ൃߦ • ࣥචظؒ͸໿7ϲ݄ • ࢓ࣄ͠ͳ͕ΒͷࣥචʹΑΔετϨε͔ɺࣗՈ ײ࡞ੑൽෘԌΛൃ঱ͨ͠ 16

Slide 17

Slide 17 text

ॻධΑΓʢͦͷ1ʣ ๻͕ड़΂͔ͨͬͨͷ͸ɺຊॻ͕ɺզʑͷΑ͏ͳOSSʹରͯؔ͠ ΘΓͷڧ͍ιϑτ΢ΣΞΤϯδχΞʹͱͬͯɺͨͱ͑͹ʰϋο ΧʔͱըՈʱ΍ʰJoel on SoftwareʱͷΑ͏ͳɺٕज़จԽʹؔ͢ ΔΤοηΠͷΑ͏ͳຯΘ͍Λܼ࣋ͭ࡞Ͱ͋Δͱ͍͏͜ͱͰ͋ Δɻ — Serverspecͷ࡞ऀ͕ͭ͘Δɺ͋ΔͻͱͭͷOSSจԽ - ॻධ ʰServerspecʱ | ܀ྛ݈ଠ࿠ 17

Slide 18

Slide 18 text

ॻධΑΓʢͦͷ2ʣ mizzy͞ΜʹΑΔServerspecຊ͸ɺKonstantinͷSinatraຊΛ௒͑Δ ͔΋͠Εͳ͍΄Ͳɺ࡞ऀͷࢥ૝͕ਵॴʹग़ͯ͘Δڵຯਂ͍ຊͰ ͢ɻ — ΦϥΠϦʔʰServerspecʱΛಡΜͩ - ϩʔϑΝΠ೔ه 18

Slide 19

Slide 19 text

๏ਓԽͨ͠ • ϑϦʔʹͳͬͯ2೥Ͱ๏ਓԽ • ߹ಉձࣾServerspec Operations • Heavy Water Operations LLC͔ΒͷΠϯεύΠΞ • ໊ࣾʹ͍ͭͯ͸গ͚ͩ͠ޙչ͕͋Δ • Ұൠͷਓʹͱͬͯ௕ͯ͘Θ͔Γʹ͍͘ձ໊ࣾ • ྖऩॻʹ໊ࣾॻ͍ͯ΋Β͏࣌ʹޱ಄Ͱ͸௨͡ͳ͍ 19

Slide 20

Slide 20 text

δϟʔφϧ࿦จΛॻ͍ͨ • ٶԼ߶ี, ܀ྛ݈ଠ࿠, দຊ྄հ. "Serverspec: એݴతهड़Ͱαʔόͷઃ ఆঢ়ଶΛςετՄೳͳ൚༻ੑͷߴ͍ςετϑϨʔϜϫʔΫ." ৘ใॲཧֶ ձ࿦จࢽ 61.3 (2020): 677-686. • ݩʑͷ͖͔͚ͬ͸ɺ2013೥10݄ͷୈ2ճ ίϯςφܕԾ૝Խͷ৘ใަ׵ ձˏ౦ژͰmatsumotory͞ΜͱॳΊ͓ͯձ͍ͨ࣌͠ͷձ࿩͔Β • 2014೥ʹݚڀϨϙʔτͱͯࣥ͠ච͍͕ͯͨ͠ɺ2019೥ʹ͘͞ΒΠϯ λʔωοτݚڀॴͷ࢓ࣄΛ੥͚ͨͷ͕͖͔͚ͬͱͳΓɺվΊͯδϟʔφ ϧ࿦จͱͯࣥ͠ච 20

Slide 21

Slide 21 text

େֶӃʹೖֶͨ͠ • ࡢ೥4݄ʹژ౎େֶେֶӃ৘ใֶݚڀՊത࢜ޙظ՝ఔʹೖֶ • म࢜ඈ͹͠Ͱത࢜ • δϟʔφϧ࿦จ͸ࢿ֨৹ࠪ΁ͷରԠ΋݉Ͷ͍ͯͨ 21

Slide 22

Slide 22 text

·ͱΊ • Serverspecͱ͍͏OSSΛͭͬͨ͘Β46ࡀͰେֶӃੜʹͳͬͯͨ • ࣮ࡍʹ͸Serverspec΍OSS͚ͩͰ͸ͳ͘ɺΦʔϓϯͳ׆ಈΛੵΈ ॏͶ͖ͯͨ݁ՌɺͩͱࢥͬͯΔʢϒϩάهࣄ΍ษڧձ౳Ͱͷొஃ ౳ʣ • ࠓߦ͍ͬͯΔେֶӃͷݚڀ΋ɺ࿦จ͸Φʔϓϯͳ΋ͷͳͷͰɺ͍ ··Ͱ͖ͨͨ͠Φʔϓϯͳ׆ಈͱ஍ଓ͖ • Openness is our driver for excellence 22