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
デプロイのたびに障害が起こるシステムを安全にした話
Search
OMOTO Kenji
November 22, 2018
Programming
0
2.4k
デプロイのたびに障害が起こるシステムを安全にした話
Sansan×M3 Tech Night ~レガシーシステムに立ち向かえ!~
OMOTO Kenji
November 22, 2018
Tweet
Share
More Decks by OMOTO Kenji
See All by OMOTO Kenji
Micro editor
doloopwhile
0
79
なぜCLIツールはGoで書くべきなのか? Go beyond Python
doloopwhile
7
7.7k
Other Decks in Programming
See All in Programming
Portapad紹介プレゼンテーション
gotoumakakeru
1
130
ソフトウェアテスト徹底指南書の紹介
goyoki
1
130
MLH State of the League: 2026 Season
theycallmeswift
0
210
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
130
旅行プランAIエージェント開発の裏側
ippo012
1
590
CSC305 Summer Lecture 12
javiergs
PRO
0
130
Rancher と Terraform
fufuhu
2
170
Go言語での実装を通して学ぶLLMファインチューニングの仕組み / fukuokago22-llm-peft
monochromegane
0
110
AIエージェント開発、DevOps and LLMOps
ymd65536
1
370
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
180
Testing Trophyは叫ばない
toms74209200
0
120
Trem on Rails - Prompt Engineering com Ruby
elainenaomi
1
100
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
184
22k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.8k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Faster Mobile Websites
deanohume
309
31k
Agile that works and the tools we love
rasmusluckow
330
21k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
How STYLIGHT went responsive
nonsquared
100
5.8k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Typedesign – Prime Four
hannesfritz
42
2.8k
Transcript
σϓϩΠͷͨͼʹো͕ى͜ΔγεςϜΛ ҆શʹͨ͠ Sansan×M3 Tech Night ʙϨΨγʔγεςϜʹཱ͔ͪ͑ʂʙ M3 খຊ݈࢘
• ϓϩάϥϚʔ̒ / ΤϜεϦʔ̏ • ΤϜεϦʔͰɺج൫։ൃνʔϜ • ෳࣄۀͰ༻͢ΔαʔϏεͷ։ൃɾӡ༻ •
ࣾͷ։ൃڥͷվળ • ϓϩάϥϛϯάݴޠ: Python, Ruby, Java, Kotlin, Scalaʢͭ·Γશͯʣ খຊ݈࢘ʢ͓ͱ͚Μ͡, doloopwhileʣ
ϝʔϧίϯγΣϧδϡ • ͷձһ͚ϝϧϚΨ৴γεςϜ • Ruby on Rails • ߴػೳʢ։෧ܭଌɺA/BςετɺαʔϏεؒ࿈ܞͳͲʣ
• ຖ݄500ສ௨Ҏ্ͷϝʔϧΛૹ৴ • ॏཁͳϨΨγʔγεςϜ ͚ͩͲɾɾɾ2016͝Ζ·Ͱ σϓϩΠ͕ਏ͔ͬͨʂʂ
͗͢͠ΔσϓϩΠ • αʔόʔʹSSH͠ɺख࡞ۀͰσϓϩΠ • εςοϓ͕ଟ͍ • ϦϦʔε༰ʹΑͬͯ࡞ۀखॱ͕ҟͳΔ • ࣌ؒత੍ʢϝϧϚΨΛࢭΊͯɺͦͷؒʹ࡞ۀ͢Δʣ
• खॱυΩϡϝϯτԽ͞Ε͍ͯͳ͍
͗͢͠ΔσϓϩΠ • αʔόʔʹSSH͠ɺख࡞ۀͰσϓϩΠ • εςοϓ͕ଟ͍ • ϦϦʔε༰ʹΑͬͯ࡞ۀखॱ͕ҟͳΔ • ࣌ؒత੍ʢϝϧϚΨΛࢭΊͯɺͦͷؒʹ࡞ۀ͢Δʣ
• खॱυΩϡϝϯτԽ͞Ε͍ͯͳ͍ →৽ਓ͕࡞ۀ͢ΔͱඞͣোΛى͜͢
σϓϩΠͰͯ͘͠։ൃͰ͖ͳ͍ ޭͨ͠߹Ͱ • σϓϩΠத৴Ͱ͖ͳ͍ͷͰɺεέδϡʔϧௐ͕ඞཁ • σϓϩΠ࡞ۀʹ30 • σϓϩΠޙͷ֬ೝ࡞ۀʹ15 ো͕͓͖Δͱ
• ௐࠪͱ෮چ࡞ۀʹ30 • ૹΕͳ͔ͬͨѼઌʹ࠶ૹ৴͢Δͷʹ̎ɾ̏࣌ؒ • σϓϩΠͨ͢͠Ίʹɺ͏Ұεέδϡʔϧௐ
ʢσϓϩΠ͢Δͷʹ͕͔͔࣌ؒΔ͔Βʣ ͦΜͳখ͞ͳෆ۩߹Λ͢ͷ࣌ؒͷແବͰ͠ΐ ࣌ݴΘΕͨ͜ͱ
͜Μͳͷ͓͔͘͠ͳ͍ʁ @2016 य़ Github1175ճσϓϩΠ͍ͯ͠Δͷʹʂʢ2012ࠒͷʣ ͬͱ։ൃ͢Δ͕࣌ؒཉ͍͠ʂ
Ͱɺࠓಈ͍͍ͯΔͷࢭΊΒΕͳ͍ • ໌ɺϝϧϚΨͷ৴͕͋Δ • དྷिɺࢪࡦͷͨΊʹػೳΛՃ͢Δ • དྷ݄ɺ৽͍͠ϝϧϚΨΛՃ͢Δ • ͦͦࠓͷঢ়ଶͰԿ͔มߋΛՃ͑Δ͜ͱةݥʂʂ
→ ࠓ͋ΔͷΛগͣͭ͠վྑ͢Δ͜ͱʹ
σϓϩΠखॱॻΛ࡞ͬͨ サーバーにSSHする cd /app/mail_concierge/mail_concierge/ git pull origin master サーバーを再起動
テスト配信する ͦΕ·Ͱͷखॱॻ ۩ମతʹԿΛ͢Ε͍͍ͷʁ ৽ਓʹ͔Βͳ͍
ςετ৴͢Δ NBJMDPOUFOUTYMTΛμϯϩʔυ͢Δ ʮࣄલੜίϯςϯπʯը໘͔ΒNBJMDPOUFOUTYMTΛΞοϓϩʔυ͢Δ ͜ͷ࣌ʮʯࠓΛࢦఆ͢Δ ʮ৴ొʯը໘͔ΒҎԼͷ༰Λೖྗ͠ɺʮ৴ొʯ͢Δ αʔϏεʮ৴ςετʯ ϝϧϚΨʮ৴ςετʗ)5.-ʯ ϝʔϧςϯϓϨʔτʮσϓϩΠ࣌ࢼݧ৴ʯʮσϓϩΠ࣌ࢼݧ৴ʯ ৴Ϧετʮ৴ϦετͷछྨΛબ৴ςετ༻Ϧετʯ
৴໊ʮσϓϩΠ࣌ࢼݧ৴::::..%%ʯ ϓϨ৴ʮʯ উऀܾఆϩδοΫʮ։෧ͷΫϦοΫʯ ϓϨ৴։࢝࣌ݱࡏ࣌ࠁ͔Βޙ ຊ৴։࢝࣌ݱࡏ࣌ࠁ͔Βޙ ৴ରϥϯΫʮ৴ରϥϯΫΛࢦఆ͢Δ/0ʯ ৽͍͠खॱॻ ίϐϖ͢Δ͚ͩͰΑ͍ͷͰɺ୭Ͱ҆શʹ࡞ۀͰ͖Δɻ
σϓϩΠͷࣗಈԽ • FabricɾCapistranoͳͲΘͳ͔ͬͨ • ϝϯόʔʹ༻ܦݧ͕ͳ͍ʢௐΔ͕͍࣌ؒͬͨͳ͍ʣ • ࣾͰਪ͍ͯ͠Δਓ͍ͳ͍ • ΦʔόʔεϖοΫʢॱʹίϚϯυΛ࣮ߦͰ͖Εेʣ
• ֤αʔόʔʹஔ͍ͨBashεΫϦϓτΛSSHͰ࣮ߦ͢Δ • ࣗಈԽͰ͖ΔͷɺRubyίʔυͷσϓϩΠͷΈ
νΣοΫ࡞ۀͷࣗಈԽ • DBଓͷ֬ೝ • աڈʹDBଓपΓͰো͕ଟ͔ͬͨ • ֤DBʹଓ͠ΫΤϦ͢ΔεΫϦϓτΛՃ • ςετ৴ΛSeleniumͰࣗಈԽ
• σϓϩΠޙͷ֬ೝ࡞ۀ͕ෆཁʹͳͬͨ • ࣦഊ࣌ʹ௨͞ΕΔͷͰσϓϩΠޙ์ஔͰOK
վྑ & վྑ • εϐʔυΞοϓ • Git ͷϛϥʔϦϯάϨϙδτϦ •
Ruby ͷϥΠϒϥϦΛΩϟογϡ • ͨ·ʹߦ͏ख࡞ۀʹπʔϧΛಋೖ • crontab ͷॻ͖͑ɿ whenever • DBͷϚελʔσʔλߋ৽ɿ seed_fu
σϓϩΠ͏ා͘ͳ͍ʂ վળʹཁͨ͠ظؒɿ20164݄ʙ12݄ σϓϩΠ࡞ۀ5Ͱྃ͠·͢ ϝϧϚΨΛࢭΊΔඞཁ͋Γ·ͤΜ ࣄނ΄ͱΜͲى͖·ͤΜ ։ൃʹ࣌ؒΛׂ͚ΔΑ͏ʹͳΓ·ͨ͠
ͳ্ͥख͍ͬͨ͘ͷ͔ʁ গͣͭ͠ʮࠓ͙͢ޮՌ͕͋Δͷʯ͔ΒखΛ͚ͭͨ • ʮվળͰ࣌ؒઅ → ༨ͬͨ࣌ؒͰ͞Βʹվળʯ • Ұվળ͢Δͱ৽ͨͳվળ͕ݟ͔ͭΔ •
্࢘ར༻ऀͱͷަব͕ෆཁͩͬͨ
ૣ͍ஈ֊Ͱʮݟ͑ΔԽʯ͢Δͷ͕େࣄ ࠷ॳʹʢෆ֨ͰʣखॱॻίʔυΛ࡞ͬͨ • ݟ͑ΔͷվળͰ͖Δ • ϨϏϡʔͰ͖Δ • มߋ͢Εɺϝϯόʔશһ͕ԸܙΛड͚Δ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ https://m3.recruitment.jp/engineer/ ΤϯδχΞؒืूதͰ͢