Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
Middleware Configuration as Code
MATSUMOTO Ryosuke
PRO
August 08, 2015
Technology
8
1.7k
Middleware Configuration as Code
connect infra engineers with app engineers
MATSUMOTO Ryosuke
PRO
August 08, 2015
Tweet
Share
More Decks by MATSUMOTO Ryosuke
See All by MATSUMOTO Ryosuke
matsumoto_r
PRO
1
190
matsumoto_r
PRO
7
1.8k
matsumoto_r
PRO
0
410
matsumoto_r
PRO
3
3.1k
matsumoto_r
PRO
4
300
matsumoto_r
PRO
1
580
matsumoto_r
PRO
1
340
matsumoto_r
PRO
0
570
matsumoto_r
PRO
0
150
Other Decks in Technology
See All in Technology
kanaugust
PRO
0
120
kilometer
0
160
tsugimot
0
160
terurou
0
240
redhatopenshift
0
750
sho7650
0
330
ozuma
0
130
texmeijin
1
380
sky_joker
0
130
simplework_oi
0
180
clustervr
0
170
clustervr
0
210
Featured
See All Featured
hannesfritz
27
930
bkeepers
52
4.2k
tmm1
61
8.5k
dougneiner
55
5.4k
maltzj
500
36k
aarron
257
36k
philhawksworth
190
17k
geeforr
332
29k
malarkey
393
60k
colly
187
14k
qrush
285
18k
reverentgeek
27
1.9k
Transcript
DPOOFDUJOGSBFOHJOFFSTXJUIBQQFOHJOFFST GMO Pepabo, Inc. ٕज़ج൫νʔϜ ΞυόϯευγχΞ MATSUMOTO, Ryosuke @matsumotory 2015/08/08
ୈ68ճ Rubyؔ ษڧձ .JEEMFXBSF $POpHVSBUJPOBT$PEF
ࣗݾհ দຊ྄հ!NBUTVNPUPSZ ٕज़ج൫νʔϜΞυόϯευγχΞ Ԭࢧ݄ࣾೖࣾ ओʹձࣾશମͷΠϯλʔωοτج൫ٕज़Λ୲
044׆ಈࣾ֎͚ͷٕज़ൃදͳͲ IUUQSFTFBSDINBUTVNPUPSKQ
ϖύϘͷݚڀɾ։ൃ୲ IUUQICNBUTVNPUPSKQFOUSZ
None
࠷ۙऔΓΜͰ͍Δ044։ൃ NPE@NSVCZ OHY@NSVCZ IP@NSVCZ 5SVTUFSE)5518FC4FSWFS
NSVCZɾNSVCZͷNSCHFNଟ
࣍ എܠ ఆٛ ࣮ʹ͍ͭͯ ؆୯ͳνϡʔτϦΞϧ
ࣄྫհ
എܠ
ϛυϧΣΞͷߏͷมԽ ˞ ྫ͑8FCαʔό $(*GPSL ͷίετʹΑΓ͍ ΠϯλϓϦλΛαʔόʹΈࠐΉ ίϯςϯπͱ8FCαʔό͕ີ݁߹
ΞϓϦέʔγϣϯαʔόͱϓϩΩγͷ ͍͔ʹ֤ػೳΛޮྑ͘࿈ܞͤ͞Δ͔ ˞NSVCZͱ͜Ε͔Βͷ8FCαʔόٕज़ IUUQTTQFBLFSEFDLDPNNBUTVNPUP@S NSVCZUPLPSFLBSBGBMTFXFCTBCBKJTIV 3VCZ౦ژϓϨθϯςʔγϣϯςΫχΧϧτʔΫ 'FC
$ݴޠʹΑΔϛυϧΣΞͷ֦ு ϛυϧΣΞΛΑΓߴʹ֦ு͍ͨ͠ ओઓ͕--ͷ8FCΤϯδχΞʹ͍͠ $ݴޠʹΑΔੜ࢈ੑɾอकੑͷ՝ ؆୯ͳॲཧΛ؆୯ʹॻ͖͍ͨ
$ݴޠΛॻ͖ͨ͘ͳ͍ ϛυϧΣΞͷৄࡉ༷ΛΔ͜ͱͳ͘ॻ͖͍ͨ
ݹ͔͘Β͋Δ8FCαʔόͷ֦ு NPE@QFSMɺNPE@SVCZͳͲ $(*Ϟσϧͷվળ 8FCαʔόͷ෦֦ுՄೳ˞ ੑೳ໘ɾϝϞϦ໘Ͱͷ՝
˞!YUFUTVKJ lϞμϯNPE@QFSMೖz IUUQXXXTMJEFTIBSFOFUYUFUTVKJ NPEFSONPEQFSMHVJEFZBQDBTJB :"1$"TJB5PLZP 4FQ
෦֦ுΛతʹ࠷దԽ ͬͱߴʹɾͬͱܰྔʹ 8FCΤϯδχΞʹۙͳݴޠͰ ΠϯϑϥɾΞϓϦΛͭͳ͙ ϨΠϠʔͷҧ͏ΤϯδχΞΛͭͳ͙
ͬͱ͍͘͢
.JEEMFXBSF $POpHVSBUJPOBT$PEF
XJUINSVCZ
ఆٛ
.JEEMFXBSF $POpHVSBUJPOBT$PEF
༷ʑͳݴޠͰ࣮͞ΕͨϛυϧΣΞʹର͠ɺϛ υϧΣΞͷಈ࡞Λ੍ޚ͢Δ"1*σʔλߏΛɺ ࠐΈεΫϦϓτݴޠʹΑͬͯૢ࡞Ͱ͖ΔΑ͏ʹ ͠ɺϢʔβεΫϦϓτݴޠΛ௨ͯ͡ϛυϧΣ ΞͷৼΔ͍Λઃఆɾ੍ޚՄೳͱͳΔ
.JEEMFXBSF$POpHVSBUJPOBT$PEF ߴੑೳͳϛυϧΣΞͷઃఆΛίʔυԽ ίʔυ෦ͷΦʔόʔϔου͕গͳ͍ ίʔυԽʹΑΓવςετՄೳ ίʔυͷϥΠϒϥϦͱͯ͠ػೳ֦ு༰қ
γεςϜͷૄ݁߹ͳίϯϙʔωϯτΛॊೈ ʹ࿈ܞՄೳ
ಋೖ·Ͱͷϓϩηεςετ ৄࡉͳߟ͑ํࠓճলུ ͱ͍͏ͷʜ
ฐࣾ!ITCUͷ׆ಈʹ !ITCU l.JEEMFXBSFBT$PEFXJUINSVCZz IUUQXXXTMJEFTIBSFOFUITCUNJEEMFXBSFBTDPEFXJUI NSVCZ 3FE%PU3VCZ$POG +VOF %FUBJMTPGNSVCZVTBHFJOQSPEVDUJPO
Ҏ߱ͷ༰ ࣮ʹ͍ͭͯ ؆୯ͳνϡʔτϦΞϧ ฐࣾͰͷࣄྫհ
࣮ʹ͍ͭͯ
044Խ͞Ε࣮ͨྫ NPE@NSVCZ NPE@MVB OHY@NSVCZ MVBOHJOYNPEVMF IP@NSVCZ
5SVTUFSE)5518FC4FSWFS NSVCZJQWT WJSUVBMJOH UT@NSVCZGPS"QBDIF5SB⒏D4FSWFS MJCWNPE@NSVCZGPS7BSOJTI$BDIF NZTRMNSVCZ )PMZDPSOGPS%BUB4UPSF
044Խ͞Ε࣮ͨྫ NPE@NSVCZ NPE@MVB OHY@NSVCZ MVBOHJOYNPEVMF IP@NSVCZ
5SVTUFSE)5518FC4FSWFS NSVCZJQWT WJSUVBMJOH UT@NSVCZGPS"QBDIF5SB⒏D4FSWFS MJCWNPE@NSVCZGPS7BSOJTI$BDIF NZTRMNSVCZ )PMZDPSOGPS%BUB4UPSF
جຊతͳ࣮ϙϦγʔ ˞Ҏ߱NSVCZʹΑΔ࣮લఏͰ͢ εϨου୯ҐͰ7.ΛϚοϐϯά ϛυϧΣΞىಈ࣌ʹ7.ϚοϐϯάͱίϯύΠϧ ϛυϧΣΞͷσʔλߏΛϝιουʹϚοϐϯά ϛυϧΣΞͷ"1*ΛϝιουʹϚοϐϯά
ϛυϧΣΞͷఆΛϚοϐϯά ༻్ຖʹΫϥεͰ ֦ுݴޠͷϥΠϒϥϦΛར༻
࣮໘ͰؾΛ͚͍ͭͯΔࣄ ϋΠύϑΥʔϚϯε ΦʔόʔϔουʹͳΓʹ͍͘ ϝϞϦ͕୯ௐ૿Ճ͠ͳ͍Α͏ʹ͢Δ ֶशίετΛݮΒ͢
γϯϓϧͳΫϥεͱϝιου ػೳ֦ுͰ͖Δ͚ͩNSCHFN˞ ˞$3VCZͷHFNʹ͋ͨΔNSVCZͷϞδϡʔϧ
ϋΠύϑΥʔϚϯε NSVCZΛ࠾༻ͯ͠ੑೳ໘Ͱ࠷దԽ εϨου୯ҐͰ7.୯ҐͰ࣋ͯΔ +*4ن֨ʹ४ڌ༷ͨ͠ʹΑΓܰྔ ࣄલʹόΠτίʔυʹ͓ͯ͘͠ͱߴ
3VCZίʔυͷෳճ࣮ߦͰܰྔͳΠϯλϓ Ϧλ͕ʹޮ͍ͯ͘Δ ৄ͘͠จ˞ ˞দຊ྄հɾԬ෦णஉ NPE@NSVCZɿεΫϦϓτݴޠͰߴ͔ͭলϝϞϦʹ֦ுՄೳͳ8FCαʔόͷػೳ֦ ுࢧԉػߏ ใॲཧֶձจࢽ 7PM /P QQ ݄
ੈքதͷ8FCϑϨʔϜϫʔΫͷΛڝ͏ίϯςετ $ɺ$ ɺ+BWBɺ(Pͷதɺ3VCZͰؤு͍ͬͯΔ Ґ SFGIUUQTXXXUFDIFNQPXFSDPNCFODINBSLT
SFGIUUQTXXXUFDIFNQPXFSDPNCFODINBSLT ݴޠΛ3VCZʹݶఆͨ݁͠Ռ ѹతҐ
ֶशίετΛݮΒ͢ ҟͳΔϛυϧΣΞͰΫϥεϝ ιου໊Λಉ͡ʹ͓ͯ͘͠ NSCHFNͰॻ͚Δॴॻ͘ࣄͰҟͳ ΔϛυϧΣΞͰར༻Մೳ ͲΕ͔Ұֶͭश͢ΕଞͷϛυϧΣ Ξͷ֦ுେମཧղͰ͖Δ
ϛυϧΣΞͷΫϥεΛऔಘ 6TFSEBUBΫϥεNSCHFN
؆୯ͳνϡʔτϦΞϧ
OHY@NSVCZΛΧδϡΞϧʹࢼ͢ 7BHSBOUڥΛ༻ҙ͢Δ͚ͩ 7BHSBOU %PDLFSΛར༻ $PSF04Λ7BHSBOUڥͰىಈ $PSF04ͷதͰ%PDLFSΛىಈ
OHY@NSVCZͷ%PDLFSΠϝʔδىಈ
OHY@NSVCZνϡʔτϦΞϧ EPDLFSڥඋ OHY@NSVCZͷ%PDLFSΠϝʔδΛऔಘ
OHY@NSVCZνϡʔτϦΞϧ EPDLFSIPPLUFTUSCΛมߋͯ͠ڍಈΛ֬ೝ %PDLFSΛϏϧυͯ͠͠࠶࣮ߦ
OHY@NSVCZνϡʔτϦΞϧ ৽͍͠MPDBUJPOઃఆͱΠϯϥΠϯίʔυΛՃͯ͠ڍಈ֬ೝ NSVCZBVUIʹରͯ͠Ҏ֎͔ΒͷΞΫηε EPDLFSDPOGOHJOYDPOGΛมߋͯ͠ڍಈΛ֬ೝ
ࣄྫհ
ฐࣾͷࣄྫհ %P4తΞΫηεͷࣗಈ੍ޚ υϝΠϯผͷಈతϓϩΩγ ෳࡶͳϝϯςφϯεը໘Γସ͑ ಈతը૾มαʔόͷ63-Ճ
*1ΞυϨε63*ͷΞΫηε੍ޚ
ฐࣾͷࣄྫհ %P4తΞΫηεͷࣗಈ੍ޚ υϝΠϯผͷಈతϓϩΩγ ෳࡶͳϝϯςφϯεը໘Γସ͑ ಈతը૾มαʔόͷ63-Ճ
*1ΞυϨε63*ͷΞΫηε੍ޚ
୲!IBSBTPV JOGSBFOHJOFFS
େྔΞΫηε %%P4 XFC αʔό ߈ܸऀ
େྔΞΫηεͷࣗಈ੍ޚ ˞ ϗετ୯ҐͰ੍ޚ ϑΝΠϧ୯ҐͰ੍ޚ ʙ୯Ґࣗ༝ʹܾΊΒΕΔ େྔΞΫηεͱݕͨ͠Βҙͷ੍ޚ
ෳࡶͳ݅Ͱ؆୯ʹॻ͚ΔΑ͏ʹ ˞!IBSBTPV lؔ3VCZձٞʹొஃͤͯ͞Βͬͨ IUUQIBSBTPVHJUIVCJPؔ3VCZձ ٞʹొஃͤͯ͞Βͬͨ ؔ3VCZձٞ +VMZ
NPE@NSVCZͰ࣮ IUUQEPTEFUFDUPS ҙͷΞΫηεύλʔϯΛݕ ݕதʹҙͷॲཧΛ࣮ߦ IUUQBDDFTTDPVOUFS
ҙͷଐੑʢϑΝΠϧ໊ɾVJEʣΛΧϯτ Χϯτ͕ᮢΛ͑ͨΒݕ ݕதʹҙͷॲཧΛ࣮ߦ
ུ֓ਤ IUUQEPTEFUFDUPSIUUQBDDFTTMJNJUUFS "QBDIF ϓϩηε NSVCZ XPSLFS NSVCZ XPSLFS NSVCZ
XPSLFS NSVCZ XPSLFS NSVCZ ڞ༗ϝϞϦ HMPCBMMPDL ᶄΧϯλ ΠϯΫˠॲཧˠσΫϦ MPDBMNFNDBDIF ,74 ᶃUSZ@MPDL ᶅVOMPDL
NPE@NSVCZͷઃఆ
EPT@EFUFDUPSSC ϗετʹରͯ͠ඵؒʹΞΫηε͋ͬͨΒ ඵ͔ؒϦΫΤετ%P4ݕঢ়ଶͱ͢Δ %P4ݕঢ়ଶͷؒΛฦ͢
BDDFTT@MJNJUUFS@TUBSUSC ΞΫηεϑΝΠϧ໊ͰΧϯλΛΠϯΫϦϝϯτ Χϯλ͕ᮢΛ͍͑ͯͨΒΛฦ͢
BDDFTT@MJNJUUFS@FOESC ΞΫηεϑΝΠϧ໊ͰΧϯλΛσΫϦϝϯτ
ฐࣾͷNSVCZࣄྫհ %P4తΞΫηεͷࣗಈ੍ޚ ϗετϕʔεͷಈతϓϩΩγ ෳࡶͳϝϯςφϯεը໘Γସ͑ ಈతը૾มαʔόͷ63-Ճ
*1ΞυϨε63*ͷΞΫηε੍ޚ
୲!UTITU@ JOGSBFOHJOFFS
ϗετϕʔεͷಈతϓϩΩγ ϗετόοΫΤϯυͷαʔόʹࣗ༝ ʹஔɾҠಈ ϗετͷډॴ%#Ͱཧ %#͔ΒಈతʹϦόʔεϓϩΩγ Ͱ͖Δ͚ͩੑೳΛߴ͍ͨ͘͠
"QBDIF Ϟδϡʔϧ͔ΒϦϓϨʔε
ऩ༰αʔό ऩ༰αʔό ϦόʔεϓϩΩγ %# OHY@NSVCZ MPDBMNFNDBDIF %# NSVCZ ϦόʔεϓϩΩγ UFYBNQMFKQ
UFYBNQMFKQ UFYBNQMFKQ -# )PTUUFYBNQMFKQ ϨϓϦέʔγϣϯ %#ߋ৽͋ΕΩϟογϡআ Ωϟογϡͳ͚Εऔಘͯ͠ΩϟογϡԽ όοΫΤϯυใऔಘ ϦόʔεϓϩΩγ ऩ༰αʔό ऩ༰αʔό
ಈతʹબͨ͠όοΫΤϯυͱLFFQBMJWF͢Δ OHJOYىಈ࣌ʹ%#ɾΩϟογϡͱଓ OHJOYఀࢭ࣌ʹ%#ଓΛDMPTF
Ωϟογϡʹͳ͚ΕϩʔΧϧ%#͔Βऔಘ όοΫΤϯυͷใΛऔಘ ಈతબͨ͠όοΫΤϯυͱLFFQBMJWFͰଓ
BQBDIFͱOHJOY NSVCZ ͷੑೳൺֱ SFRTFD ૯ΞΫηε
BQBDIF OHJOY NSVCZ ಉ࣌ଓ
“ –ϖύϘԬΠϯϑϥνʔϜ αϒϚωʔδϟʔ @tshst_ࢯ l$ݴޠͰॻ͔Εͨ"QBDIFϞδϡʔϧΛؚΉϓϩΩγ αʔόΛOHJOYͰϦϓϨʔε͢ΔͷʹɺOHY@NSVCZΛ ͏ͱ$ݴޠͪΖΜ3VCZ͢Βॻ͍ͨࣄͷͳ͍ࢲ͕ɺ ࣌ؒͰಉͷॲཧΛेߦͰ࣮Ͱ͖·ͨ͠z
ฐࣾͷࣄྫհ %P4తΞΫηεͷࣗಈ੍ޚ υϝΠϯผͷಈతϓϩΩγ ෳࡶͳϝϯςφϯεը໘Γସ͑ ಈతը૾มαʔόͷ63-Ճ
*1ΞυϨε63*ͷΞΫηε੍ޚ
୲!MBNBOPUSBNB JOGSBFOHJOFFS
ϝϯςφϯεը໘Γସ͑ ˞ WBSUNQNBJOU͕ଘࡏͨ͠Βϝϯς φϯεը໘ WBSUNQNBJOU@JHOPSF@P⒏DF͕ଘ ࡏͯ͠ɺͭΞΫηεݩ͕ Ͱ͋Εɺͦ͜௨ৗ௨ΓϨεϙϯε
OHJOYDPOGʹͦͷ··ίʔυΛهड़ ˞!MBNBOPUSBNB lOHY@NSVCZΛͬͯಛఆϗετҎ֎͔ΒͷΞΫηεΛϝϯςφϯεը໘ʹ͢Δz IUUQMBNBOPUSBNBIBUFCMPKQFOUSZ "VH
MBNCEBͰ͔ͬ͜ྑ͘/HJOYSFUVSO ͱϝϯςφϯεϖʔδΛඥ͚
ฐࣾͷࣄྫհ %P4తΞΫηεͷࣗಈ੍ޚ υϝΠϯผͷಈతϓϩΩγ ෳࡶͳϝϯςφϯεը໘Γସ͑ ಈతը૾มαʔόͷ63-Ճ
*1ΞυϨε63*ͷΞΫηε੍ޚ
୲!ZBOP BQQFOHJOFFS
ಈతը૾มαʔόͷ63-Ճ ˞ 63-ϕʔεͷಈతը૾มॲཧ ΫϥΠΞϯτ͕উखʹը૾มͰ͖ ͳ͍Α͏ʹ63-ͷҰ෦ΛϋογϡԽ OHY@NSVCZͰ63-Λղੳ͠όοΫ Τϯυͷը૾ετϨʔδ
˞!ZBOP l%ZOBNJDJNBHFUSBOTGPSNBUJPOTFSWFS0LBSB#&5"z IUUQTTQFBLFSEFDLDPNZBOP EZOBNJDJNBHFUSBOTGPSNBUJPOTFSWFSPLBSBCFUB ୈҰճϖύϘςοΫΧϯϑΝϨϯε "QS
ϦΫΤετ63-ʹؚ·ΕΔϋογϡ͕దͳ͔νΣοΫ ϦΫΤετ63-͔Βը૾ͷ63-Λੜͯ͠ϦόʔεϓϩΩγ
ϦΫΤετ63-ʹؚ·ΕΔϋογϡ͕ਖ਼͍͔͠ධՁ ϦΫΤετ63-ʹؚ·ΕΔจࣈྻΛOHJOY෦ม͔Βऔಘ
ϦΫΤετ63-ʹؚ·ΕΔจࣈྻΛOHJOYͷ෦ม͔Βऔಘ ը૾ͷ63-Λੜ ϦΫΤετ63-Λ৭ʑղੳ
ಈతը૾มαʔό͓͔ΒΛ !ZBOP͕044Խ͢Δ༧ఆ Ͱ͢
ฐࣾͷࣄྫհ %P4తΞΫηεͷࣗಈ੍ޚ υϝΠϯผͷಈతϓϩΩγ ෳࡶͳϝϯςφϯεը໘Γସ͑ ಈతը૾มαʔόͷ63-Ճ
ը૾αʔϏεͷΞΫηε੍ޚ
୲!ITCU BQQFOHJOFFS
ը૾αʔϏεͷΞΫηε੍ޚ ˞ ηογϣϯ*%ͷೝূ NFNDBDIFEʹηογϣϯ*%อଘ 63-ϕʔεͷೝূ *1ΞυϨεϕʔεͷೝূ
˞!ITCU l.JEEMFXBSFBT$PEFXJUINSVCZz IUUQXXXTMJEFTIBSFOFUITCUNJEEMFXBSFBT DPEFXJUINSVCZ 3FE%PU3VCZ$POG +VOF
αʔόىಈ࣌ʹNFNDBDIFEͱଓ͢Δॲཧলུ αʔόఀࢭ࣌ʹNFNDBDIFEͱஅ͢Δॲཧলུ
ΞΫηεΛڋ൱͍ͨ͠63-ͷ੍ޚ TFTTJPO@JEΛΩʔʹNFNDBDIFE͔ΒΞΫηε੍ޚใΛऔಘ
͜ΕҎ֎ʹ·ͩ·ͩ ৭ʑ͍ͬͯ·͢
)0ͷNSVCZ֦ு
3VCZεΫϦϓτΛϑοΫ
ڐՄηάϝϯτʹؚ·Ε͍ͯͨΒ࣍ͷॲཧҠߦ
·ͱΊ
.JEEMFXBSF$POpHVSBUJPOBT$PEF ૄ݁߹ͳϛυϧΣΞͷ࿈ܞ ෳࡶͳ࿈ܞΛ3VCZͰ៉ྷʹॻ͚Δ ΞϓϦΤϯδχΞ͕ΠϯϑϥΛ੍ޚ ΠϯϑϥΤϯδχΞ͕3VCZͰ੍ޚ
ϓϩάϥϛϯάͷ෯͕͕Δ
.JEEMFXBSF $POpHVSBUJPOBT$PEF
DPOOFDUJOGSBFOHJOFFST XJUIBQQFOHJOFFST