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

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

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

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  15. ChefConf 2014ͰͷҰίϚ
    15

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide