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
Using Heroku on entrusted development
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kusamao Abe
June 22, 2017
Technology
0
1.1k
Using Heroku on entrusted development
2017/6/22 Heroku Meetup #17 Heroku Strikeでお話させていただきました。受託案件でのHeroku運用についてです
Kusamao Abe
June 22, 2017
Tweet
Share
More Decks by Kusamao Abe
See All by Kusamao Abe
Vue builds
kusamao
1
530
Javascript in the past and now
kusamao
1
170
The Essence of UI Design
kusamao
1
1.9k
Make good (better) form
kusamao
0
260
Making mock-up in web application
kusamao
0
98
Keep a distance from jQuery
kusamao
0
130
Other Decks in Technology
See All in Technology
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
240
Red Hat OpenStack Services on OpenShift
tamemiya
0
110
OWASP Top 10:2025 リリースと 少しの日本語化にまつわる裏話
okdt
PRO
3
790
Cosmos World Foundation Model Platform for Physical AI
takmin
0
910
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
Introduction to Bill One Development Engineer
sansan33
PRO
0
360
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.9k
レガシー共有バッチ基盤への挑戦 - SREドリブンなリアーキテクチャリングの取り組み
tatsukoni
0
220
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
230
Amazon S3 Vectorsを使って資格勉強用AIエージェントを構築してみた
usanchuu
3
450
Azure Durable Functions で作った NL2SQL Agent の精度向上に取り組んだ話/jat08
thara0402
0
190
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
What's in a price? How to price your products and services
michaelherold
247
13k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
78
The Cult of Friendly URLs
andyhume
79
6.8k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
57
50k
Typedesign – Prime Four
hannesfritz
42
2.9k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
From π to Pie charts
rasagy
0
120
How to Ace a Technical Interview
jacobian
281
24k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Transcript
डୗҊ݅Ͱͷ Herokuӡ༻ 2017/06/22 Heroku Meetup #17 Heroku Strike at Global
Business Hub Tokyo
גࣜձࣾλϯόϦϯWebΤϯδχΞ ҆෦ຑੜʢKusamao Abeʣ 8FCαΠτɾ8FCΞϓϦέʔγϣϯͷϚʔΫΞοϓɺ 41"8PSE1SFTTʢͭΒ͍ʣΛओʹ୲ɻϫΠϠʔ ϑϨʔϜͱ͔σβΠϯΧϯϓʹԆʑͱένΛ͚͕ͭ ͪɻઃܭͱ͔ΠϯϑϥʹटΛಥͬࠐΜͰࣗͷट ΛకΊΔͷ͕ੜۀͰ͢ɻ ࣗݾհ
λϯόϦϯ͜Μͳ੍࡞ձࣾͰ͢ w Πϯϑϥઐۀ͕͍ͳ͍ w ࣾ֎ͷύʔτφʔ͞ΜͱҰॹʹ੍ ࡞͢Δ͜ͱ͕ଟ͍ w Ҋ͔͚͕݅ͪଟ͍ w ৽نӡ༻͢Δ
w εςʔΫϗϧμʔϓϩμΫτϚ ωʔδϟʔ֎ʹ͍Δ͜ͱ͕ଟ͍
ࠓ͓͢Δ͜ͱ w ͜ͷػೳͰ͜͏มΘΓ·ͨ͠ w ͜Μͳӡ༻ͯ͠·͢
ࢦ͢͜ͱ Έͳ͞Μ͕όϯόϯ)FSPLVΛͬͯ ݟΛڞ༗ͯ͘͠ΕΔ͜ͱ
Herokuͱ ϞοΫΞοϓ 01
ϞοΫΞοϓ੍࡞ɺ Α͘Γ·͢
ैདྷ ࣾςετ ڥ master ࣗಈө ࣾςετ ڥ 4'51
ैདྷ ࣾςετ ڥ master ࣗಈө ࣾςετ ڥ 4'51 ˒ ϨϏϡʔͰ͖ͳ͍
˒ ίϯύΠϧͨ͠ίʔυΛόʔδϣϯ ཧ͢Δࠈ ˒ SFWFSUͩΔ͍
ैདྷ ࣾςετ ڥ master ࣗಈө ࣾςετ ڥ 4'51 ˒ ϨϏϡʔͰ͖ͳ͍
˒ ίϯύΠϧͨ͠ίʔυΛόʔδϣϯ ཧ͢Δࠈ ˒ SFWFSUͩΔ͍ ͜ͷੈͷऴΘΓ
ϞοΫΞοϓ੍࡞ w σβΠϯΧϯϓͱ༷ɾઃܭॻ͔Βʮঢ়ଶʯ Λ૾ͨ͠ΓσβΠφʔʹ֬ೝͨ͠Γ͠ͳ͕ Β੍࡞ w ݟ͕ͨΧϯϓ௨ΓͰ͠ΐ͏͕ͳ͍ w ҙ֎ͱ༷ॻಡΈࠐΉ͜ͱʹͳΔ w
͜ͷ͋ͱΈࠐΈΛ͢Δਓͱίϛϡχέʔ γϣϯΛͱΔ w େنͩͱҰਓͰ࡞Γ͖Εͳ͍͜ͱ͋Δ w Ͳ͏͍͏نɾํͰ࡞Δʁ w ୭ʹͲ͜Λ͓ئ͍͢Δʁ w ΫΦϦςΟνΣοΫʁ
Heroku Pipelines IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTQJQFMJOFT
Heroku Pipelines IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTQJQFMJOFT
ίʔυϕʔεΛมߋ͢Δͷʹ1VMM3FRVFTUΛग़͢ 13ʹج͍ͯ)FSPLV͕ࣗಈతʹ"QQΛ࡞ͯ͠ɺ มߋΛςετͰ͖ΔΑ͏ʹͳΔ มߋʹ͕ͳ͚ΕNBTUFSϒϥϯνʹϚʔδ͞ ΕΔ NBTUFSϒϥϯνࣗಈతʹεςʔδϯάڥʹ
ө͞Εͯɺߋʹݕূ͞ΕΔ ४උ͕ສશͳΒຊ൪ڥʹQSPNPUFʢঢ֨ʣ͠ ͯɺΤϯυϢʔβʔʹͬͯΒ͏
Heroku Review Apps master feature App: my-mockup AutoDeploy: master
Heroku Review Apps master feature App: my-mockup AutoDeploy: master
Heroku Review Apps master feature App: my-mockup AutoDeploy: master
Heroku Review Apps master feature App: my-mockup AutoDeploy: master App:
my-mockup-pr765 ParentApp: my-mockup
Heroku Review Apps master feature App: my-mockup AutoDeploy: master App:
my-mockup-pr765 ParentApp: my-mockup
Heroku Review Apps master feature App: my-mockup AutoDeploy: master App:
my-mockup-pr765 ParentApp: my-mockup App: my-mockup-pr766 ParentApp: my-mockup
w ίʔυϕʔεϨϏϡʔ(JU)VCͰ w ݟͨΠϯλϥΫγϣϯͷ ϨϏϡʔ3FWJFX"QQͰ
w ΄͔ʹ୭͕࡞ۀͯ͠Δͷ͔ؾʹ͠ ͳͯ͘ྑ͍ w (JU)VCͰNBTUFSϒϥϯνΛ QSPUFDU͢Δ͜ͱͰϨϏϡʔ͢Γൈ ͚NBTUFSQVTIͳͲͷ࣏҆ͷѱ ͍ߦҝΛېࢭͰ͖Δ w ݟͨͷࠩҟΛ֬ೝ͍͢͠
Herokuͱ ϦϦʔε 02
ܧଓతʹʜʜ w ػೳՃ w จݴௐ w ෆ۩߹मਖ਼ w ϦϦʔεࣄނͷϩʔϧόοΫ ˠ͘͘͞͞ϦϦʔε͍ͨ͠
ͱ͋Δ"84Ҋ݅ w εςʔδϯάͱຊ൪͕ଘࡏ w (JU)VCར༻ w ϦϦʔε44)Ͱೖͬͯ $ git pull
origin master
εςʔδϯάʁʁʁ w CSBODIΛΓସ͑ͯ֬ೝ͍ͯ͠Δ w NBTUFSͰͳ͍ϒϥϯνʹ͍Δ࣌ʹ Ͳ͏ͳͬͯΔͷ͔Θ͔Βͳ͍ʢ֬ ೝதʁ͠Εʁʣ w ֬ೝதʹόάमਖ਼ͨͯ͘͠ϫνϟ ϫνϟ
֬ೝڥͨΓͳ͍ʜ
શ෦·ͱΊͯ֬ೝ
ා͍ʂ
ϦϦʔεΛා͕Βͣʹߦ͏ʹʁ w ͪΌΜͱςετͯ֬͠ೝͰ͖Ε ා͘ͳ͍ w ਓඞͣϛεΛ͢Δɻى͜͞ͳ͍ ͷ͕Ұ൪͚ͩͲɺىͬͨ࣌͜ʹ͢ ͙ʹରॲͰ͖ΔΈ͕ඞཁ w ҰճʹυΧοͱΔͱࢮ͕ݦݱ
͔͠͠
͚ࣗͨͪͩͷ ϓϩμΫτ͡Όͳ͍
͓٬༷ͷ߹͋Δ w ֬ೝ͓٬͞Μʹͯ͠Β͏ w ϦϦʔελΠϛϯάίϯτϩʔ ϧ͍ͨͣ͠ w ͖ͤΓ͡Όͳͯ͘ɺڠۀͯͬ͠ ͍͖͍ͯͨ w
ຖϓϩμΫτʹுΓ͍ͯ͘Ε Δʁʁ
IUUQXXXCBDLMPHKQHJUHVJEFTUFQVQTUFQVQ@IUNM ϦϦʔεϒϥϯν
࣍ճ ຊ൪ εςʔδϯά Քಇத εςʔδϯά
࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά
ػೳՃ# ࣍ճ ຊ൪ εςʔδϯά Քಇத εςʔδϯά
࣍ճ ຊ൪ εςʔδϯά Քಇத εςʔδϯά
࣍ճ ຊ൪ εςʔδϯά Քಇத εςʔδϯά
࣍ճ ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά ࠩҟ
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά release ࠩҟ
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά release master ࠩҟ
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά release master ࠩҟ
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά release master ࠩҟ
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά release master ࠩҟ
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά release master
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά release master
࣍ճ ຊ൪ εςʔδϯά ػೳՃ$ ࣍ʑճϦϦʔε Քಇத εςʔδϯά release master
Roll back w εφοϓγϣοτͷ3PMMCBDL͕ Մೳɻ͋͘·ͰҰ࣌తʹɻ w σϓϩΠ͞Εͨॱʹͭ͘όʔδϣ ϯ൪߸ͱͦͷ࣌ͷίϛοτϋογϡ ΛνΣοΫͯͦ͠ͷϦϏδϣϯʹ ͤΔ
˞"EEPOTͷঢ়ଶมԽ͠ͳ͍
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: bbbbbbb
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ࣄނ
hash: aaaaaaa hash: bbbbbbb hash: bbbbbbb
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ࣄނ
hash: aaaaaaa hash: bbbbbbb
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ࣄނ
hash: aaaaaaa hash: bbbbbbb hash: aaaaaaa
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa मਖ਼
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa मਖ਼
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ⾠ෆ۩߹
hash: aaaaaaa hash: bbbbbbb hash: aaaaaaa
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ⾠ෆ۩߹
hash: aaaaaaa hash: bbbbbbb hash: aaaaaaa IPUpY hash: ccccccc
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ⾠ෆ۩߹
hash: aaaaaaa hash: bbbbbbb hash: aaaaaaa IPUpY hash: ccccccc
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ⾠ෆ۩߹
hash: aaaaaaa hash: bbbbbbb hash: aaaaaaa IPUpY hash: ccccccc hash: ccccccc
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ⾠ෆ۩߹
hash: aaaaaaa hash: bbbbbbb hash: aaaaaaa IPUpY hash: ccccccc hash: ccccccc
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ ⾠ෆ۩߹
hash: aaaaaaa hash: bbbbbbb hash: aaaaaaa IPUpY hash: ccccccc hash: ccccccc hash: ccccccc
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa IPUpY hash: ccccccc hash: ccccccc hash: ccccccc
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa IPUpY hash: ccccccc hash: ccccccc hash: ccccccc
ػೳՃ# ࣍ճ ػೳՃ" ࣍ճϦϦʔε ຊ൪ εςʔδϯά Քಇத εςʔδϯά ࠩҟ hash:
aaaaaaa hash: bbbbbbb hash: aaaaaaa IPUpY hash: ccccccc hash: ccccccc hash: ccccccc hash: bbbbbbb !ccccccc
(JU)VCଆͷઃఆ w NBTUFSQVTIͯ͠ຊ൪ʹө ͞Εͳ͍ͷͰฏ w ߋʹฏҡ࣋Λաܹʹ͢ΔͳΒGPSL ܗࣜʹͯ͠SFMFBTFϒϥϯνΛकΔ
)FSPLVଆͷઃఆ w ຊ൪ڥ͓٬͞Μͱཧऀ͚ͩ ৮ΕΔΑ͏ʹ͢Δ w ΞυΦϯΛ৮͍͍͔ͬͯνΣοΫ w ڥมΛ֬ೝ͠ͳ͍ͱ%#Λ(6* Ͱ͍͡Εͳ͍
࣍ճ ຊ൪ εςʔδϯά Քಇத εςʔδϯά ઌํ୲ऀ ཧऀ ύʔτφʔ σΟϨΫλʔ deploy
or operate Add-ons
IUUQRJJUBDPNMMISLMMJUFNTFCCGCE खલຯḩ Ͱ͕͢
Herokuͱ ςετ 03
CI/CD Continuous Integration Continuous Delivery "HJMF
w ʮ࠷ॳʹ͓͖ͬͯ͘ʯ w ʮ࣭ཧΛ͍εύϯͰʯ w ʮςετ͕௨Βͳ͍ͷϨϏϡʔ ͠ͳ͍ʯ
͍
͍͖ͬͯ·͠ΐ͏
HerokuCI + CircleCI
HerokuCI w ඵͰམͪͯͨʢࠓվળʣ ˠ8FC"1*ͷςετ͕Ͱ͖ͳ͔ͬ ͨ w ϦϙδτϦͷ1VTIʹରԠ࣮ͯ͠ߦɻ 3FWJFXBQQͷൃੜͰͳ͘QVTI Ͱ࡞ w
EZOPΛফඅ w "EEPOTΛ͑Δ
CircleCI w ݁ՌΛ֬ೝ͍ͨ͠ͷʹ(JU)VC0SHT Ͱ0VUTJEF$PMMBCPSBUPSͩͱμϝɻ 0SHBOJ[BUJPO"DDFTT͕ඞཁʁ w ֎෦ͷύʔτφʔ͞ΜΛ.FNCFS ʹ͢ΔͱϦϙδτϦͷӾཡɾ࡞ ΛҰൠʹ։์Ͱ͖ͳ͘ͳΔ w
5FBNͰࣗͨͪͷϝϯόʔ͚ͩ ͷνʔϜΛ࡞ͬͯຖճͦΕΛׂ ΓͯΔํʹมߋ
None
–࡞ۀऀ͍Θ͘ l1)1ͰDJSDMFZNMͱ͔ॻ͘ͷ͍ͨΜʜz
·ͩ·ͩ͜Ε͔Β
ࠓޙ w εϐʔσΟʹ࡞Γ͡ΊΔͨΊͷ ϘΠϥʔϓϨʔτɾࣾυΩϡϝ ϯτ w %PDLFSͲ͏ͳͷ w ͦͦςετΛͪΌΜͱॻͧ͘ FUD
Thank you for your listening!