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
Herokuで本番運用する技術 / Heroku production
Search
Hiroshi Shimoju
November 11, 2017
Technology
2
5.8k
Herokuで本番運用する技術 / Heroku production
社内勉強会でHerokuの話をしました。
Hiroshi Shimoju
November 11, 2017
Tweet
Share
More Decks by Hiroshi Shimoju
See All by Hiroshi Shimoju
プロダクト開発エンジニアからSREへの挑戦 / backend-engineer-and-sre
shimoju
0
890
実践 Heroku Enterprise / Unite Heroku Enterprise
shimoju
0
91
ImageMagick実践入門 画像加工サーバを作ってみよう / ImageMagick and image server
shimoju
0
3.3k
Web開発研修 イントロダクション / Web development training introduction
shimoju
0
10k
データ分析その前に〜Redashでデータ可視化からはじめよう / Data visualization by Redash
shimoju
1
1.8k
iOSアプリのテストをやってみて考えたこと / Testing iOS app
shimoju
1
100
Other Decks in Technology
See All in Technology
Oracle Database で機械学習を始めよう! Oracle Machine Learning
oracle4engineer
PRO
1
140
現実世界の事象から学ぶSOLID原則
h0r15h0
24
9.3k
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
720
任意コード実行の原理
ffri
0
170
BDD(Cucumber)コミュニティが無料提供しているコンテンツの紹介と現在起きている危機
nihonbuson
4
720
関数型DDDの理論と実践:「決定を遅らせる」を先につくり、 ビジネスの機動力と価値をあげる
knih
2
150
Tohoku.Tech #1 「EC-CUBE/AWSの構築をChatGPTに相談してみました」by テンダ
jun2882
0
140
SREsのためのSRE定着ガイド
netmarkjp
10
1.5k
Julia でどうしても super().hoge みたいなことしたい人へ for JuliaTokai #18
antimon2
1
110
Cloud Deploy と仲良くなりたい
phaya72
1
100
オブジェクト指向宗教史
tanakahisateru
13
11k
『QAという人』が必要ではなく、『QAという技術』が必要
sadonosake
2
460
Featured
See All Featured
Building Effective Engineering Teams - LeadDev
addyosmani
25
1.8k
Building Adaptive Systems
keathley
29
1.8k
The Power of CSS Pseudo Elements
geoffreycrofte
58
4.9k
We Have a Design System, Now What?
morganepeng
42
6.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
14
2.6k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.8k
Scaling GitHub
holman
456
140k
It's Worth the Effort
3n
180
27k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
24
2.2k
The Cost Of JavaScript in 2023
addyosmani
13
3.7k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Designing with Data
zakiwarfel
94
4.8k
Transcript
Լॏതࢿ(.01FQBCP *OD ୈճ&$ࣄۀ෦5FDI.5( )FSPLVͰຊ൪ӡ༻͢Δٕज़
ΤϯδχΞ ೖࣾɾ৽ଔظ Լॏതࢿ!TIJNPKV@ &$ࣄۀ෦46;63*νʔϜ TIJNPKVPSH
None
46;63*ͷํ͔Β͖·ͨ͠
ຊճͷൃදͰ͢
None
None
None
46;63*❤)FSPLV
)FSPLV w46;63*)FSPLVͰӡ༻͍ͯ͠·͢ wݸਓͰ)FSPLVͰӡ༻͍ͯ͠ΔΞϓϦ͕͋Γ·͢ wͦͷதͰܦݧͨ͜͠ͱΛɺͬ͟ͱˍΏΔΊʹൃද͠· ͢ʂ
͓͠ͳ͕͖ wΦʔτεέʔϧ wಠࣗυϝΠϯઃఆ w44-ઃఆ wϝʔϧ wσʔλϕʔε wϑΝΠϧΞοϓϩʔυ wλΠϜΞτ wϩά wΞϓϦέʔγϣϯઃܭ
wোใ w͓·͚
Φʔτεέʔϧ
None
Φʔτεέʔϧ w4UBOEBSEҎ্ͰखಈͰͷεέʔϧ͕Մೳ w1FSGPSNBODF.Ҏ্Ͱ)FSPLVͰͷΦʔτεέʔϧ͕͑Δ w͔͠͠ʙߴ͍ʜʜ w46;63*Ͱ֎෦ͷΦʔτεέʔϧαʔϏε)JSF'JSFΛ͍ͬͯΔ wIUUQTXXXIJSFpSFJP
Φʔτεέʔϧઃఆ wᮢͷઃఆΈͲ͜Ζ w)JSF'JSFͰεϧʔϓοτ 31. ϨεϙϯελΠϜͳͲ͔ΒબΔ wεϧʔϓοτʹͨ͠ͱ͜ΖɺΞΫηεूதͰλΠϜΞτ͕සൃͨ͠ ͱ͖ɺݟ͔͚ͷεϧʔϓοτ͕མͪͨͷ͔εέʔϧΠϯ͢Δࣄ͕݅ʜ wखͰεέʔϧΞτͨ͠ͷʹؤͳʹ%ZOPΛݮΒͯ͘͠Δ wεέʔϧΞτ͚ͩߟ͑ͣεέʔϧΞοϓߟྀ͢Δ
ಠࣗυϝΠϯઃఆ
ಠࣗυϝΠϯઃఆ w)FSPLVͷಠࣗυϝΠϯઃఆ$/".&Ͱߦ͏ wXXXFYBNQMFDPNˠXXXFYBNQMFDPNIFSPLVEOTDPN w$/".&ͷ;POF"QFY͕͋Δ
;POF"QFY wκʔϯͷαϒυϝΠϯͳ͠ͷυϝΠϯྫFYBNQMFDPN w$/".&ͱଞͷϨίʔυಉډͰ͖ͳ͍ w;POF"QFYʹগͳ͘ͱ/4ϨίʔυΛઃఆ͢Δඞཁ͕͋Δ w;POF"QFYʹ$/".&Λઃఆͨ͠߹ɺ্هʹҧ͢Δ w͕ͨͬͯ͠ɺ;POF"QFYʹ$/".&ઃఆͰ͖ͳ͍ w 3'$IUUQTUPPMTJFUGPSHIUNMSGDTFDUJPO
"-*"4ػೳ w;POF"QFYΛղܾ͢Δػೳ w"-*"4ͱͯ͠ઃఆ͞ΕͨυϝΠϯ໊Λ໊લղܾͯ͠ɺಘΒΕͨ*1Ξυ ϨεΛ"Ϩίʔυͱͯ͠ఏڙ͢Δ w"-*"4Ϩίʔυͱ͍͏Ϩίʔυଘࡏ͠ͳ͍ wͨͩ͠ɺ"/".&Ϩίʔυͱ༷ͯ͠ఏҊ͕͞Ε͍ͯΔ wݱࡏ֤%/4αʔϏεͷಠ࣮ࣗͰɺ"-*"4"/".&ɺ$/".& 'MBUUFOͳͲͱݺΕ͍ͯΔ
"-*"4ػೳͷ͋Δ%/4αʔϏε w%/4JNQMF "-*"4SFDPSE w%/4.BEF&BTZ "/".&SFDPSE w$MPVE'MBSF%/4 $/".&'MBUUFO
w"843PVUF &$ɺ"-#$MPVE'SPOUͳͲ"84αʔϏεͷΈ w(FIJSO%/4 ΤΠϦΞεػೳ w46;63*Ͱ(FIJSO%/4Λ͍ͬͯ·͢
44-ઃఆ
44-ઃఆ wੲ44-ઃఆ༗ྉɿ44-&OEQPJOU MFHBDZ wࠓ༗ྉ%ZOPͰ͋ΕແྉͰ44-ઃఆ͕Մೳɿ)FSPLV44- w-FUT&ODSZQUʹΑΔແྉ44-ূ໌ॻऔಘՄೳʹͳͬͨ wͪΖΜࣗಈߋ৽ w46;63*Ͱ44-&OEQPJOU MFHBDZ Λ༻த
-FUT&ODSZQU wυϝΠϯ͕)FSPLVʹ͍͍ͯͳ͍ͱऔಘߋ৽Ͱ͖ͳ͍ͷͰҙ wݸਓΞϓϦͰɺূ໌ॻऔಘޙ$MPVE'MBSFܦ༝ʹΓସ͑ͨΒɺߋ৽࣌ ʹΤϥʔ͕ى͖ͨʜ
ϝʔϧ
4FOE(SJE wఆ൪ͷϝʔϧ৴αʔϏε w"EEPOͰՃͰ͖Δ wϓϥϯ͝ͱʹૹ৴Մೳ͕نఆ͞Ε͍ͯΔ
ૹ৴Φʔόʔ wϓϥϯ͝ͱͷૹ৴Λ͑Δͱϝʔϧ͕ૹΕͳ͘ͳΔ w༻ྔͷ௨ϝʔϧདྷΔ͕ɺٳʹ͔͔͍ͬͯΔͱؾ͚ͳ͍ ͜ͱ͋ΔͷͰ͜Ε͚ͩʹཔΕͳ͍ w݄͝ͱͷ੍ݶͷͨΊɺ݄ʹϝʔϧૹ৴͕ٸ૿͢Δ߹ʹҙ
ૹ৴Φʔόʔ wରࡦ wۚͰԥΔɿϓϥϯΛ্͛Δ wϝʔϧ͕ૹ৴Ͱ͖ͳ͘ͳͬͯॲཧ͕ࢭ·Βͳ͍Α͏ʹ͢Δ wϝʔϧૹ৴Λಉظॲཧ͠ͳ͍ ϫʔΧʔͰඇಉظૹ৴ɾ࠶ૹ৴Ͱ͖Δ Α͏ʹઃܭ͢ΔɾϩάΛ͢
ϝʔϧड৴ w4FOE(SJEϝʔϧૹ৴ͷΈͳͷͰɺड৴ଆߟ͑Δඞཁ͕͋Δ wड৴ϝʔϧͷ༰Λ1045ͰૹΔ1BSTF8FCIPPL͋Δ w46;63*ͰϔςϜϧΛ͍ͬͯΔ
σʔλϕʔε
)FSPLV1PTUHSFT w1PTUHSF42-)FSPLVެࣜͰఏڙ͞Ε͍ͯΔ w.Z42-ଞࣾ"EEPOͷΈ w1SFQBSFE4UBUFNFOUT wଓ wϨϓϦέʔγϣϯ
1SFQBSFE4UBUFNFOUT w1PTUHSF42-αʔόଆͷΫΤϦΩϟογϡػߏ w%#ͷϝϞϦΛେྔʹফඅͯ͠͠·͏ͨΊΦϑਪ wDPOpHEBUBCBTFZNMʹQSFQBSFE@TUBUFNFOUTGBMTFΛઃఆ wʮ"DUJWF3FDPSEؚΉଟ͘ͷ03.Ͱޮతʹ1SFQBSFE4UBUFNFOUT Λѻ͑ͣɺ*/۟ͷ༰͕ҧͬͨΓ͢Δͱผͷ14ͱͯ͠Ωϟογϡ͞Ε ΔͨΊɺ͋·Γʹଟ͘ͷ14͕࡞ΒΕͯ͠·͏ͨΊʯͱͷ͜ͱ w IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTQPTUHSFTMPHTFSSPSTSVCZBDUJWFSFDPSEBOEQSFQBSFE TUBUFNFOUT
ଓ wϓϥϯ͝ͱʹίωΫγϣϯͷ্ݶ͕ઃఆ͞Ε͍ͯΔ wରࡦ wۚͰԥΔɿ%#ͷϓϥϯΞοϓ wίωΫγϣϯϓʔϥʔͷ1H#PVODFSΛ͏
ϨϓϦέʔγϣϯ w'PMMPXFSEBUBCBTFػೳͱͯ͠ϨϓϦέʔγϣϯΛఏڙ w IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTIFSPLVQPTUHSFTGPMMPXFSEBUBCBTFT wϚελʔͱҧ͏ϓϥϯͰ0, ༰ྔͷ੍͋Δ w46;63*Ͱ3FEBTI͔ΒͷΞΫηεͷͨΊʹ'PMMPXFSEBUBCBTFΛ ͍ͬͯΔ
ϑΝΠϧΞοϓϩʔυ
ϑΝΠϧΞοϓϩʔυ wී௨ʹΔͱΫϥΠΞϯτˠ)FSPLVˠ4ͷܦ࿏ʹͳΔ wΞϓϦଆͰॲཧͯ͠อଘ͍ͨ͠ͱ͖༗ޮ͕ͩɺͦ͏Ͱͳ͍߹αʔ όϦιʔεΛઅ͍ͨ͠ɾ)FSPLV͕64ͳͷͰ͕͋Δ w46;63*Ͱ1SFTJHOFE63-ΛͬͨΞοϓϩʔυΛߦ͍ͬͯΔ w3BJMTͰಋೖ͞ΕΔ"DUJWF4UPSBHFͰɺ%JSFDUVQMPBEαϙʔ τ͞Ε͍ͯΔͱͷ͜ͱ w IUUQTHJUIVCDPNSBJMTSBJMTUSFFNBTUFSBDUJWFTUPSBHFEJSFDUVQMPBET
λΠϜΞτ
λΠϜΞτ wඵҎʹϨεϙϯεΛฦ͞ͳ͍ͱɺ)FSPLVଆͰऴྃͤ͞ΒΕΔ w݄ॳ༻ͷूܭ$47ΛϦΫΤετܖػͰੜˠμϯϩʔυΛ͍ͯͨ͠ ͕ɺ͜ͷલͷηʔϧͷͱ͖ʹ͍ͭʹλΠϜΞτͨ͠ w3BLFλεΫͰ$47Λੜͯ͠4ʹΞοϓ͢ΔΑ͏ʹ͍ͯ͠Δ
ϩά
ϩά w1BQFSUSBJM͕ఆ൪ w͔͠͠ɺਖ਼͋·Γ͍উखΑ͘ͳ͍ؾ͕ʜ w5SFBTVSF%BUB,JCBOBͳͲͷϩάج൫తͳͷʹू͢Δ΄͏͕Α ͦ͞͏ w4ͷόοΫΞοϓ͍ͯ͠Δ
ΞϓϦέʔγϣϯઃܭ
5IF5XFMWF'BDUPS"QQ wIUUQTGBDUPSOFUKBҎ্ʂ wΞϓϦέʔγϣϯ෦ͷઃఆͱڥ͝ͱʹҟͳΔઃఆΛ͢Δ wεςʔτϨεʜγεςϜϩʔΧϧͳԿ͔ʹґଘ͠ͳ͍ɺࣗݾ݁ w)FSPLVͰϩʔΧϧʹอଘͰ͖Δ͕ɺճ࠶ىಈ͞Εͯফ໓͢Δ w)FSPLVεέʔϥϒϧͳΞϓϦཆΪϓε
োใ
োใ wIUUQTTUBUVTIFSPLVDPN wϝʔϧͰߪಡͰ͖Δ͕ɺܰඍͳো݁ߏଟ͍ w$SJUJDBMJODJEFOUTPOMZͰ͍͍͔͠Εͳ͍
ωοτϫʔΫো w)FSPLVʹωοτϫʔΫো͕ൃੜ͠ɺ͜Ε͕ݪҼͱΈΒΕΔαʔϏ εো͕ى͖ͨ w"EEPOͷαʔόʔ෦-"/ʹͳ͍ͷͰωοτϫʔΫোͷӨڹΛ ड͚Δ͜ͱʹҙ w֎ܗࢹΛ͖ͪΜͱೖΕΔ
͓·͚
)FSPLV1JQFMJOFT wςετɺεςʔδϯάɺຊ൪ڥΛγʔϜϨεʹ౷߹͢Δ$*$%ڥ wNBTUFSϚʔδˠ)FSPLV$*࣮ߦˠςετ௨ͬͨΒࣗಈσϓϩΠͳͲ w$IBU0QTαϙʔτɿ/h deploy suzuri to production wͨͩ͠ɺ(JU)VC DPN
Ͱ͔͑͠ͳ͍ʜʜ wHJUIVCDPN͕ϋʔυίʔυ͞Ε͍ͯΔՕॴ͕͋ͪͪ͜ʹ͋ͬͯ৭ʑ େมΒ͍͠ͱͷ͜ͱʜ CZITCU w IUUQTLCIFSPLVDPNDBOJVTFHJUIVCFOUFSQSJTFXJUIQJQFMJOFSFWJFXBQQT
)FSPLV3FWJFX"QQT w)FSPLV1JQFMJOFTͷػೳͷͻͱͭ w1VMM3FRVFTUΛ࡞Δͨͼʹ৽͍͠ڥΛ࡞ͬͯ͘ΕΔ wJOUFHSBUJPOڥ͔ͪΒղ์ʂʂʂ wͨͩ͠ɺ͜Ε(JU)VCͰ͔͑͠ͳ͍ʜʜ
·ͱΊ wಠࣗυϝΠϯઃఆ wΦʔτεέʔϧ w44-ઃఆ wϝʔϧ wσʔλϕʔε wϑΝΠϧΞοϓϩʔυ wλΠϜΞτ wΞϓϦέʔγϣϯઃܭ wোใ
w͓·͚
੍͋Δ͕ͱͯศར
)FSPLVͰຊ൪ӡ༻ ͯ͜͠͏