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

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

B6d9eb9a3825f15c84b5e7588c56a405?s=47 DMM.com
February 16, 2018

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

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

B6d9eb9a3825f15c84b5e7588c56a405?s=128

DMM.com

February 16, 2018
Tweet

Transcript

  1. %..DPNϥϘɹ$50ࣨɹ౜ᖒཅհ %..DPNαʔϏε։ൃʹ͓͚Δ
 (JU)VC&OUFSQSJTF׆༻ͷཪଆ %FWFMPQFST4VNNJU ϋογϡλάɿEFWTVNJ" ηογϣϯ*%ɿ"

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

  3. © DMM.com labo ࣗݾ঺հ ౜ᖒཅհʢ͔Β͞ΘΑ͏͚͢ʣ w %..DPNϥϘɹ$50ࣨ w ೥ೖࣾ w

    (JU)VC&OUFSQSJTFΛத৺ͱͨ͠πʔϧͷߏஙɺӡ༻ɺ
 ར༻ऀ΁ͷٕज़ࢧԉͳͲΛ୲౰
  4. © DMM.com labo %..DPNʹ͍ͭͯ

  5. © DMM.com labo αʔϏεʹ͍ͭͯ %..DPN͸೥͔Β
 ଟ࠼ͳίϯςϯπΛఏڙ͍ͯ͠·͢ɻ IUUQTXXXENNDPN "CPVU%..DPN Ҏ্ͷ෯޿͍αʔϏεΛల։

  6. © DMM.com labo ΞδΣϯμ w (JU)VC&OUFSQSJTF$JSDMF$*&OUFSQSJTFಋೖͷഎܠ w (JU)VC&OUFSQSJTFαʔόߏ੒ w $JSDMF$*&OUFSQSJTFαʔόߏ੒

    w ಋೖޮՌɺࣦഊஊͳͲ
  7. © DMM.com labo ()&$$*&ಋೖͷഎܠ

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

    (JU)VCΛ࢓ࣄͰ࢖ͬͯΈ͍ͨͱ͍͏੠͕͕͋Δ
  9. © DMM.com labo w গਓ਺Ͱࢼݧతʹ࢖͍࢝ΊΔ w ᷚΛฉ͖͚ͭɺར༻ऀ͕ͲΜͲΜ૿͑Δ w ΈΜͳ(JU)VCΛ࢓ࣄͰ࢖͍͔ͨͬͨ (JU)VC༗ྉϓϥϯͷಋೖ

    ͜ͷ··(JU)VCΛ֦େ͢Δ͔ ΤϯλʔϓϥΠζ൛͔
  10. © DMM.com labo (JU)VC&OUFSQSJTFಋೖͷཧ༝ w ސ٬৘ใ΍ܾࡁΛѻ͏ίʔυ͸
 (JU)VCͷϓϥΠϕʔτϦϙδτϦαʔϏεʹஔ͚ͳ͍ ୭Ͱ΋҆৺ͯ͠ར༻Ͱ͖Δ؀ڥΛ ηΩϡϦςΟϦεΫ

  11. © DMM.com labo (JU)VC&OUFSQSJTFಋೖͷཧ༝ w ίϛϡχέʔγϣϯͷͱΓ΍͢͞ w ࢥߟͷ੾Γସ͑ͷগͳ͞ w ֎෦࿈ܞͷڧ͞

    ࠓ࢖͍ͬͯΔ(JUαʔόʔͰ͸μϝͳͷ͔ ࢖͍ͬͯͯؾ͕͍͍࣋ͪ ੜ࢈ੑͷ޲্͕ݟࠐΊΔ
  12. © DMM.com labo $JSDMF$*&OUFSQSJTFಋೖͷཧ༝ w $*؀ڥ ओʹ+FOLJOT ͷߏஙɾӡ༻ʹίετ͕͔͔Δ $*Λ͙͢ʹ࢝ΊΒΕΔ؀ڥΛఏڙ͍ͨ͠ $*ಋೖͷෑډΛԼ͍͛ͨ

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

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

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

    w ಋೖޮՌɺࣦഊஊͳͲ
  16. © DMM.com labo (JU)VC&OUFSQSJTFαʔόߏ੒

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

    5FSSBGPSNͱ"OTJCMFͰߏ੒؅ཧ
  18. © DMM.com labo ()&͸୯ମͷ&$ΠϯελϯεͰಈ࡞͢Δ w ".*͕ఏڙ͞Ε͓ͯΓ
 ηοτΞοϓ͸؆୯ w )"ߏ੒΋ίϚϯυΛ
 ਺ճ࣮ߦ͢Δ͚ͩͰઃఆͰ͖Δ

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

    ๏΋͕͋ͬͨɺ()&ʹ͸Ͱ͖Δͩ ͚खΛՃ͑ͨ͘ͳ͔ͬͨʢ౰࣌ʣ
  20. © DMM.com labo ()&ͷલʹಁաܕͷ1SPYZΛ഑ஔ

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

    1SPYZߏ੒͸ͭΒΈ͕ଟ͍ ()&ͷVGXJQUBCMFTͷݕ౼΋ࢹ໺ʹ
  22. © DMM.com labo ΞδΣϯμ w (JU)VC&OUFSQSJTF$JSDMF$*&OUFSQSJTFΛಋೖͨ͠ཧ༝ w (JU)VC&OUFSQSJTFαʔόߏ੒ w $JSDMF$*&OUFSQSJTFαʔόߏ੒

    w ಋೖޮՌɺࣦഊஊͳͲ
  23. © DMM.com labo $JSDMF$*&OUFSQSJTFαʔόߏ੒

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

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

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

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

  28. © DMM.com labo Wͷ৔߹

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

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

  31. © DMM.com labo ΧελϚΠζɹ#VJMEFSΛ1SJWBUF4VCOFUʹ w #VJMEFS͕(*1Λ͍࣋ͬͯΔͱ౎ ߹͕ѱ͍ w /"5(BUFXBZͰෳ਺ͷ#VJMEFS ͷૹ৴ݩ*1Λݻఆ

    w ར༻ऀ͕#VJMEFSʹ44)ͰΞΫη εͯ͠σόοάͰ͖ΔΑ͏ʹ౿Έ ୆ΠϯελϯεΛ༻ҙ
  32. © DMM.com labo ΧελϚΠζɹϏϧυঢ়گͷՄࢹԽ w /PNBE͕؅ཧ͍ͯ͠ΔϏϧυͷঢ় گΛݟΔʹ͸/PNBE4FSWFSͰ OPNBEDMJΛ࣮ߦ͠ͳ͍ͱ͍͚ͳ ͍ w

    Ϗϧυঢ়گΛ/PNBE6*ͰՄࢹԽ w /PNBE6*ͷ"1*͔ΒϏϧυঢ়گ Λऩू͠ɺϝτϦΫεΛ $MPVE8BUDIʹૹ৴
  33. © DMM.com labo $$*&ͷαʔόߏ੒ͷ՝୊ w ຊՈͷ5FSSBGPSN͕݁ߏͳස౓ͰมΘΔͷͰɺ5FSSBGPSNΛ ΧελϚΠζͯ͠͠·͏ͱมߋʹ͍͍ͭͯ͘ͷ͕େม 5FSSBGPSNͷηΩϡϦςΟάϧʔϓ 5FSSBGPSNͷηΩϡϦςΟάϧʔϓ͸ͦͷ··ʹͯ͠ VGXJQUBCMFTͰϒϩοΫΛݕ౼͍ͯ͠Δ

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

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

  36. © DMM.com labo ಋೖͯ͠ࢥ͏͜ͱ w ৽ن։ൃʹ()&$$*&Λબ୒ͯ͘͠ΕΔνʔϜ͕૿͑ͨ w ()&$$*&Λ྆ํ࢖͍ͬͯΔνʔϜ͸ɺ
 ςετͱσϓϩΠ͕ࣗಈԽ͞Ε͍ͯΔέʔε͕ଟ͍ w

    ࠷ॳ͚ͩਃ੥͕͍Ζ͍Ζେม͕ͩɺ
 يಓʹ৐ͬͨޙͷ։ൃ͸ඇৗʹ΍Γ΍͘͢ͳͬͨ ಋೖͯ͠ྑ͔ͬͨ͜ͱ
  37. © DMM.com labo ಋೖͯ͠ࢥ͏͜ͱ w Ϋϥ΢υ൛͸৽ػೳ͕ϦϦʔε͞ΕΔͷ͕ૣ͍ w ֎෦࿈ܞ΋͠΍͍͢ w ֤νʔϜͰϦεΫΛ൑அ্ͨ͠Ͱར༻ͯ͠΋Β͍ͬͯΔ

    w ()&Λ࢖ͬͯ׳Εͯ΋ΒͬͯɺԿ͕ةͳ͍͔ཧղͨ͠Β
 Ϋϥ΢υ൛ʹҠߦ͢Δͷ͸ࢭΊͳ͍ Ϋϥ΢υ൛Λ࢖͍͍ͨͱ͍͏੠΋ྑࣖ͘ʹ͢Δ
  38. © DMM.com labo ಋೖͯ͠ࢥ͏͜ͱ w ೥ؒӡ༻ͯ͠ɺམͪͨ͜ͱ͸Ұ౓΋ͳ͍ w αϙʔτ͕ॆ࣮͍ͯ͠Δ w ϚΫχΧ͞Μͷଘࡏ

    ()&͸ൈ܈ͷ҆ఆײ
  39. © DMM.com labo ಋೖͯ͠ࢥ͏͜ͱ w Πϯελϯεͷதʹͨ͘͞Μͷ%PDLFS͕
 ಈ͍͍ͯΔ͍͔ͤɺͨ·ʹௐࢠ͕ѱ͘ͳΔ͜ͱ΋ w ࣌ࠩΛߟྀͨ͠ϦεΫ؅ཧ͕େࣄ $$*&͸ӡ༻͕೉͍͠ɾɾɾ

    ࠷৽൛͕Ұ൪҆ఆ͍ͯ͠ΔͷͰɺڪΕͣະདྷʹਐ΋͏
  40. © DMM.com labo ࣦഊͨ͜͠ͱ w 0SHBOJ[BUJPOͰίϛϡχέʔγϣϯ͕ดͯ͡͠·͏ w ࢀՃ͍ͯ͠ͳ͍0SHBOJ[BUJPOͷ׆ಈ͸ɺ
 ࣗൃతʹ୳͠ʹ͍͔ͳ͍ͱݟ͑ͳ͍ 0SHBOJ[BUJPOͷઃܭΛ͖ͪΜͱ΍Βͳ͔ͬͨ͜ͱ

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

    0SHBOJ[BUJPOઃܭ͸࠷ॳʹ͔ͬ͠Γ
  42. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠