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.9k
YAPC::Kansai
papix
March 04, 2017
Tweet
Share
More Decks by papix
See All by papix
Houtou.pm #1
papix
0
1.8k
Perl歴約10年のエンジニアがフルスタックTypeScriptに出会ってみた
papix
1
700
YAPC::Kyotoの「全て」 / All of "YAPC::Kyoto"
papix
0
1.6k
イベントの中の人 / Inside the Events
papix
0
330
2022年に始めるPerlでWebサービス開発(趣味)
papix
0
590
ワーケーションに関する考察
papix
3
2.3k
(今更)Amplifyさっくり体験
papix
0
900
はてなにおけるGitHub Actions活用事例 / GitHub Actions in Hatena
papix
0
2.7k
ミススペルを発見するmisspellのご紹介 / Introduce misspell
papix
0
1.2k
Other Decks in Programming
See All in Programming
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
570
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
400
Oxlintはいいぞ
yug1224
5
1.3k
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
2026年 エンジニアリング自己学習法
yumechi
0
130
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
230
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
高速開発のためのコード整理術
sutetotanuki
1
400
CSC307 Lecture 06
javiergs
PRO
0
690
Architectural Extensions
denyspoltorak
0
290
Basic Architectures
denyspoltorak
0
670
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Paper Plane (Part 1)
katiecoart
PRO
0
4.2k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Being A Developer After 40
akosma
91
590k
Producing Creativity
orderedlist
PRO
348
40k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
320
The browser strikes back
jonoalderson
0
370
My Coaching Mixtape
mlcsv
0
48
Navigating Team Friction
lara
192
16k
KATA
mclloyd
PRO
34
15k
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
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