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

DMM.comのサービス開発におけるGitHub Enterprise活用の舞台裏

DMM.com
February 16, 2018

DMM.comのサービス開発におけるGitHub Enterprise活用の舞台裏

2018/02/16 Developers Summitでの登壇資料となります。
DMM.comラボでは1年前から新しい開発基盤としてGitHub Enterpriseを利用しています。これまであまり表に出てこなかった、DMM.comラボの新しい開発基盤の導入経緯や導入効果、失敗談、変化に対応しつつ安定した基盤を提供するために実践していることをお話します。GitHub Enterpriseと連動するCIツールやタスク管理ツールについてもお話します。

DMM.com

February 16, 2018
Tweet

More Decks by DMM.com

Other Decks in Technology

Transcript

  1. %..DPNϥϘɹ$50ࣨɹ౜ᖒཅհ
    %..DPNαʔϏε։ൃʹ͓͚Δ

    (JU)VC&OUFSQSJTF׆༻ͷཪଆ
    %FWFMPQFST4VNNJU
    ϋογϡλάɿEFWTVNJ"
    ηογϣϯ*%ɿ"

    View Slide

  2. © DMM.com labo
    w αʔόߏ੒
    w ͲΜͳ͜ͱΛߟ͑ͯӡ༻Λ͍ͯ͠Δ͔
    ࠓ೔͓࿩͢Δ͜ͱ
    (JU)VC&OUFSQSJTFɺ$JSDMF$*&OUFSQSJTFͷӡ༻ͷ࿩Ͱ͢

    View Slide

  3. © DMM.com labo
    ࣗݾ঺հ
    ౜ᖒཅհʢ͔Β͞ΘΑ͏͚͢ʣ
    w %..DPNϥϘɹ$50ࣨ
    w ೥ೖࣾ
    w (JU)VC&OUFSQSJTFΛத৺ͱͨ͠πʔϧͷߏஙɺӡ༻ɺ

    ར༻ऀ΁ͷٕज़ࢧԉͳͲΛ୲౰

    View Slide

  4. © DMM.com labo
    %..DPNʹ͍ͭͯ

    View Slide

  5. © DMM.com labo
    αʔϏεʹ͍ͭͯ
    %..DPN͸೥͔Β

    ଟ࠼ͳίϯςϯπΛఏڙ͍ͯ͠·͢ɻ
    IUUQTXXXENNDPN
    "CPVU%..DPN
    Ҏ্ͷ෯޿͍αʔϏεΛల։

    View Slide

  6. © DMM.com labo
    ΞδΣϯμ
    w (JU)VC&OUFSQSJTF$JSDMF$*&OUFSQSJTFಋೖͷഎܠ
    w (JU)VC&OUFSQSJTFαʔόߏ੒
    w $JSDMF$*&OUFSQSJTFαʔόߏ੒
    w ಋೖޮՌɺࣦഊஊͳͲ

    View Slide

  7. © DMM.com labo
    ()&$$*&ಋೖͷഎܠ

    View Slide

  8. © DMM.com labo
    w ϓϧϦΫΤετΛ༻͍ͨ(JUͷ։ൃϑϩʔ͸طʹ͋ͬͨ
    w ϓϩδΣΫτ؅ཧɺόάτϥοΩϯάɺ৘ใ؅ཧπʔϧ͸౷߹
    ͞Εͭͭ͋ͬͨ
    ΋ͱ΋ͱ͸๭ࣾͷ(JUαʔόʔ੡඼Λ࢖͍ͬͯͨ
    ͦΜͳঢ়گͷதɺΤϯδχΞ͔Β
    (JU)VCΛ࢓ࣄͰ࢖ͬͯΈ͍ͨͱ͍͏੠͕͕͋Δ

    View Slide

  9. © DMM.com labo
    w গਓ਺Ͱࢼݧతʹ࢖͍࢝ΊΔ
    w ᷚΛฉ͖͚ͭɺར༻ऀ͕ͲΜͲΜ૿͑Δ
    w ΈΜͳ(JU)VCΛ࢓ࣄͰ࢖͍͔ͨͬͨ
    (JU)VC༗ྉϓϥϯͷಋೖ
    ͜ͷ··(JU)VCΛ֦େ͢Δ͔
    ΤϯλʔϓϥΠζ൛͔

    View Slide

  10. © DMM.com labo
    (JU)VC&OUFSQSJTFಋೖͷཧ༝
    w ސ٬৘ใ΍ܾࡁΛѻ͏ίʔυ͸

    (JU)VCͷϓϥΠϕʔτϦϙδτϦαʔϏεʹஔ͚ͳ͍
    ୭Ͱ΋҆৺ͯ͠ར༻Ͱ͖Δ؀ڥΛ
    ηΩϡϦςΟϦεΫ

    View Slide

  11. © DMM.com labo
    (JU)VC&OUFSQSJTFಋೖͷཧ༝
    w ίϛϡχέʔγϣϯͷͱΓ΍͢͞
    w ࢥߟͷ੾Γସ͑ͷগͳ͞
    w ֎෦࿈ܞͷڧ͞
    ࠓ࢖͍ͬͯΔ(JUαʔόʔͰ͸μϝͳͷ͔
    ࢖͍ͬͯͯؾ͕͍͍࣋ͪ
    ੜ࢈ੑͷ޲্͕ݟࠐΊΔ

    View Slide

  12. © DMM.com labo
    $JSDMF$*&OUFSQSJTFಋೖͷཧ༝
    w $*؀ڥ ओʹ+FOLJOT
    ͷߏஙɾӡ༻ʹίετ͕͔͔Δ
    $*Λ͙͢ʹ࢝ΊΒΕΔ؀ڥΛఏڙ͍ͨ͠
    $*ಋೖͷෑډΛԼ͍͛ͨ

    View Slide

  13. © DMM.com labo
    ೥݄
    (JUIVC&OUFSQSJTF
    $JSDMF$*&OUFSQSJTF
    ӡ༻։࢝

    View Slide

  14. © DMM.com labo
    ޙʹ;FO)VC&OUFSQSJTF΋஥ؒೖΓ
    w ೥݄ࠒʹӡ༻։࢝
    w (JU)VCར༻࣌ʹҰ෦ͷνʔϜ͕ར༻͍ͯͨ͠
    w ()&Ͱ΋;FO)VCΛ࢖͍͍ͨཁ๬͔ΒಋೖΛܾΊΔ

    View Slide

  15. © DMM.com labo
    ΞδΣϯμ
    w (JU)VC&OUFSQSJTF$JSDMF$*&OUFSQSJTFΛಋೖͨ͠ཧ༝
    w (JU)VC&OUFSQSJTFαʔόߏ੒
    w $JSDMF$*&OUFSQSJTFαʔόߏ੒
    w ಋೖޮՌɺࣦഊஊͳͲ

    View Slide

  16. © DMM.com labo
    (JU)VC&OUFSQSJTFαʔόߏ੒

    View Slide

  17. © DMM.com labo
    "84্ʹߏங
    w $$*&͕5FSSBGPSNΛఏڙ͍ͯͯ͠ɺ"84ਪ঑ʹݟ͑ͨ
    w ӡ༻͠ͳ͕ΒΠϯϑϥ͕ͲΜͲΜมΘ͍ͬͯͬͨͷͰ

    ݁Ռతʹ"84Λબ୒ͯ͠Α͔ͬͨ
    w 5FSSBGPSNͱ"OTJCMFͰߏ੒؅ཧ

    View Slide

  18. © DMM.com labo
    ()&͸୯ମͷ&$ΠϯελϯεͰಈ࡞͢Δ
    w ".*͕ఏڙ͞Ε͓ͯΓ

    ηοτΞοϓ͸؆୯
    w )"ߏ੒΋ίϚϯυΛ

    ਺ճ࣮ߦ͢Δ͚ͩͰઃఆͰ͖Δ

    View Slide

  19. © DMM.com labo
    ()&΁ͷΞΫηεΛ੍ݶ͍ͨ͠
    w &$71$ͷηΩϡϦςΟάϧʔ
    ϓʹ͸্ݶ͕͋Γɺ͙͢ʹ଍Γͳ
    ͘ͳΔ͜ͱ͕༧૝͞Εͨ
    w VGXJQUBCMFTͳͲͰ੍ݶ͢Δํ
    ๏΋͕͋ͬͨɺ()&ʹ͸Ͱ͖Δͩ
    ͚खΛՃ͑ͨ͘ͳ͔ͬͨʢ౰࣌ʣ

    View Slide

  20. © DMM.com labo
    ()&ͷલʹಁաܕͷ1SPYZΛ഑ஔ

    View Slide

  21. © DMM.com labo
    1SPYZߏ੒Ͱ೥ӡ༻ͯ͠ݟ͖͑ͯͨ՝୊
    w 1SPYZΠϯελϯεͷ؅ཧ͕݁ߏେม
    w 1SPYZ͕ݪҼͰ()&ʹΞΫηεͰ͖ͳ͘ͳͬͨ͜ͱ΋
    w "84ྉۚ΋ͦΕͳΓʹ͔͔Δ
    1SPYZߏ੒͸ͭΒΈ͕ଟ͍
    ()&ͷVGXJQUBCMFTͷݕ౼΋ࢹ໺ʹ

    View Slide

  22. © DMM.com labo
    ΞδΣϯμ
    w (JU)VC&OUFSQSJTF$JSDMF$*&OUFSQSJTFΛಋೖͨ͠ཧ༝
    w (JU)VC&OUFSQSJTFαʔόߏ੒
    w $JSDMF$*&OUFSQSJTFαʔόߏ੒
    w ಋೖޮՌɺࣦഊஊͳͲ

    View Slide

  23. © DMM.com labo
    $JSDMF$*&OUFSQSJTFαʔόߏ੒

    View Slide

  24. © DMM.com labo
    $$*&ͷΠϯϑϥߏ੒ͷϙΠϯτ
    w $JSDMF$*͕ࣾ5FSSBGPSNΛ(JU)VCͰެ։͍ͯ͠Δ
    w "84্ʹ$$*&͕ಈ࡞͢Δ؀ڥΛૉૣ͘ߏஙͰ͖Δ

    View Slide

  25. © DMM.com labo
    $JSDMF$*ࣾఏڙͷ5FSSBGPSNͰߏஙͨ͠؀ڥ

    View Slide

  26. © DMM.com labo
    ഒ཰Λ্͛ͯΠϯελϯεͷதΛݟΔͱ

    View Slide

  27. © DMM.com labo
    WͷNBDIJOFUSVFͷ৔߹

    View Slide

  28. © DMM.com labo
    Wͷ৔߹

    View Slide

  29. © DMM.com labo
    $JSDMF$*͕ࣾެ։͢Δ5FSSBGPSNΛΧελϚΠζ
    ηΩϡϦςΟάϧʔϓͷมߋ
    #VJMEFSΛ1SJWBUF4VCOFUʹҠಈ
    WܥͷϏϧυঢ়گΛ/PNBE6*ͰՄࢹԽ

    View Slide

  30. © DMM.com labo
    ΧελϚΠζ̍ɹηΩϡϦςΟʔάϧʔϓ
    w ʹ։์͞Ε͍ͯΔͷͰด͡Δ
    w ฤूՕॴ͸݁ߏଟ͍

    View Slide

  31. © DMM.com labo
    ΧελϚΠζɹ#VJMEFSΛ1SJWBUF4VCOFUʹ
    w #VJMEFS͕(*1Λ͍࣋ͬͯΔͱ౎
    ߹͕ѱ͍
    w /"5(BUFXBZͰෳ਺ͷ#VJMEFS
    ͷૹ৴ݩ*1Λݻఆ
    w ར༻ऀ͕#VJMEFSʹ44)ͰΞΫη
    εͯ͠σόοάͰ͖ΔΑ͏ʹ౿Έ
    ୆ΠϯελϯεΛ༻ҙ

    View Slide

  32. © DMM.com labo
    ΧελϚΠζɹϏϧυঢ়گͷՄࢹԽ
    w /PNBE͕؅ཧ͍ͯ͠ΔϏϧυͷঢ়
    گΛݟΔʹ͸/PNBE4FSWFSͰ
    OPNBEDMJΛ࣮ߦ͠ͳ͍ͱ͍͚ͳ
    ͍
    w Ϗϧυঢ়گΛ/PNBE6*ͰՄࢹԽ
    w /PNBE6*ͷ"1*͔ΒϏϧυঢ়گ
    Λऩू͠ɺϝτϦΫεΛ
    $MPVE8BUDIʹૹ৴

    View Slide

  33. © DMM.com labo
    $$*&ͷαʔόߏ੒ͷ՝୊
    w ຊՈͷ5FSSBGPSN͕݁ߏͳස౓ͰมΘΔͷͰɺ5FSSBGPSNΛ
    ΧελϚΠζͯ͠͠·͏ͱมߋʹ͍͍ͭͯ͘ͷ͕େม
    5FSSBGPSNͷηΩϡϦςΟάϧʔϓ
    5FSSBGPSNͷηΩϡϦςΟάϧʔϓ͸ͦͷ··ʹͯ͠
    VGXJQUBCMFTͰϒϩοΫΛݕ౼͍ͯ͠Δ

    View Slide

  34. © DMM.com labo
    ΞδΣϯμ
    w (JU)VC&OUFSQSJTF$JSDMF$*&OUFSQSJTFΛಋೖͨ͠ཧ༝
    w (JU)VC&OUFSQSJTFαʔόߏ੒
    w $JSDMF$*&OUFSQSJTFαʔόߏ੒
    w ಋೖޮՌɺࣦഊஊͳͲ

    View Slide

  35. © DMM.com labo
    ಋೖޮՌɺࣦഊஊͳͲ

    View Slide

  36. © DMM.com labo
    ಋೖͯ͠ࢥ͏͜ͱ
    w ৽ن։ൃʹ()&$$*&Λબ୒ͯ͘͠ΕΔνʔϜ͕૿͑ͨ
    w ()&$$*&Λ྆ํ࢖͍ͬͯΔνʔϜ͸ɺ

    ςετͱσϓϩΠ͕ࣗಈԽ͞Ε͍ͯΔέʔε͕ଟ͍
    w ࠷ॳ͚ͩਃ੥͕͍Ζ͍Ζେม͕ͩɺ

    يಓʹ৐ͬͨޙͷ։ൃ͸ඇৗʹ΍Γ΍͘͢ͳͬͨ
    ಋೖͯ͠ྑ͔ͬͨ͜ͱ

    View Slide

  37. © DMM.com labo
    ಋೖͯ͠ࢥ͏͜ͱ
    w Ϋϥ΢υ൛͸৽ػೳ͕ϦϦʔε͞ΕΔͷ͕ૣ͍
    w ֎෦࿈ܞ΋͠΍͍͢
    w ֤νʔϜͰϦεΫΛ൑அ্ͨ͠Ͱར༻ͯ͠΋Β͍ͬͯΔ
    w ()&Λ࢖ͬͯ׳Εͯ΋ΒͬͯɺԿ͕ةͳ͍͔ཧղͨ͠Β

    Ϋϥ΢υ൛ʹҠߦ͢Δͷ͸ࢭΊͳ͍
    Ϋϥ΢υ൛Λ࢖͍͍ͨͱ͍͏੠΋ྑࣖ͘ʹ͢Δ

    View Slide

  38. © DMM.com labo
    ಋೖͯ͠ࢥ͏͜ͱ
    w ೥ؒӡ༻ͯ͠ɺམͪͨ͜ͱ͸Ұ౓΋ͳ͍
    w αϙʔτ͕ॆ࣮͍ͯ͠Δ
    w ϚΫχΧ͞Μͷଘࡏ
    ()&͸ൈ܈ͷ҆ఆײ

    View Slide

  39. © DMM.com labo
    ಋೖͯ͠ࢥ͏͜ͱ
    w Πϯελϯεͷதʹͨ͘͞Μͷ%PDLFS͕

    ಈ͍͍ͯΔ͍͔ͤɺͨ·ʹௐࢠ͕ѱ͘ͳΔ͜ͱ΋
    w ࣌ࠩΛߟྀͨ͠ϦεΫ؅ཧ͕େࣄ
    $$*&͸ӡ༻͕೉͍͠ɾɾɾ
    ࠷৽൛͕Ұ൪҆ఆ͍ͯ͠ΔͷͰɺڪΕͣະདྷʹਐ΋͏

    View Slide

  40. © DMM.com labo
    ࣦഊͨ͜͠ͱ
    w 0SHBOJ[BUJPOͰίϛϡχέʔγϣϯ͕ดͯ͡͠·͏
    w ࢀՃ͍ͯ͠ͳ͍0SHBOJ[BUJPOͷ׆ಈ͸ɺ

    ࣗൃతʹ୳͠ʹ͍͔ͳ͍ͱݟ͑ͳ͍
    0SHBOJ[BUJPOͷઃܭΛ͖ͪΜͱ΍Βͳ͔ͬͨ͜ͱ
    0SHBOJ[BUJPO͸ɺ࠷ॳʹ೦ೖΓʹઃܭ͠Α͏

    View Slide

  41. © DMM.com labo
    ·ͱΊ
    w ΞΫηε੍ݶͷϧʔϧ͕ଟ͘"84ͷηΩϡϦςΟάϧʔϓͰ଍
    Γͳ͘ͳΓͦ͏ͳΒɺVGXJQUBCMFTΛ࢖͓͏
    w $$*&͸/PNBEͱ%PDLFSͷߏ଄Λཧղ͠Α͏
    w 0SHBOJ[BUJPOઃܭ͸࠷ॳʹ͔ͬ͠Γ

    View Slide

  42. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide