Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DeNAが歩んだデプロイ自動化への道
Search
青猫
September 24, 2014
0
2.7k
DeNAが歩んだデプロイ自動化への道
青猫
September 24, 2014
Tweet
Share
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Adopting Sorbet at Scale
ufuk
77
9.5k
The Invisible Side of Design
smashingmag
301
51k
BBQ
matthewcrist
89
9.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
7
330
Building Adaptive Systems
keathley
43
2.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.1k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Transcript
%F/"͕าΜͩσϓϩΠࣗಈԽͷಓ :"1$"4*"50,:0 ੨ೣ BPOFLP
ຊϓϨθϯςʔγϣϯݸਓͷߟ͑Λड़ͨͷͰ͋Γɺ גࣜձࣾσΟʔɾΤψɾΤʔͷཱํΛөͨ͠ͷ Ͱ͋Γ·ͤΜɻ
BCPVUNF ੨ೣ BPOFLP ΞϓϦέʔγϣϯΤϯδχΞ גࣜձࣾσΟʔɾΤψɾΤʔ ϓϥοτϑΥʔϜγεςϜ෦ .PCBHF1MBUGPSN։ൃʹैࣄ
! w ͳͥʮσϓϩΠͷࣗಈԽʯͳͷ͔ w .PCBHFΞʔΩςΫνϟʹ͍ͭͯ w σϓϩΠࣗಈԽಋೖͷ࣮ྫ BHFOEB
҆શֶ ҆શֶͱɺۀɺҩֶɺࣾձੜ׆ʹ͓͍ͯɺ γεςϜڭҭɺ۩ػցஔྨʹΑΔࣄނ ࡂΛى͜Γʹ͍͘Α͏ʹ͢Δɺ҆શੑΛٻɾ վળ͢ΔֶͷҰͰ͋Δɻ XJLJQFEJB
ΞΠσΞ͔ΒϓϩμΫτ·Ͱ
͘ɺ҆શʹಧ͚Δ
εϐʔυº࣭ºίετ ͷτϨʔυΦϑ
εϐʔυͱཱ࣭྆Ͱ͖ͳ͍ͷ͔ʁ ͋Δҙຯ:&4ɺ͋Δҙຯ/0ɻ
Ͳ͕͍ͬͪ Ͳ͕ͬͪ҆શ
“ࣗಈԽ” ! ਓؒͰ͋ΔҎ্ඞࣦͣഊى͜Γ͏Δ ਓؒʹͤΔᘳͳରԠࡦͱ͍͏ͷͳ͍
શͯग़ՙϓϩηεʹݱΕΔ
ѱ͍γεςϜ΄Ͳ͕ޙʹͳͬͯൃݟ͞ΕΔɻ ࠷ޙͷϓϩηεͰ͋Δग़ՙΛݟ͢͜ͱɺ ϦϦʔεαΠΫϧͦͷͷͷվળͱͳΔɻ
ϦϦʔεʹࠔ͞Λײ͡Δ͔Ͳ͏͔͕ɺ γεςϜͷ҆શੑͷࢦඪͱͳΔɻ
ϦϦʔεϓϩηεͷࣗಈԽΛ ߟ͑Εɺ γεςϜͷࣗড়࡞༻͕ಇ͘
ʊਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹಥવͷ.PCBHFΞʔΩςΫνϟɹʻ ʉ:?:?:?:?:?:?:?:?:?:?:?:?:?:?:ʉ
.PCBHFͷḷͬͨࣄۀϑΣΠζ w w ܞଳ4/4ʮϞόήʔλϯʯαʔϏε։࢝ w w ձһ͕ສਓΛಥഁ w
w ιʔγϟϧήʔϜίϯςϯπͷ৴Λ։࢝ w w ΦʔϓϯϓϥοτϑΥʔϜ w ʮϞόήʔλϯGPS4NBSUQIPOFʯαʔϏε։࢝
࠷ॳҰਓͰ։ൃɾӡ༻Λ࢝Ίͨখ͞ͳγεςϜ͕ɺ ࣄۀͷͱͱʹͦͷ··ංେԽͯ͠͠·ͬͨɻ
ϩʔϯνॳ͔Βͷ $PNQPOFOU ! ! ೝূɺܾࡁɺ4/4ػೳɺੳɺήʔϜʜ ലେͳྔͷػೳɺίϯςϯπ͕ ௨শz$POUBJOFSzʹ٧Ίࠐ·Ε͍ͯΔɻ ! ΘΕͯΔͷ͔Α͘Θ͔ΒΜݹ͘ෳࡶͳίʔυ ਖ਼͍༷͠Α͘Θ͔Βͳ͍
ςετͪΖΜ΄ͱΜͲͳ͍ ։ൃͱຊ൪ͷڥࠩ ! ϦϦʔεखॱ͕ࡶͰɺඇৗʹࠔ ։ൃεϐʔυ্͕͕Βͳ͍
͍͔ʹͯ͠ϨΨγʔ͔Β ٫͢Δ͔
.PCBHF1MBUGPSN"SDIJUFDUVSF 1SPYZ4FSWFS (BNF4FSWFS $POUBJOFS &OE 6TFS 4PDJBM"1* 4FSWFS %# *OUFSOBM"1*T
దͳαΠζͱɺ ͦΕ͚ͩͰ༏Εͨ͜ͱͰ͋Δɻ
4FSWJDF0SJFOUFE"SDIJUFDUVSF (BNF4FSWFS $POUBJOFS &OE 6TFS 4PDJBM"1*4FSWFS *OUFSOBM"1* *OUFSOBM"1*ʜ 4FSWJDF 0QFO*%$POOFDU
"VUIPSJ[BUJPO4FSWFS 4FSWJDFʜ
4FSWJDF0SJFOUFE"SDIJUFDUVSF (BNF4FSWFS $POUBJOFS &OE 6TFS 4PDJBM"1*4FSWFS *OUFSOBM"1* *OUFSOBM"1*ʜ 4FSWJDF 0QFO*%$POOFDU
"VUIPSJ[BUJPO4FSWFS 4FSWJDFʜ
খ͞ͳίϯϙʔωϯτͰ ϦϦʔεͷࣗಈԽΛߟ͑Δ
w ࣗಈԽͰ͖ΔσϓϩΠͷ݅ ൈਮ w ιʔείʔυ͕όʔδϣϯཧ͞Ε͍ͯΔ͜ͱ w $*ڥ͕ߏங͞ΕɺϢχοτςετɺड͚ೖΕςετ͕ࣗಈԽ ͞Ε͍ͯΔ͜ͱ w
σʔλϕʔεεΩʔϚ͕όʔδϣϯཧ͞Ε͍ͯΔ͜ͱ w ͍ͭͰΫϦʔϯͳಈ࡞ڥΛ࡞ΕΔ͜ͱ w ڥΛΘͳ͍؆қͳσϓϩΠεΫϦϓτͰ͋Δ͜ͱ
વɺϦϦʔε࡞ۀσϓϩΠ͚ͩͰͳ͍
σϓϩΠϝϯτύΠϓϥΠϯ ιϑτΣΞΛόʔδϣϯཧ͔ΒऔΓग़ͯ͠ɺ Ϣʔβʔͷखݩʹग़ՙ͢Δ·Ͱͷϓϩηε ։ൃ Ϣχοτ ςετ ݕূ ڥ σϓϩΠ ݕূ
ڥ ड͚ೖΕςετ w ͜ΕΒҰ࿈ͷશͯΛόʔδϣϯཧʹίϛοτ͢Δຖʹߦ͏ w ։ൃऀʹଈ࣌ϑΟʔυόοΫΛߦ͍ɺΛૣظൃݟɺରԠ͢Δɹ w ຊ൪ϦϦʔεɺ͜ͷ৴པ͞Εͨ܁Γฦ͠ͷҰͭʹա͗ͳ͍
͜͜Ͱͷ ςετͷఆٛ w ୯ମςετ w .PEVMFͷςετ w ݁߹ςετ w .PEVMFTΛ݁߹ͨ͠
$PNQPOFOUͷςετ w $PNQPOFOUTΛ݁߹ͨ͠ &OEUP&OEͷςετ w ϒϥβεϚʔτϑΥϯ࣮ػ
$*$% w $POUJOVPVT*OUFHSBUJPO w $POUJOVPVT%FMJWFSZ
։ൃ ݕূ ϦϦʔε ։ൃ ݕূ ݕূ ϦϦʔε ։ൃ ݕূ ݕূ
ϦϦʔε ։ൃ ݕূ ຊ൪ ϦϦʔε ίϛοτ୯ҐͰzϦϦʔεαΠΫϧz Λ܁Γฦ͢͜ͱ ίϛοτ ίϛοτ ίϛοτ ίϛοτ ίϛοτ ίϛοτ ൃ֮ ͙͢मਖ਼ ൃ֮ ͙͢मਖ਼ ൃ֮ ͓͓͖ͳखΓͱͳΔ
෮͞Εͨϓϩηε৴པʹΔɻ ຊ൪ϦϦʔεͦͷҰͭʹա͗ͳ͍ɻ
વɺखಈͰϜϦ
+FOLJOTΛ༻͍ͨ$*$%ڥ
w ϨϙδτϦʹಉࠝ͞ΕͨεΫϦϓτΛ +FOLJOTͷδϣϒͱͯ͠ॱʹ࣮ߦ w HJUQVTIͷݕ͔Β࢝·ͬͯɺલλεΫ ͷޭΛ࣮ߦ݅ͱͯ͠ࢦఆ w εΫϦϓτʹҾͱͯ͠Ϗϧυύϥϝʔ λͷঢ়ଶΛ͢ w
݁߹ςετίϯϙʔωϯτʹด͡ͳ͍ ͨΊɺઐ༻ϨϙδτϦͰཧ w EFQMPZεΫϦϓτߋʹࣾπʔϧ܈Λ ݺͼग़͍ͯ͠Δ lϏϧυύΠϓϥΠϯzͷߏங
w ϏϧυύΠϓϥΠϯͷ݁ՌΛ։ൃऀʹଈ࣌ϑΟʔυόοΫ w ͩΕ͕ͲΜͳίϛοτΛͨ͠ͷ͔ w ͦΕʹΑͬͯɺ୯ମςετɺσϓϩΠɺ݁߹ςετͷ݁Ռ͕Ͳ͏͔ͩͬͨ w *3$CPU͔ΒͷϏϧυ։࢝Մೳ *3$ʹΑΔϑΟʔυόοΫ
l;Θͬͱͯ͠Δz w ͩΕ͕͍·ͳʹΛͬͯΔͷ͔Θ͔Βͳ͍ w ͳʹ͕Ͳ͜ʹΞοϓ͞ΕͯΔΜ͚ͩͬ w ͲΕ͕ςετ͞ΕͯΔΜ͚ͩͬ w Ξοϓखॱʹෆඋ͕͋ͬͯ֬ೝͰ͖ͳ͍ w
ݕূ͢Δڥɺόʔδϣϯɺํ๏ɺલఏ͕ҧͬͨ ͳͲΛҰʂʂ
EFWFMPQNFOU UFTUJOH NBTUFS GFBUVSF GFBUVSF CSBODIӡ༻ ڥຖʹରԠͨ͠CSBODIʹίϛοτ͢Δ͜ͱͰɺ ࣗಈԽ͞ΕͨσϓϩΠϝϯτύΠϓϥΠϯ͕Δ
ͱʹ͔͘zQVTIzͤΑ w खݩʹஔ͔ͳ͍ w ͱʹ͔͘͜·ΊʹQVTIͯ͠ɺͲΜͲΜʮςετɾσ ϓϩΠɾ݁߹ࢼݧʯͷαΠΫϧΛճ͠ɺϓϩηεͷ৴ པੑΛߴΊ͍ͯ͘ w ݕূڥͰ͕ى͜ΔͳΒɺͦΕຊ൪Ͱ͍ͣ Εىͬͨ͜͜ͱɻͦΕͳΒૣ͘ൃݟͰ͖ͨํ͕ྑ͍ɻ
None
ӡ༻Λ࢝Ίͨॴײ w ։ൃ͕໌Β͔ʹָ w $*͚ͩͬͯͨࠒΑΓߋʹ w खΓ͕ݮͬͨ w ใڞ༗ָ͕ w
ϦϦʔεͷ৺ཧతোนͷܰݮ w σβΠφʔ͞Μ͚ͩͰϦϦʔεͰ͖ΔΑ͏ʹͳΓӡ༻ޮΞο ϓ ͳͲͳͲɺ͍͍͜ͱͣ͘Ίʂʂ
͜ΕΛܗͱͯ͠૿͍͖͍ͯͨ͠
θϩσϓϩΠ ϓϩδΣΫτ։࢝࣌Ͱɺ σϓϩΠ͢Δͷ͕ͳͯ͘ ·ͣࣗಈԽ͞ΕͨσϓϩΠϝϯτ ύΠϓϥΠϯΛ༻ҙ͢Δɻ
δϣϒٴͼϏϧυύΠϓϥΠϯͷߏஙΛ ҰൃεΫϦϓτԽ͠ɺ͔ΜͨΜಋೖ w ϨϙδτϦΛ࡞ͨ͠ஈ֊ͰɺίϚϯυ Λୟ͚ҰൃͰߏஙͰ͖ΔΑ͏ʹ w +FOLJOTͷ"1*Λར༻ w ෳ৽نίϯϙʔωϯτʹରͯ͠ɺҰؾ ʹಋೖͨ͠
w &OEUP&OEͷςετέʔεʹΑ͕͔͔ͬͯ࣌ؒΓ͗ͯ͢ݱ࣮తͰͳ ͍έʔε w ཏੑવᘳͰͳ͍ w ίϯϙʔωϯτ 4FSWJDF"1* ؒͷґଘ w
ؒҾ͖ ʋТA w ฒྻԽɺߴԽ w ਓؒͰ͔֬͠ೝͰ͖ͳ͍͜ͱΓવ͋Δ w ΘΓͱటष͘ΫϦΞ͠ͳ͕Βஈ֊తʹຊ൪ೖ w ςετίʔυࣗಈԽγεςϜͷอकʹ͕͔͔Γ͗ͯ͢ຊస ·ͩ·ͩ՝
·ͱΊ w σϓϩΠͷࣗಈԽͦ͜ɺ݈શͳ։ൃϓϩηεͷΰʔϧ ઃఆͱͯ͠༏Εͨͷ w ઌͣᯂΑΓ࢝ΊΑ w ಋೖͷෑډΛԼ͛Α w ։ൃޮɾ্࣭ʹରͯ͠ଈޮՌ͋Γ
w ݕূڥ͚ͩͰɺ݁߹ςετ͕ͳͯ͘Ε͍͍
σ ϓ ϩ Π ࣗ ಈ Խ ͷ ಓ