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
YAPC::Kansai
Search
papix
March 04, 2017
Programming
0
6.8k
YAPC::Kansai
papix
March 04, 2017
Tweet
Share
More Decks by papix
See All by papix
YAPC::Kyotoの「全て」 / All of "YAPC::Kyoto"
papix
0
1.4k
イベントの中の人 / Inside the Events
papix
0
250
2022年に始めるPerlでWebサービス開発(趣味)
papix
0
500
ワーケーションに関する考察
papix
3
2.1k
(今更)Amplifyさっくり体験
papix
0
830
はてなにおけるGitHub Actions活用事例 / GitHub Actions in Hatena
papix
0
2.1k
ミススペルを発見するmisspellのご紹介 / Introduce misspell
papix
0
1.1k
「知らなかった」を聞きに行く 〜海外カンファレンス参加のススメ〜 / builderscon 2019
papix
0
330
Perl in Japan
papix
0
2.6k
Other Decks in Programming
See All in Programming
Amazon Q Developer Proで効率化するAPI開発入門
seike460
PRO
0
120
Open source software: how to live long and go far
gaelvaroquaux
0
660
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
0
150
自力でTTSモデルを作った話
zgock999
0
100
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
160
AIプログラミング雑キャッチアップ
yuheinakasaka
18
4.4k
Flutter × Firebase Genkit で加速する生成 AI アプリ開発
coborinai
0
170
sappoRo.R #12 初心者セッション
kosugitti
0
280
SwiftUI Viewの責務分離
elmetal
PRO
2
270
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
17
4k
生成AIで加速するテスト実装 - ロリポップ for Gamersの事例と 生成AIエディタの活用
kinosuke01
0
120
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
260
Featured
See All Featured
The Cult of Friendly URLs
andyhume
78
6.2k
Docker and Python
trallard
44
3.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
Designing on Purpose - Digital PM Summit 2013
jponch
117
7.1k
Building an army of robots
kneath
303
45k
Facilitating Awesome Meetings
lara
52
6.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
4 Signs Your Business is Dying
shpigford
182
22k
Navigating Team Friction
lara
183
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Transcript
PerlͷWebΞϓϦέʔγϣϯΛ σϓϩΠ͢Δ࣌ʹ ୡ͕ߟ͑ͨ͜ͱ papix (Hatena Co., Ltd.)
͡Ίʹ
None
Θͨ͠Ͱ͢
None
ͯͳ͔Βདྷ·ͨ͠
ͭͬͯ͘·͢
papix • Twitter: @__papix__ • GitHub: papix • CPAN: PAPIX
• Blog • Technology: http://papix.hatenablog.com/ • My Life: http://papix.hatenablog.jp/
PerlͷWebΞϓϦέʔγϣϯΛ σϓϩΠ͢Δ࣌ʹ ୡ͕ߟ͑ͨ͜ͱ papix (Hatena Co., Ltd.)
σϓϩΠͱ?
σϓϩΠͱ? • WebαʔϏε(େ)ࣗͷPCͰ։ൃ͢Δ • ͦͷαʔϏεΛ, ϢʔβʹͬͯΒ͏ʹ? • Կ͔͠ΒͷαʔόʹňσϓϩΠʼnͯ͠, • ňγεςϜΛར༻Մೳͳঢ়ଶʹʼn͠ͳ͚Ε
ͳΒͳ͍
αʔϏεͷ྆ྠ • ň։ൃʼnͱňσϓϩΠʼnαʔϏεͷ྆ྠ • ։ൃ, σϓϩΠ, ։ൃ, σϓϩΠ… • ͦͷͨΊ,
σϓϩΠͷॏཁߴ͍! • σϓϩΠͳͯ͘͠αʔϏεͳ͠!!!!
σϓϩΠͷॏཁੑ • αʔϏεͷՁΛߴΊΔҝʹඞཁෆՄܽ • ϢʔβͷମݧΛଛͶͳ͍Α͏ʹ… • ͳΔ͘μϯλΠϜͳ͘… (ແఀࢭͰ) • σϓϩΠࣦഊͰαʔϏε͕ظؒࢭ·Δ
• ΦϖϨʔγϣϯϛεͰσʔλ͕ফ͑Δ
σϓϩΠʹਖ਼ղͳ͠ • Ԧಓ(ύλʔϯ)͋Δͷͷ, ม͕ଟ͍ • αʔϏεͷػೳ, Πϯϑϥߏ, ։ൃऀͷ, Ϣʔβ, ར༻͢Δݴޠ,
WAF, ϛυϧΣΞ, อଘ͢Δσʔλͷྔ… • ͍Ζ͍Ζͳͷͱ͖߹͏ඞཁ͕͋Δ
αʔϏεͱਐԽ͢ΔσϓϩΠ • αʔϏεͷਐԽʹ͍࠷ળղ͕มΘ͍ͬͯ͘ • ࠷ॳखಈͰ͍͚ΔΑͶ • खಈͩͱΦϖϛε͢Δ͔ΒࣗಈԽ͍ͨ͠Ͷ • ૿͑Δͱਏ͍͔Βฒྻ࣮ߦ͍ͨ͠Ͷ •
etc…
σϓϩΠʹ͍ͭͯ࠷ۙࢥ͏ࣄ • (ۀͷ߹)ඞཁ࠷ݶʹཹΊΔ • ࠷ॳ͔ΒཧΛ࣮ݱ͢Δͱ, ίετߴ͍ • ΦʔόʔςΫϊϩδʔʹΓ͕ͪ • Ҿ͖ܧ͗େมʹͳͬͯ͠·͏…
• ͍ͭͰۀͰ͑ΔΑ͏ʹ, झຯͷྖҬͰ৽͍͠Γํ, πʔϧΛࢼͤΔͱྑ͍!
σϓϩΠʹ͍ͭͯ ߟ͑Δ
σϓϩΠʹࢥ͍ΛͤΔ • ͪΌΜͱͨ͠σϓϩΠΛ࣮ݱ͢Δʹ? • ͍Ζ͍Ζͳࣄͱ͖߹͏ඞཁ͕͋Δ • ݱ࣮ͱ͔͍߹͍͖ͬͯ·͠ΐ͏ • ޭ, టष͍࡞ۀͷੵΈॏͶͷઌʹ͋Δ
͍Ζ͍Ζͳͷͱ ͖߹͓͏
Ͳ͜ʹσϓϩΠ͢Δ? • αʔϏε͕ಈ͘Πϯϑϥͱ͖߹͏ • VPS (Virtual Private Server) • IaaS
(Infrastructure as a Service) • PaaS (Platform as a Service) • ΦϯϓϨαʔό / ࣗαʔό
ԿΛσϓϩΠ͢Δ? • αʔϏεͦͷͷͱ͖߹͏ • όονϫʔΧʔ͋Δ͔? • ϞϊϦγοΫ? ϚΠΫϩαʔϏε? • JavaScript͋Δ͔?
ͦͷϏϧυ? • ϥΠϒϥϦͷΠϯετʔϧ/ߋ৽?
Ͳ͏ͬͯσϓϩΠ͢Δ? • αʔϏε, ར༻͢ΔϛυϧΣΞͱ͖߹͏ • Ͳ͏ͬͯϓϩηεΛಈ͔͔͢? • αʔϏεͷ࠶ىಈͲ͏͢Δ͔? • RDBMSͷϚΠάϨʔγϣϯඞཁ͔?
• ΩϟογϡͷഁغͳͲߟྀ͠ͳ͍ͱ͍͚ͳ͍͔?
ͲΜͳσϓϩΠʹ͢Δ? • αʔϏεΛ։ൃ͢ΔνʔϜͱ͖߹͏ • σϓϩΠʹ͑Δίετ? (ίετ) • खಈͰ͢Δ? ࣗಈԽ͢Δ? (ࣗಈԽ)
• σϓϩΠແఀࢭ? ϝϯςΛೖΕΔ? (Մ༻ੑ) • ͲΕ͚ͩσϓϩΠ͍ͨ͠? (σϓϩΠස)
ňσϓϩΠͷϏδϣϯʼnେࣄ • ňͲΜͳσϓϩΠʹ͢Δʼnʹ͋ͨΔ෦ • ܦݧଇͱͯ͠, ͜ͷลΓͷ߹ҙ/ܭը͕ࡶͩͱ, Φʔ όʔςΫϊϩδʔʹΓ͕ͪ • ଞͷཁૉʹൺ,
ׂͱࣗ༝͕ߴ͍(ͱࢥ͏) • झຯαʔϏεͰ͋Ε, νʔϜ = ࣗͳͷͰ͖উ खΕΔ!!!
ίετͷྫ • ໌ϦϦʔε͔ͩΒͳΔͰ! • සൟʹϦϦʔε͢Δ͠, ͔ͬ͠Γ࡞Γࠐ͏! • طଘͷࢿݯΛར༻ͯ͠, γϡοͱग़དྷͳ͍?
ίετͷิ • ߏஙίετͱ࣮ࢪίετ͕͋Δ • ߏஙίετˢ ͩͱ, ࣮ࢪίετ ↓ (ࣗಈ) •
ߏஙίετ ↓ ͩͱ, ࣮ࢪίετ ↑ (खಈ) • ࡶͳϏδϣϯͰਐΊΔͱͲͪΒΞήΞήʹ...
ࣗಈԽͷྫ • 1ίϚϯυͰσϓϩΠΛશͯྃͤ͞Α͏! • ్தͰ֬ೝΛڬΈ͍ͨͷͰ, ز͔ͭͷϑΣΠζ ʹ͚ͯ, ͦΕͧΕίϚϯυΛ࣮ߦ͠Α͏ • શ෦खಈͰΖ͏!
(ਖ਼ؾ͔!?)
ࣗಈԽͷิ • ઌʹհͨ͠ňίετʼnʹӨڹΛ༩͑Δ • ࣗಈԽΛߴΊΕߴΊΔ΄Ͳ, ࢦؔతʹ ίετ͕૿͍͑ͯ͘ (ͱࢥ͏) • νʔϜ/αʔϏεʹԠͯ͡దʹखಈ࡞ۀͷ
ཁૉΛڬΜͰ͍͘ͷ͕େࣄͳͷͰ?
Մ༻ੑͷྫ • σϓϩΠແఀࢭ(ϊʔϝϯς)ͰΓ͍ͨ! • ਂͰ͋ΕXͷఀࢭڐ༰Ͱ͖ΔͶ • ݄ʹXճαʔϏεΛࢭΊͯσϓϩΠͰ͖ͦ͏
Մ༻ੑͷิ • SLA(Service Level Agreement)ʹؔΘͬͯ͘Δ • झຯͷαʔϏεͰ͋Ε, ϦϦʔεͷʹఀࢭ͠ ౖͯΒΕΔ͜ͱͳͦ͞͏ •
͘ΘΕΔαʔϏε, ج൫తαʔϏεͩͱ, ͳΔ͘ແఀࢭͰσϓϩΠͰ͖ΔΑ͏ʹ͍ͨ͠!
σϓϩΠසͷྫ • 1ʹ10ճ͘Β͍σϓϩΠ͍ͨ͠! • िʹ1ճσϓϩΠͰ͖Εे͔ͳ... • 1ճ͋ͨΓXͰσϓϩΠ͍ͨ͠!
σϓϩΠසͷิ • αʔϏε։ൃॳظͰॏཁͳཁૉ • σϓϩΠճ = ϢʔβʹՁΛಧ͚Δࢼߦνϟϯε • ίετͰ, 1ʹԿσϓϩΠग़དྷΔͱྑ͍
• ྫ: GitHub (1100ճҎ্σϓϩΠ!) • ࠓ͍ͯ͠Δͷ͔ͳ...?
Ϗδϣϯ͕ࡶͩͱى͖Δ͜ͱ • σϓϩΠස͕͍ͷʹ, ϐλΰϥεΠονతʹ શࣗಈԽ͞ΕͨϞϊ্͕͕ͬͨΓ... • ͦͷίετͰαʔϏε։ൃΛޙԡ͠Ͱ͖ͨͷͰ!? • ࡶʹਐΊͯ, ͚ʹ࣌ؒͷ͔͔ΔϞϊ্͕͕ͬͨΓ...
• ҰʹԿσϓϩΠ͍ͨ͠ͷʹ…!
ΈΛม͑Δ͠͞ • Ұ࡞ͬͨΈ(͜͜ͰσϓϩΠ)Λޙ͔Βม͑ͯ ͍͘ͷඇৗʹ͍͠! • ຬ͖ͨ͢σϓϩΠͷϏδϣϯ(݅)͕͋ΔͳΒ, ຬͨͤΔΑ͏ʹ࠷ॳ͔ΒؤுΔ͖! • (࠷ॳ͔ΒϏδϣϯ͕ఆ·͍ͬͯͯ, ͣͬͱมΘΒͳ͍
ͳΒۤ࿑͠ͳ͍Ͱ͋Γ·͢!)
WebΞϓϦέʔγϣϯͷ σϓϩΠઓུ
खಈΦϖϨʔγϣϯ • αʔόʹଓͯ͠, खͰίʔυΛೖྗ • ίϚϯυΛؒҧ͑ͳ͍Α͏ʹ, खॱॻΛ࡞Δ • ͱ͍͑, ਓؒͳͷͰͨ·ʹؒҧ͑Δ…!
• αʔόʔͷ͕૿͑Ε, ΦϖϛεͷՄೳੑ ૿͍͑ͯ͘…
γΣϧεΫϦϓτʹΑΔࣗಈԽ • Ұ࿈ͷσϓϩΠॲཧͷͨΊͷίϚϯυΛ, γΣϧεΫϦϓτͰ·ͱΊ࣮ͯߦ͢Δ • σϓϩΠͷखॱΛίʔυʹམͱ͠ࠐΉ • ίʔυͳͷͰ࣮ߦग़དྷΔ, ಡΊΔ, मਖ਼Ͱ͖Δ!
• ͜Ε͕૿͑ͯ͘Δͱ, ֤αʔόͰεΫϦϓτΛ࣮ ߦ͢Δͷ͕େมʹͳͬͯ͘Δ…
πʔϧΛͬͨࣗಈԽ/ฒྻԽ • දྫCapistranoͳͲ • ༧ΊσϓϩΠઌͱͳΔαʔόΛొ͢Ε, ί Ϛϯυ1ͭͰશͯͷαʔόʹσϓϩΠՄೳ • ศརͳϔϧύʔ͕͋Γ, ίʔυͰσϓϩΠखॱ
Λߏங͍͢͠
πʔϧΛͬͨࣗಈԽ/ฒྻԽ • αʔόͷڥΛߏங͢ΔπʔϧͰߦ͏߹ • Ansible, Chefͱ͍ͬͨϓϩϏδϣχϯάπʔ ϧͷ׆༻ • ڥߏஙͱσϓϩΠΛҰؾ௨؏Ͱಉ͡πʔϧͰ ࣮ݱͰ͖Δ
• ࠷ॳͷҰาͱͯ͠Φεεϝ
πʔϧΛͬͨࣗಈԽ/ฒྻԽ • ۀͰ, ͜ͷล·Ͱ”ී௨ʹ"Δࣄ͕ଟ͍ • Infrastructure as CodeͷྲྀߦΓͱ͔… • ίʔυԽ͢Δ͜ͱͰ,
ଞνʔϜͷίʔυ/ݟΛྲྀ༻ ͍͢͠ͱ͍͏ͷ͋Δ • ୠ͠, Γ͗͢ΔͱࣾͰňΨϥύΰεతਐԽʼnΛ͢Δ ͜ͱ...
ߋͳΔਐԽͷํੑ • ňՌΛར༻͢Δʼnޮͷྑ͍σϓϩΠ • BotΛͬͨChatOps • CIπʔϧ, SaaSͷ׆༻ • σϓϩΠͷશࣗಈԽ
ňՌΛར༻͢ΔʼnσϓϩΠ
GitΛͬͨσϓϩΠ • GitΛ͍ͬͯΔ߹Λߟ͑Δ • GitHub, BitBucketͳͲ... • ϦϙδτϦʹ͋ΔίʔυΛσϓϩΠ͢Δ • ී௨ʹσϓϩΠ͢Δͱ,
Ͳ͏͍͏खॱʹͳΔ?
GitΛͬͨσϓϩΠ • ࣍ͷΑ͏ͳॲཧΛCapistranoͳͲͰߦ͏: • σϓϩΠରͷαʔόͷGitϦϙδτϦΛߋ৽ • ϥΠϒϥϦͷΠϯετʔϧ, ϏϧυΛ࣮ߦ • ΞϓϦέʔγϣϯΛ࠶ىಈ
• αʔό͕ෳଘࡏ͢Δ߹, ͦͷ֤ʑͰ࣮ࢪ͢Δ
? • GitϦϙδτϦʹෛ୲͕͔͔Δ • Ұʹෳͷαʔό͕GitϦϙδτϦΛಡΈऔΓʹߦ͘ • Ϗϧυʹ͔͔Δίετ(Ϧιʔε, ࣌ؒ)͕ແବ • શͯͷαʔόͰ,
`carton install`ͳͲ͕࣮ߦ͞Εͯ͠·͏ • JavaScriptͷϏϧυͳͲಉ༷
ňՌΛར༻͢ΔʼnσϓϩΠ • ༧Ί, σϓϩΠ͍ͨ͠ίʔυΛϏϧυ͓ͯ͘͠ • CIαʔόͷδϣϒͱͯ͠ߦ͏͜ͱ͕ଟ͍ • ͦͷňՌʼn͝ͱ, ίʔυΛtarͳͲͰݻΊΔ •
`local`σΟϨΫτϦ, Ϗϧυͨ͠JavaScript...
ňՌΛར༻͢ΔʼnσϓϩΠ • tarS3ʹஔ͓ͯ͘͠ • S3ͳͷͰ, ಉ࣌ΞΫηεʹڧ͍ • σϓϩΠରͷαʔό, S3͔ΒtarΛऔಘ, ల։ͯ͠࠶ىಈ͢ΕσϓϩΠྃ
• ͦΕͧΕͷαʔόͰϏϧυ͕ඞཁͳ͘ͳΔ
ňՌΛར༻͢ΔʼnσϓϩΠ • Consul + StretcherΛͬͨύλʔϯ • ʲະঝࠂʳ͜ͷޙͷmacopy͞Μͷ τʔΫͰ, ΧϠοΫʹ͓͚Δ۩ମྫͳͲ͕ ޠΒΕΔͷͰ!?
• ͳͷͰ, ͜͜Ͱେ·͔ͳ֓ཁͷΈ͓͠·͢
Consul + Stretcher • Stretcher • ΧϠοΫͷ@fujiwara͞Μۘ • HashiCorp”Consul”ͷeventΛར༻ͨ͠ σϓϩΠπʔϧ
Consul + Stretcher http://techblog.kayac.com/10_stretcher.html
Consul + Stretcher • ։ൃऀConsulʹeventΛ͛ΕOK! • Consul/StretcherΛΘͣ, CapistranoͰ ֤αʔόʹtarΛऔಘͤ͞, ల։ͯ͠࠶ىಈͱ͍
͏Γํ͋ΓಘΔ
BotΛͬͨChatOps
ChatOps (Hubot) • Botʹ͓ئ͍͢ΕσϓϩΠ͕ಈ͘ • Botͱνϟοτπʔϧ(Slack)Ͱަྲྀ • ňσϓϩΠͷՄࢹԽʼnʹͭͳ͕Δ • σϓϩΠͷ༷ࢠ͕νϟοτͰՄࢹԽͰ͖Δ
• ਐḿͱ͔, ͳͦ͞͏͔ͱ͔, ײ͍͢͡
CIπʔϧ/SaaSͷ׆༻
CIπʔϧ • ༷ʑͳҰ࿈ͷॲཧ(Job)Λཧ/࣮ߦͯ͘͠ΕΔ • σϓϩΠͷҝͷॲཧΛཧͤ͞Δ • Jenkins, Concourse CI, Circle
CIͳͲ… • ཤྺϩάΔͷͰ, ҆৺ײ͕͋Δ
Jenkins • σϑΝΫτελϯμʔυײ͕͋Δ • ࠷ۙ2.0͕ग़ͯ, Jenkinsfileͱ͍͏֓೦͕ొ • ίʔυͰδϣϒΛཧग़དྷΔΑ͏ʹͳͬͨ! • JenkinsΛཧ͢Δ͜ͱΛňհޢʼnͱݺΜͩΓ…
Concourse CI • PivotalͷύΠϓϥΠϯܕCIπʔϧ • ݟ͕ͨΊͬͪΌΠέͯΔ, ͔͍͍ͬ͜ • DockerΛ͍ͬͯͯ, δϣϒ͕Dockerͷ্
Ͱಈ࡞͢ΔͷͰ, ڥߏஙָ͕ͪΜ
Concourse CIͷ༷ࢠ https://qiita-image-store.s3.amazonaws.com/0/1852/4e14e419-5b1f-75f6-f623-6aac28c9788f.png
SaaSͳCI • Travis • GitHubͷpublicϦϙδτϦແྉͰ͑Δ • ଞʹCircle CI, WerckerͳͲ... •
ͪΖΜSaaSͳͷͰ, ༗ྉͳࣄ͕ଟ͍Ͱ͢
None
Mackerel • ͯͳͷαʔόཧ/ࢹͷͨΊͷSaaS • σϓϩΠͷҝʹňαʔόͷཧʼnॏཁ • ňͲͷαʔόʹσϓϩΠ͢Δ͔?ʼn • Capistrano +
Mackerelͷྫ • σϓϩΠରͷαʔόΛMackerel͔ΒΑ͠ͳʹݟ͚ͭͯ͘ΕΔ • https://mackerel.io/ja/docs/entry/advanced/capistrano-2.x
σϓϩΠͷશࣗಈԽ
σϓϩΠͷશࣗಈԽ • ͜͏͍ͬͨΈΛΈ߹ΘͤΕ, σϓϩΠͷશࣗಈ Խ࣮ݱͰ͖Δ • GitHubʹpushͨ͠ΒσϓϩΠྃ! • ୠ͠, શࣗಈԽʹϦεΫ͋Δ
• ňਓؒͷख͕ೖΔ༨ʼn͋Δछͷ҆શห • લड़ͷ௨Γ, ňͲ͜·ͰࣗಈԽ͢Δ͔?ʼnΛߟ͑Δ
σϓϩΠͱϚΠάϨʔγϣϯ
αʔϏεͱσʔλ • αʔϏε͕ར༻͢Δσʔλͷཧʹ͍ͭͯ ߟ͑ͳ͚Ε͍͚ͳ͍ • RDBMSʹσʔλΛอଘͨ͠Γ… • KVSΛར༻ͨ͠Γ… • ΦϒδΣΫτετϨʔδΛར༻ͨ͠Γ...
εΩʔϚͷมߋ • ΞϓϦέʔγϣϯͷσϓϩΠʹͬͯ, RDBMSͷεΩʔϚΛมߋ͍ͨ͠߹͋Δ • ৽͍͠ςʔϒϧΛ༻ҙ͍ͨ͠ • ςʔϒϧʹΧϥϜΛՃ͍ͨ͠ • εΩʔϚͷมߋ
-> ϚΠάϨʔγϣϯ
ϚΠάϨʔγϣϯ͢Δ • SQLͷALTERจΛଧͭ • GitDDL, GitDDL::Migrator, Anego, ͦͷࢧԉ Λ͢Δπʔϧୡ •
pt-osc • TriggerΛۦͯ͠, ͍͍ײ͡ʹϚΠάϨʔγϣϯ Λͯ͘͠ΕΔ܅
ϚΠάϨʔγϣϯͷ͠͞ • ALTERจͷ࣮ߦʹͲΕ͚͕͔͔ͩ࣌ؒΔ͔? • ϚΠάϨʔγϣϯޙΞϓϦಈ͔͘? • σϓϩΠલͷΞϓϦέʔγϣϯ͕, RDBMS ͷϚΠάϨʔγϣϯޙਖ਼͘͠ಈ͘ͳΒ, ແఀࢭͰσϓϩΠͰ͖Δ
Graceful Restart
Tl;dr • @shibayu_36͞ΜͷΤϯτϦΛಡ͏! • ňServer::Starter͔ΒֶͿhot deployͷΈʼn http://blog.shibayu36.org/entry/ 2012/05/07/201556 • τοϓΫϥεʹΘ͔Γ͍͢Graceful
Restart ͷࢿྉͰ͢
Graceful Restart • σϓϩΠ࣌ʹϓϩηεͷ࠶ىಈ͕ඞཁ • มߋͨ͠ίʔυΛద༻͢ΔͨΊ • ී௨ʹ࠶ىಈ͢Δͱ, ͦͷॠ͚ؒͩϦΫΤετΛࡹ͚ͳ͘ ͳͬͯ͠·͏
• αʔϏε͕ॠؒతʹμϯ͢Δ! • ͦ͜ͰGraceful Restart (༏խͳϦελʔτ)
PerlͷGraceful Restart • PerlͳΒ, Server::StarterҰ • ࣍ͷΑ͏ʹ͏:
http://blog.shibayu36.org/entry/2012/05/07/201556
http://blog.shibayu36.org/entry/2012/05/07/201556
http://blog.shibayu36.org/entry/2012/05/07/201556
http://blog.shibayu36.org/entry/2012/05/07/201556
http://blog.shibayu36.org/entry/2012/05/07/201556
http://blog.shibayu36.org/entry/2012/05/07/201556
ͯͳͷσϓϩΠ
ͯͳͱσϓϩΠ • ͨ͘͞ΜͷαʔϏεΛӡ༻͍ͯ͠Δ • ͦͷͦΕͧΕʹσϓϩΠϑϩʔ͕͋Δ • ࠓճͯͳϒϩάνʔϜΛྫʹ...
ͯͳϒϩάνʔϜͷσϓϩΠ • ։ൃऀΈΜͳσϓϩΠͰ͖Δ • σϓϩΠຖʹͩΕ͔͕ΞαΠϯ͞ΕΔ • ༦ํ, ༵ۚσϓϩΠ͠ͳ͍
ϒϥϯνӡ༻ • masterϒϥϯν • ຊ൪ڥͰಈ͍͍ͯΔίʔυ • staging/masterϒϥϯν • stagingڥͰಈ͍͍ͯΔίʔυ •
։ൃ༻ͷϒϥϯν(τϐοΫϒϥϯν)staging/masterʹ Pull Requestͯ͠Ϛʔδ
खॱॻͷࣗಈੜ • git-pr-release Ͱखॱॻͷࣗಈੜ • staging/master ͔Β master ͷPull Requestͷdescription͕खॱॻʹͳΔ
• ޙखॱॻʹै͍͚ͬͯͬͯͩ͘!
None
None
ײ • (ಈ࡞֬ೝΛআ͚)10͘Β͍ͰऴΘΔ • શࣗಈԽͰͳ͘, ࣗಈԽ • αʔϏεͷنখ͘͞ͳ͍ͷͰ, ్தखಈ ʹΑΔ֬ೝϑΣΠζΛڬΜͰ͍Δ
• ň҆શʹ͍ͯ͠Δʼnҹ
ײ • ໘ͳ/࣌ؒͷ͔͔ΔॲཧJenkinsʹͤ, ॏେͳλεΫਓ͕ؒखݩͰ࣮ߦ͢Δ • Slackʹ༷ࢠΛྲྀͭͭ͠, ϩάΛ֬ೝ͢Δ • ϦϦʔελΠϛϯάͳͲߟྀ͠ͳ͍ͱ͍͚ͳ ͍͕,
͔ͳΓΧδϡΞϧʹσϓϩΠ͍ͯ͠Δ
·ͱΊ
·ͱΊ • αʔϏεͷ։ൃͱσϓϩΠ྆ྠ • ͔ͬ͠Γߟ͍͑ͯ͘ඞཁ͕͋Δ • ࠷ݶͷίετͰ, ࠷ྑͷޮΛٻΊͯ • σϓϩΠ,
͔ͬ͠Γߟ͍͖͑ͯ·͠ΐ͏
We are hiring! ͯͳͰ, ϞϦϞϦ։ൃ, ͲΜͲΜσϓϩΠΛ Ұॹʹ͍ͬͯ͘ΤϯδχΞΛืू͍ͯ͠·͢!
We are hiring! http://hatenacorp.jp/recruit/career/application-engineer