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

Git インフラ選定事例 - 株式会社クルウィットが GitHub を選んだ理由

Git インフラ選定事例 - 株式会社クルウィットが GitHub を選んだ理由

GitHub 勉強会 in Kanazawa (Kanazawa.rb meetup 61 2017/09/16) の発表資料。
Git インフラとして GitHub を選択するにいたった評価軸に関するお話。

Tomokazu Kiyohara

September 16, 2017
Tweet

More Decks by Tomokazu Kiyohara

Other Decks in Programming

Transcript

  1. (JUΠϯϑϥબఆࣄྫ
    גࣜձࣾΫϧ΢Οοτ͕(JU)VCΛબΜͩཧ༝

    (JU)VCษڧձJO,BOB[BXB
    ,BOB[BXBSCNFFUVQ

    View Slide

  2. גࣜձࣾΫϧ΢Οοτ
    w ݚڀҊ݅ͱ͔։ൃҊ݅΍ͬͯΔۚ୔ͷձࣾ
    w খن໛
    w ϦϙδτϦ͋ͨΓͷίϛολ͸d໊ͱ͍ͬͨͱ͜Ζ
    w ڠྗձࣾ͞ΜͱίϥϘϨʔγϣϯ͢Δ͜ͱ͕ଟ͍

    View Slide

  3. #FGPSF
    w ڞ༗αʔό POQSFNJTF
    ্ʹڞ༗σΟϨΫτϦΛ࡞੒͠ɺ
    ֤͕ࣗTTIܦ༝ͰTIBSFEϦϙδτϦΛར༻
    w ڠྗձࣾ͞ΜͱͷίϥϘʹར༻Ͱ͖ͳ͔ͬͨ
    w ར༻Ͱ͖Δπʔϧྨ͕ݶఆ͞Ε͍ͯͨʢTTIܦ༝ނʣ
    w XJOEPXTTTI໰୊ͱ͔΋
    w αʔόʔӡ༻ίετ͸ਓతۚમతڞʹ΄΅θϩ

    View Slide

  4. ཁ݅
    w ϓϥΠϕʔτϦϙδτϦΛӡ༻Ͱ͖Δ͜ͱ
    w ਓతӡ༻ίετ͕೥ਓ೔ఔ౓ʹ཈͑ΒΕΔ͜ͱ
    w ۚમతӡ༻ίετ͕݄਺ສఔ౓ʹ཈͑ΒΕΔ͜ͱ
    w ϦϙδτϦ୯ҐͷήετΞΫηεΛ࣮ݱ͢Δ͜ͱ
    w *TTVF؅ཧ͕Ͱ͖Δ͜ͱ
    w ෇ଳ৘ใ؅ཧ͕Ͱ͖Δ͜ͱʢXJLJ౳ʣ

    View Slide

  5. ཁ͔݅Βআ֎ͨ͠΋ͷ
    w ࣾ֎ͷΠϯϑϥʹϗεςΟϯά͠ͳ͍͜ͱ
    w ৘ใ࿙ӮϦεΫͷ࠷খԽΛ࠷༏ઌͱ͢Δ͜ͱ
    w ো֐ൃੜ࣌ͷίετ࠷খԽΛ༏ઌ͢Δ͜ͱ
    w $*౳ͷ֎෦αʔϏε࿈ܞ͕ॆ࣮͍ͯ͠Δ͜ͱ
    w ωοτϫʔΫϨϕϧͰͷΞΫηε੍ݶ͕Ͱ͖Δ͜ͱ
    w 71/΍*1ΞυϨεϑΟϧλϦϯά౳

    View Slide

  6. ͬ͘͟Γީิ
    w (JU)VC (JU)VCIPTUJOH

    w (JU)VC&OUFSQSJTF POQSFNJTF

    w #JU#VDLFU #JU#VDLFUIPTUJOH

    w #JU#VDLFU4FSWFS POQSFNJTF

    w (JU-BC (JU-BCIPTUJOH(JU)PTUJPIPTUJOH

    w "TTFNCMB "TTFNCMBIPTUJOH

    w 1IBCSJDBUPS POQSFNJTF1IBCSJDBUPSIPTUJOH

    View Slide

  7. ߜΓࠐΈͦͷ
    w POQSFNJTF͸΍ΊΔ
    w ਓతӡ༻ίετΛͱʹ͔͘Լ͍͛ͨ

    View Slide

  8. ߜΓࠐΈͦͷ
    w ʮଟػೳ͕ͩߴՁʯͰ͸ͳ͘ʮγϯϓϧͰ҆Ձʯ
    w ଟ༷ͳϓϩδΣΫτΛଟ༷ͳڠྗձࣾ͞Μͱ
    w ֶशίετ͕ߴ͍΋ͷ͸࢖͍ʹ͍͘
    w ϓϩδΣΫτϚωδϝϯτͷํࣜΛ୯ҰԽͰ͖ͳ͍

    View Slide

  9. ߜΓࠐΈͦͷ
    w ʢՄೳͳൣғͰʣαʔϏε਺Λগͳ͘
    w ϗεςΟϯά౳ʮ૊Έ߹ΘͤΔʯෳࡶੑ૿Ճ
    w ෳࡶੑ͸ো֐࣌ʹ͓͍ͯ΋ӡ༻࣌ʹ͓͍ͯ΋

    ਓతίετͷ૿େʹͭͳ͕Δ
    w ͱʹ͔͘ਓతίετͷ૿Ճ͸͚͍ͨ͞

    View Slide

  10. ͬ͘͟ΓީิSFW
    w (JU)VC (JU)VCIPTUJOH

    w #JU#VDLFU #JU#VDLFUIPTUJOH

    w (JU-BC (JU-BCIPTUJOH

    View Slide

  11. ͜͜·Ͱ͸ͲͪΒ͔ͱ͍͏ͱ
    ʮ։ൃऀɾӡӦऀʯ

    ͷࢹ఺ͰͷߜΓࠐΈ
    ͔͜͜Β͸ͲͪΒ͔ͱ͍͏ͱ

    ʮӦۀɾܦӦऀʯ

    ͷࢹ఺ͰͷߜΓࠐΈ

    View Slide

  12. ো֐ൃੜ࣌ͷ
    ର֎తͳઆ໌ͷ͠΍͢͞
    w γεςϜ͕μ΢ϯͨ͠ͱ͖ʹର֎తͳઆ໌ʹར༻Ͱ͖Δ

    ৘ใ͕ެ։͞Ε͍ͯΔ͔
    w γεςϜ͕ʮμ΢ϯ͠ͳ͍͜ͱʯͰ͸ͳ͍
    w 4UBUVTϖʔδ
    w IUUQTTUBUVTHJUIVCDPN
    w IUUQTTUBUVTCJUCVDLFUPSH
    w IUUQTTUBUVTHJUMBCDPN

    View Slide

  13. ো֐ൃੜ࣌ͷ
    ର֎తͳઆ໌ͷ͠΍͢͞
    w γεςϜ͕μ΢ϯͨ͠ͱ͖ʹର֎తͳઆ໌ʹར༻Ͱ͖Δ

    ৘ใ͕ެ։͞Ε͍ͯΔ͔
    w γεςϜ͕ʮμ΢ϯ͠ͳ͍͜ͱʯͰ͸ͳ͍
    w 4UBUVTϖʔδ
    w IUUQTTUBUVTHJUIVCDPN
    w IUUQTTUBUVTCJUCVDLFUPSH
    w IUUQTTUBUVTHJUMBCDPN
    $VSSFOU4UBUVT͕

    ϝΠϯͰ

    աڈʹى͖ͨো֐ͷ

    ݸผϖʔδ͕ͳ͍
    ˓
    ˓
    ˚

    View Slide

  14. ஌໊౓
    w ར༻͍ͯ͠Δڠྗձࣾ͞Μͷׂ߹
    w ύʔτφʔબఆج४ύʔτφʔֶशίετ
    w ো֐ൃੜ࣌ͷސ٬΁ͷઆ໌ͷ͠΍͢͞
    w "84μ΢ϯ͸ʮ͍͍Θ͚ʯ͠΍͍͢໰୊
    w ࠾༻ʹ͔͔ΔΞυόϯςʔδ

    View Slide

  15. ஌໊౓
    (PPHMFτϨϯυIUUQTUSFOETHPPHMFDPKQUSFOETFYQMPSF EBUFUPEBZZRHJUIVC CJUCVDLFU HJUMBC

    View Slide

  16. αʔϏεӬଓੑ
    w ձࣾͷΠϯϑϥͱͯ͠࠾༻͢ΔͳΒ೥͸อͬͯཉ͍͠
    w ΠϯϑϥαʔϏεͷҠߦ͸ͱʹ͔͘ίετ͕ߴ͍
    w %7$4ͳ(JUϦϙδτϦࣗମ͸Ҡߦ͕؆୯
    w ͔͠͠*TTVF΍8JLJ΍࿈ܞ͢ΔΤίγεςϜ͸ʜ
    w DPEFCSFBL໰୊
    w IUUQTBZPOBSBDPEFCSFBLDPN

    View Slide

  17. ֶशίετ
    w ֶशίετ͸௿͚Ε͹௿͍΄ͲΑ͍
    w ʮͰ͖Δࢠʯ͹͔Γ࠾༻Ͱ͖ΔͳΒʜ
    w ཧղ͠΍͍͢6*ʹͳ͍ͬͯΔ͔
    w 6*υΩϡϝϯτͷ೔ຊޠॆ࣮౓
    w ར༻ཁ͕݅ଟ͘ͳ͍͔

    View Slide

  18. ֶशίετ
    w ֶशίετ͸௿͚Ε͹௿͍΄ͲΑ͍
    w ʮͰ͖Δࢠʯ͹͔Γ࠾༻Ͱ͖ΔͳΒʜ
    w ཧղ͠΍͍͢6*ʹͳ͍ͬͯΔ͔
    w 6*υΩϡϝϯτͷ೔ຊޠॆ࣮౓
    w ར༻ཁ͕݅ଟ͘ͳ͍͔
    #JU#VDLFU͸͔ͳΓॆ࣮
    ͍ͯ͠Δҹ৅

    View Slide

  19. ֶशίετ
    w ֶशίετ͸௿͚Ε͹௿͍΄ͲΑ͍
    w ʮͰ͖Δࢠʯ͹͔Γ࠾༻Ͱ͖ΔͳΒʜ
    w ཧղ͠΍͍͢6*ʹͳ͍ͬͯΔ͔
    w 6*υΩϡϝϯτͷ೔ຊޠॆ࣮౓
    w ར༻ཁ͕݅ଟ͘ͳ͍͔
    ϒϥ΢β্͔Βฤूɾίϛοτɾ13Ͱ͖Δػೳ͸͔ͳΓ༗༻
    (JU)VCͱ#JU#VDLFU͕ެࣜΞϓϦΛ
    ग़͍ͯ͠Δͷ͸
    ࣮͸͔ͳΓͷΞυόϯςʔδ

    View Slide

  20. (JU)VC%FTLUPQ

    WT

    4PVSDF5SFF

    View Slide

  21. (JU)VC%FTLUPQ

    WT

    4PVSDF5SFF
    ࿩͕௕͘ͳΔͷͰผͷػձʹ
    ͨͩ͠
    ʮެࣜΞϓϦ͸৺ཧతʹ҆৺Ͱ͖Δʯ͚ͩͰ͸ͳ͘
    ػೳతͳαϙʔτ΋ݟਾ͑ͯ
    ͱݴ͏఺͸৮Ε͓͖͍ͯͨ
    4PVSDF5SFFͰ(JU)VC͔ͭ͑͹͑͑΍Μ
    ͱ͍͏࿩͔Β΋͏Ұา౿ΈࠐΜͰධՁ͍ͨ͠

    View Slide

  22. ࢧ෷͍ํ๏
    w ۜߦৼΓࠐΈ͕͍͍
    w ΫϨδοτΧʔυ͸Ͱ͖Ε͹࢖͍ͨ͘ͳ͍
    w ԁݐͯͰͰ͖Δͱ΋ͬͱ͍͍
    w ൺֱతະདྷʹֹ͔͚͕ͯۚ༧૝͠΍͍͢͜ͱ͸ॏཁ
    w ैྔ੍ͷαʔϏεͱ͔ϚδͰ΍Ίͯཉ͍͠

    View Slide

  23. ࢧ෷͍ํ๏
    w ۜߦৼΓࠐΈ͕͍͍
    w ΫϨδοτΧʔυ͸Ͱ͖Ε͹࢖͍ͨ͘ͳ͍
    w ԁݐͯͰͰ͖Δͱ΋ͬͱ͍͍
    w ൺֱతະདྷʹֹ͔͚͕ͯۚ༧૝͠΍͍͢͜ͱ͸ॏཁ
    w ैྔ੍ͷαʔϏεͱ͔ϚδͰ΍Ίͯཉ͍͠
    (JU)VC΋#JUCVDLFU΋ΤϯλʔϓϥΠζ޲͚ʹ͸
    ۜߦৼΓࠐΈ΍ԁݐͯʹରԠ͍ͯ͠Δ
    ͔͠͠ɺ௨ৗ͸ΫϨδοτΧʔυ෷͍ͷΈ

    View Slide

  24. ۚમతӡ༻ίετ
    w ฐࣾϢʔβ਺Λͱ૝ఆ
    w ϦϙδτϦ਺͸਺ඦΛ૝ఆ

    View Slide

  25. ۚમతӡ༻ίετ
    (JU)VC #JU#VDLFU (JU-BC
    NPOUI
    JOJUJBM VTFS

    VTS
    NPOUI
    JOJUJBM VTFS

    VTFS
    NPOUI

    View Slide

  26. ࠷ऴ൑அ

    View Slide

  27. (JU)VC

    View Slide

  28. ૯ධ
    w ػೳతʹ͸͍ͣΕ΋ཁ݅Λຬ͍ͨͯͨ͠

    View Slide

  29. ૯ධ
    w (JU)VCͷѹ౗తͳ஌໊౓͕ܾΊख
    w ڠྗձࣾ͞Μͷར༻཰͕ߴ͍
    w αʔϏεӬଓੑʹର͢Δ҆৺ײ
    w ࿈ܞαʔϏεɾΤίγεςϜશମͰΈͨظ଴ײ
    w ೔ຊޠυΩϡϝϯτ΋ʢୈࡾऀʹΑΔ͕ʣଟ਺ωοτ
    Ͱ֬ೝͰ͖Δ

    View Slide

  30. ૯ධ
    w ཁ݅ͷ߹க౓͚ͩͰ͍͑͹#JU#VDLFU
    w (JU)VCͱ΄΅ಉ͜͡ͱΛ҆Ձʹ࣮ݱͰ͖Δ
    w ཁ݅ͷ༏ઌॱҐʹΑͬͯ͸બ୒͍ͯͨ͠
    w +*3"͕͍͍ɺͱ͔
    w ࣗࣾʹดͯ͡ར༻͢Δ৔߹ɺͱ͔

    View Slide

  31. ૯ධ
    w (JU-BCͷۚમతӡ༻ίετʮθϩʯ͸େ͖͍͕ʜ
    w ஌໊౓΍ύϑΥʔϚϯε΋ؚΊͯ૯߹Ͱߟ͑Δͱଞࣾ
    ʹਫΛ͚͋ΒΕͨ
    w ໊ҎԼͳΒ#JU#VDLFU΋λμͩ͠

    View Slide

  32. "GUFS
    w ڠྗձࣾ͞Μͱ༰қʹιʔεڞ༗Ͱ͖ΔΑ͏ʹͳͬͨ
    w *TTVF؅ཧ΋௥ՃίετθϩͰͰ͖Δͷ͸༧૝Ҏ্ʹศར
    w ਓతӡ༻ίετ͸΄΅θϩΛҡ࣋
    w ӡ༻ϧʔϧ࡞Γʹίετ͕ൃੜ͍ͯ͠Δ
    w ࣾ಺ͷ8JOEPXTϢʔβʔ͔Βتͼͷ੠
    w ར༻Ͱ͖Δπʔϧྨ͕Ұؾʹ;͑ͨ
    w ʮ(ɾ6ɾ*αΠίʔʯͱ͍͏ݬௌ΋

    View Slide

  33. ͓·͚
    w ͍·ͩʹࣾ֎Πϯϑϥʹॏཁͳ৘ใΛϗεςΟϯάͯ͠

    ͍Δ͜ͱʹෆ҆ͷ੠΋͋Δ
    w (JU)VC༝དྷͷ৘ใ࿙Ӯͱ͍͏ΑΓ΋ฐࣾΤϯδχΞͷ
    ઃఆϛεͱ͍ͬͨਓతͳࣄނͷํΛݒ೦͞ΕΔ͜ͱ͕
    ଟ͍ҹ৅
    w ܧଓͯ͠ࢪࡦΛ͏͍ͪͨͱ͜Ζ͕ͩɺͯ͞ʜ

    View Slide

  34. 5PNPLB[V,JZPIBSB
    IUUQHJUIVCDPNLJZPIBSB
    IUUQGBDFCPPLDPNUPNPLB[VLJZPIBSB
    5IBOLZPV

    View Slide