2018/02/16 Developers Summitでの登壇資料となります。 DMM.comラボでは1年前から新しい開発基盤としてGitHub Enterpriseを利用しています。これまであまり表に出てこなかった、DMM.comラボの新しい開発基盤の導入経緯や導入効果、失敗談、変化に対応しつつ安定した基盤を提供するために実践していることをお話します。GitHub Enterpriseと連動するCIツールやタスク管理ツールについてもお話します。
%..DPNϥϘɹ$50ࣨɹᖒཅհ%..DPNαʔϏε։ൃʹ͓͚Δ (JU)VC&OUFSQSJTF׆༻ͷཪଆ%FWFMPQFST4VNNJUϋογϡλάɿEFWTVNJ"ηογϣϯ*%ɿ"
View Slide
© DMM.com labow αʔόߏw ͲΜͳ͜ͱΛߟ͑ͯӡ༻Λ͍ͯ͠Δ͔ࠓ͓͢Δ͜ͱ(JU)VC&OUFSQSJTFɺ$JSDMF$*&OUFSQSJTFͷӡ༻ͷͰ͢
© DMM.com laboࣗݾհᖒཅհʢ͔Β͞ΘΑ͏͚͢ʣw %..DPNϥϘɹ$50ࣨw ೖࣾw (JU)VC&OUFSQSJTFΛத৺ͱͨ͠πʔϧͷߏஙɺӡ༻ɺ ར༻ऀͷٕज़ࢧԉͳͲΛ୲
© DMM.com labo%..DPNʹ͍ͭͯ
© DMM.com laboαʔϏεʹ͍ͭͯ%..DPN͔Β ଟ࠼ͳίϯςϯπΛఏڙ͍ͯ͠·͢ɻIUUQTXXXENNDPN"CPVU%..DPNҎ্ͷ෯͍αʔϏεΛల։
© DMM.com laboΞδΣϯμw (JU)VC&OUFSQSJTF$JSDMF$*&OUFSQSJTFಋೖͷഎܠw (JU)VC&OUFSQSJTFαʔόߏw $JSDMF$*&OUFSQSJTFαʔόߏw ಋೖޮՌɺࣦഊஊͳͲ
© DMM.com labo()&$$*&ಋೖͷഎܠ
© DMM.com labow ϓϧϦΫΤετΛ༻͍ͨ(JUͷ։ൃϑϩʔطʹ͋ͬͨw ϓϩδΣΫτཧɺόάτϥοΩϯάɺใཧπʔϧ౷߹͞Εͭͭ͋ͬͨͱͱࣾͷ(JUαʔόʔΛ͍ͬͯͨͦΜͳঢ়گͷதɺΤϯδχΞ͔Β(JU)VCΛࣄͰͬͯΈ͍ͨͱ͍͏͕͕͋Δ
© DMM.com labow গਓͰࢼݧతʹ͍࢝ΊΔw ᷚΛฉ͖͚ͭɺར༻ऀ͕ͲΜͲΜ૿͑Δw ΈΜͳ(JU)VCΛࣄͰ͍͔ͨͬͨ(JU)VC༗ྉϓϥϯͷಋೖ͜ͷ··(JU)VCΛ֦େ͢Δ͔ΤϯλʔϓϥΠζ൛͔
© DMM.com labo(JU)VC&OUFSQSJTFಋೖͷཧ༝w ސ٬ใܾࡁΛѻ͏ίʔυ (JU)VCͷϓϥΠϕʔτϦϙδτϦαʔϏεʹஔ͚ͳ͍୭Ͱ҆৺ͯ͠ར༻Ͱ͖ΔڥΛηΩϡϦςΟϦεΫ
© DMM.com labo(JU)VC&OUFSQSJTFಋೖͷཧ༝w ίϛϡχέʔγϣϯͷͱΓ͢͞w ࢥߟͷΓସ͑ͷগͳ͞w ֎෦࿈ܞͷڧ͞ࠓ͍ͬͯΔ(JUαʔόʔͰμϝͳͷ͔͍ͬͯͯؾ͕͍͍࣋ͪੜ࢈ੑͷ্͕ݟࠐΊΔ
© DMM.com labo$JSDMF$*&OUFSQSJTFಋೖͷཧ༝w $*ڥ ओʹ+FOLJOTͷߏஙɾӡ༻ʹίετ͕͔͔Δ$*Λ͙͢ʹ࢝ΊΒΕΔڥΛఏڙ͍ͨ͠$*ಋೖͷෑډΛԼ͍͛ͨ
© DMM.com labo݄(JUIVC&OUFSQSJTF$JSDMF$*&OUFSQSJTFӡ༻։࢝
© DMM.com laboޙʹ;FO)VC&OUFSQSJTFؒೖΓw ݄ࠒʹӡ༻։࢝w (JU)VCར༻࣌ʹҰ෦ͷνʔϜ͕ར༻͍ͯͨ͠w ()&Ͱ;FO)VCΛ͍͍ͨཁ͔ΒಋೖΛܾΊΔ
© DMM.com laboΞδΣϯμw (JU)VC&OUFSQSJTF$JSDMF$*&OUFSQSJTFΛಋೖͨ͠ཧ༝w (JU)VC&OUFSQSJTFαʔόߏw $JSDMF$*&OUFSQSJTFαʔόߏw ಋೖޮՌɺࣦഊஊͳͲ
© DMM.com labo(JU)VC&OUFSQSJTFαʔόߏ
© DMM.com labo"84্ʹߏஙw $$*&͕5FSSBGPSNΛఏڙ͍ͯͯ͠ɺ"84ਪʹݟ͑ͨw ӡ༻͠ͳ͕ΒΠϯϑϥ͕ͲΜͲΜมΘ͍ͬͯͬͨͷͰ ݁Ռతʹ"84Λબͯ͠Α͔ͬͨw 5FSSBGPSNͱ"OTJCMFͰߏཧ
© DMM.com labo()&୯ମͷ&$ΠϯελϯεͰಈ࡞͢Δw ".*͕ఏڙ͞Ε͓ͯΓ ηοτΞοϓ؆୯w )"ߏίϚϯυΛ ճ࣮ߦ͢Δ͚ͩͰઃఆͰ͖Δ
© DMM.com labo()&ͷΞΫηεΛ੍ݶ͍ͨ͠w &$71$ͷηΩϡϦςΟάϧʔϓʹ্ݶ͕͋Γɺ͙͢ʹΓͳ͘ͳΔ͜ͱ͕༧͞Εͨw VGXJQUBCMFTͳͲͰ੍ݶ͢Δํ๏͕͋ͬͨɺ()&ʹͰ͖Δ͚ͩखΛՃ͑ͨ͘ͳ͔ͬͨʢ࣌ʣ
© DMM.com labo()&ͷલʹಁաܕͷ1SPYZΛஔ
© DMM.com labo1SPYZߏͰӡ༻ͯ͠ݟ͖͑ͯͨ՝w 1SPYZΠϯελϯεͷཧ͕݁ߏେมw 1SPYZ͕ݪҼͰ()&ʹΞΫηεͰ͖ͳ͘ͳͬͨ͜ͱw "84ྉۚͦΕͳΓʹ͔͔Δ1SPYZߏͭΒΈ͕ଟ͍()&ͷVGXJQUBCMFTͷݕ౼ࢹʹ
© DMM.com labo$JSDMF$*&OUFSQSJTFαʔόߏ
© DMM.com labo$$*&ͷΠϯϑϥߏͷϙΠϯτw $JSDMF$*͕ࣾ5FSSBGPSNΛ(JU)VCͰެ։͍ͯ͠Δw "84্ʹ$$*&͕ಈ࡞͢ΔڥΛૉૣ͘ߏஙͰ͖Δ
© DMM.com labo$JSDMF$*ࣾఏڙͷ5FSSBGPSNͰߏஙͨ͠ڥ
© DMM.com laboഒΛ্͛ͯΠϯελϯεͷதΛݟΔͱ
© DMM.com laboWͷNBDIJOFUSVFͷ߹
© DMM.com laboWͷ߹
© DMM.com labo$JSDMF$*͕ࣾެ։͢Δ5FSSBGPSNΛΧελϚΠζ ηΩϡϦςΟάϧʔϓͷมߋ #VJMEFSΛ1SJWBUF4VCOFUʹҠಈ WܥͷϏϧυঢ়گΛ/PNBE6*ͰՄࢹԽ
© DMM.com laboΧελϚΠζ̍ɹηΩϡϦςΟʔάϧʔϓw ʹ։์͞Ε͍ͯΔͷͰด͡Δw ฤूՕॴ݁ߏଟ͍
© DMM.com laboΧελϚΠζɹ#VJMEFSΛ1SJWBUF4VCOFUʹw #VJMEFS͕(*1Λ͍࣋ͬͯΔͱ߹͕ѱ͍w /"5(BUFXBZͰෳͷ#VJMEFSͷૹ৴ݩ*1Λݻఆw ར༻ऀ͕#VJMEFSʹ44)ͰΞΫηεͯ͠σόοάͰ͖ΔΑ͏ʹ౿ΈΠϯελϯεΛ༻ҙ
© DMM.com laboΧελϚΠζɹϏϧυঢ়گͷՄࢹԽw /PNBE͕ཧ͍ͯ͠ΔϏϧυͷঢ়گΛݟΔʹ/PNBE4FSWFSͰOPNBEDMJΛ࣮ߦ͠ͳ͍ͱ͍͚ͳ͍w Ϗϧυঢ়گΛ/PNBE6*ͰՄࢹԽw /PNBE6*ͷ"1*͔ΒϏϧυঢ়گΛऩू͠ɺϝτϦΫεΛ$MPVE8BUDIʹૹ৴
© DMM.com labo$$*&ͷαʔόߏͷ՝w ຊՈͷ5FSSBGPSN͕݁ߏͳසͰมΘΔͷͰɺ5FSSBGPSNΛΧελϚΠζͯ͠͠·͏ͱมߋʹ͍͍ͭͯ͘ͷ͕େม5FSSBGPSNͷηΩϡϦςΟάϧʔϓ5FSSBGPSNͷηΩϡϦςΟάϧʔϓͦͷ··ʹͯ͠VGXJQUBCMFTͰϒϩοΫΛݕ౼͍ͯ͠Δ
© DMM.com laboಋೖޮՌɺࣦഊஊͳͲ
© DMM.com laboಋೖͯ͠ࢥ͏͜ͱw ৽ن։ൃʹ()&$$*&Λબͯ͘͠ΕΔνʔϜ͕૿͑ͨw ()&$$*&Λ྆ํ͍ͬͯΔνʔϜɺ ςετͱσϓϩΠ͕ࣗಈԽ͞Ε͍ͯΔέʔε͕ଟ͍w ࠷ॳ͚ͩਃ͕͍Ζ͍Ζେม͕ͩɺ يಓʹͬͨޙͷ։ൃඇৗʹΓ͘͢ͳͬͨಋೖͯ͠ྑ͔ͬͨ͜ͱ
© DMM.com laboಋೖͯ͠ࢥ͏͜ͱw Ϋϥυ൛৽ػೳ͕ϦϦʔε͞ΕΔͷ͕ૣ͍w ֎෦࿈ܞ͍͢͠w ֤νʔϜͰϦεΫΛஅ্ͨ͠Ͱར༻ͯ͠Β͍ͬͯΔw ()&Λͬͯ׳ΕͯΒͬͯɺԿ͕ةͳ͍͔ཧղͨ͠Β Ϋϥυ൛ʹҠߦ͢ΔͷࢭΊͳ͍Ϋϥυ൛Λ͍͍ͨͱ͍͏ྑࣖ͘ʹ͢Δ
© DMM.com laboಋೖͯ͠ࢥ͏͜ͱw ؒӡ༻ͯ͠ɺམͪͨ͜ͱҰͳ͍w αϙʔτ͕ॆ࣮͍ͯ͠Δw ϚΫχΧ͞Μͷଘࡏ()&ൈ܈ͷ҆ఆײ
© DMM.com laboಋೖͯ͠ࢥ͏͜ͱw Πϯελϯεͷதʹͨ͘͞Μͷ%PDLFS͕ ಈ͍͍ͯΔ͍͔ͤɺͨ·ʹௐࢠ͕ѱ͘ͳΔ͜ͱw ࣌ࠩΛߟྀͨ͠ϦεΫཧ͕େࣄ$$*&ӡ༻͕͍͠ɾɾɾ࠷৽൛͕Ұ൪҆ఆ͍ͯ͠ΔͷͰɺڪΕͣະདྷʹਐ͏
© DMM.com laboࣦഊͨ͜͠ͱw 0SHBOJ[BUJPOͰίϛϡχέʔγϣϯ͕ดͯ͡͠·͏w ࢀՃ͍ͯ͠ͳ͍0SHBOJ[BUJPOͷ׆ಈɺ ࣗൃతʹ୳͠ʹ͍͔ͳ͍ͱݟ͑ͳ͍0SHBOJ[BUJPOͷઃܭΛ͖ͪΜͱΒͳ͔ͬͨ͜ͱ0SHBOJ[BUJPOɺ࠷ॳʹ೦ೖΓʹઃܭ͠Α͏
© DMM.com labo·ͱΊw ΞΫηε੍ݶͷϧʔϧ͕ଟ͘"84ͷηΩϡϦςΟάϧʔϓͰΓͳ͘ͳΓͦ͏ͳΒɺVGXJQUBCMFTΛ͓͏w $$*&/PNBEͱ%PDLFSͷߏΛཧղ͠Α͏w 0SHBOJ[BUJPOઃܭ࠷ॳʹ͔ͬ͠Γ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠