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
6.2k
Herokuで本番運用する技術 / Heroku production
社内勉強会でHerokuの話をしました。
Hiroshi Shimoju
November 11, 2017
Tweet
Share
More Decks by Hiroshi Shimoju
See All by Hiroshi Shimoju
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
52
プロダクト開発エンジニアからSREへの挑戦 / backend-engineer-and-sre
shimoju
0
1.3k
実践 Heroku Enterprise / Unite Heroku Enterprise
shimoju
0
170
ImageMagick実践入門 画像加工サーバを作ってみよう / ImageMagick and image server
shimoju
0
3.6k
Web開発研修 イントロダクション / Web development training introduction
shimoju
0
11k
データ分析その前に〜Redashでデータ可視化からはじめよう / Data visualization by Redash
shimoju
1
1.9k
iOSアプリのテストをやってみて考えたこと / Testing iOS app
shimoju
1
150
Other Decks in Technology
See All in Technology
社内報はAIにやらせよう / Let AI handle the company newsletter
saka2jp
7
1.1k
バイブコーディングと継続的デプロイメント
nwiizo
2
470
許しとアジャイル
jnuank
1
130
pprof vs runtime/trace (FlightRecorder)
task4233
0
170
【Oracle Cloud ウェビナー】クラウド導入に「専用クラウド」という選択肢、Oracle AlloyとOCI Dedicated Region とは
oracle4engineer
PRO
3
120
後進育成のしくじり〜任せるスキルとリーダーシップの両立〜
matsu0228
7
3k
空間を設計する力を考える / 20251004 Naoki Takahashi
shift_evolve
PRO
4
430
Large Vision Language Modelを用いた 文書画像データ化作業自動化の検証、運用 / shibuya_AI
sansan_randd
0
120
自動テストのコストと向き合ってみた
qa
0
200
AIが書いたコードをAIが検証する!自律的なモバイルアプリ開発の実現
henteko
1
350
実装で解き明かす並行処理の歴史
zozotech
PRO
1
570
リーダーになったら未来を語れるようになろう/Speak the Future
sanogemaru
0
310
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.6k
Code Reviewing Like a Champion
maltzj
525
40k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
19
1.2k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
114
20k
Site-Speed That Sticks
csswizardry
11
890
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Build your cross-platform service in a week with App Engine
jlugia
232
18k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
51k
KATA
mclloyd
32
15k
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Ͱຊ൪ӡ༻ ͯ͜͠͏