Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Serverspec(をつくった自分)のそれまでとその後

 Serverspec(をつくった自分)のそれまでとその後

0d5d8fb9cc4c06f581825f5a61d3f5f1?s=128

Gosuke Miyashita
PRO

April 20, 2022
Tweet

More Decks by Gosuke Miyashita

Other Decks in Programming

Transcript

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

    2022೥4݄20೔ 1
  2. ͓࿩͢͠Δ಺༰ • ServerspecҎલͷ࿩ • ͦΕ·ͰͷOSSͱͷؔΘΓํΛͬ͟ͱ঺հ • ServerspecҎޙͷ࿩ • ͦͦ͜͜༗໊ʹͳͬͨOSSΛͭͬͨ͘͜ͱʹΑΔࣗ਎΁ͷ Өڹ

    • Serverspecͦͷ΋ͷͷ࿩͸͋·Γ͠·ͤΜ 2
  3. ࣗݾ঺հ • ٶԼ ߶ี • mizzy.org, mizzy@github, gosukenator@twitter • ϑϦʔϥϯεͷιϑτ΢ΣΞΤϯδχΞ

    • 47ࡀ5ࣇͷ෕ 3
  4. ԰ࠜཪ෦԰͔Β͓ಧ͚ͯ͠·͢ 4

  5. 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
  6. 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
  7. ServerspecΛͭ͘Δ·Ͱ (OSSͱͷؔΘΓํ) 7

  8. OSSʢͬΆ͍΋ͷʣͱͷؔΘΓ • ࠷ॳʹ৮Εͨͷ͸NCSA Mosaic, NCSA HTTPd, Mule, Linux͋ ͨΓ •

    OSSͱ͍͏ݴ༿͕·ͩͳ͍1995೥ࠒ • ࣗ࡞ͷϓϩάϥϜެ։͸2003೥ࠒ͔Β • ΢ΣϒαΠτͷهࣄͷҰ෦ͱͯ͠ެ։ • Ұྫ: MTV2000ϦϞʔτ࿥ը༧໿ 8
  9. OSSͱͷؔΘΓʢ2004೥ࠒʙʣ • 2004೥ࠒ͔ΒOSS׆ಈͱݺΜͰ΋Α͍Α͏ͳ͜ͱΛ࢝͠Ίͨ • ࣗ࡞blosxomϓϥάΠϯͷެ։ • CPANϞδϡʔϧ΁ͷύονఏڙ/ࣗ࡞CPANϞδϡʔϧެ։ • Plagger Plugin։ൃ

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

    ͏ʹ͍ͯ͠Δ • ྫ: DockerʹૹͬͨϓϧϦΫΤετ 10
  11. ServerspecΛͭͬͨ͘ޙ (ࣗ෼ࣗ਎ʹى͖ͨ͜ͱ) 11

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

    ͜ͷ··ݸਓࣄۀओͰ͠͹Β͘΍͍ͬͯ͜͏ɺͱࢥ͔ͬͯΒ࠷ॳ ʹೖͬͨ࢓ࣄ͕ServerspecབྷΈͩͬͨ 12
  13. ਓ຺͕޿͕ͬͨ • ͦΕ·Ͱ͸ PerlίϛϡχςΟͷܨ͕Γ͕ϝΠϯͩͬͨ • ͋ͱ͸αʔόΠϯϑϥք۾ͷํʑ • ςετۦಈͱ͔ΞδϟΠϧͳͲͷίϛϡχςΟͷํʑͱܨ͕ Δػձ͕૿͑ͨ •

    ΋ͪΖΜͦΕҎ֎ͷํʑ΋ 13
  14. USͷٕज़ΧϯϑΝϨϯεʹొஃͨ͠ • αϯϑϥϯγείͰ։࠵͞ΕͨChefConf 2014ʹొஃ • ChefConf 2014 ʹདྷͯ·͢ - Gosuke

    Miyashita 14
  15. ChefConf 2014ͰͷҰίϚ 15

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

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

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

  19. ๏ਓԽͨ͠ • ϑϦʔʹͳͬͯ2೥Ͱ๏ਓԽ • ߹ಉձࣾServerspec Operations • Heavy Water Operations

    LLC͔ΒͷΠϯεύΠΞ • ໊ࣾʹ͍ͭͯ͸গ͚ͩ͠ޙչ͕͋Δ • Ұൠͷਓʹͱͬͯ௕ͯ͘Θ͔Γʹ͍͘ձ໊ࣾ • ྖऩॻʹ໊ࣾॻ͍ͯ΋Β͏࣌ʹޱ಄Ͱ͸௨͡ͳ͍ 19
  20. δϟʔφϧ࿦จΛॻ͍ͨ • ٶԼ߶ี, ܀ྛ݈ଠ࿠, দຊ྄հ. "Serverspec: એݴతهड़Ͱαʔόͷઃ ఆঢ়ଶΛςετՄೳͳ൚༻ੑͷߴ͍ςετϑϨʔϜϫʔΫ." ৘ใॲཧֶ ձ࿦จࢽ

    61.3 (2020): 677-686. • ݩʑͷ͖͔͚ͬ͸ɺ2013೥10݄ͷୈ2ճ ίϯςφܕԾ૝Խͷ৘ใަ׵ ձˏ౦ژͰmatsumotory͞ΜͱॳΊ͓ͯձ͍ͨ࣌͠ͷձ࿩͔Β • 2014೥ʹݚڀϨϙʔτͱͯࣥ͠ච͍͕ͯͨ͠ɺ2019೥ʹ͘͞ΒΠϯ λʔωοτݚڀॴͷ࢓ࣄΛ੥͚ͨͷ͕͖͔͚ͬͱͳΓɺվΊͯδϟʔφ ϧ࿦จͱͯࣥ͠ච 20
  21. େֶӃʹೖֶͨ͠ • ࡢ೥4݄ʹژ౎େֶେֶӃ৘ใֶݚڀՊത࢜ޙظ՝ఔʹೖֶ • म࢜ඈ͹͠Ͱത࢜ • δϟʔφϧ࿦จ͸ࢿ֨৹ࠪ΁ͷରԠ΋݉Ͷ͍ͯͨ 21

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

    • Openness is our driver for excellence 22