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
稼働中の Web サービスの perl のバージョンを上げていく
Search
astj
PRO
July 01, 2017
Technology
7.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
稼働中の Web サービスの perl のバージョンを上げていく
YAPC::Fukuoka 2017 HAKATA
astj
PRO
July 01, 2017
More Decks by astj
See All by astj
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
550
Mackerel の時系列データベースにおける Redis Cluster の利用と Amazon ElastiCache への移行について / AWS Purpose-Built Databases Week
astj
PRO
3
6.1k
Mackerel のコンテナ監視の近況 / Mackerel Meetup #13
astj
PRO
1
2.6k
Observability: Mackerel による観測と Mackerel の観測 / NoOps Meetup Tokyo #8
astj
PRO
2
2.4k
サービス開発と健全なプロダクトメンテナンスを開発チームで持続的に取り組む / Developers Boost KANSAI
astj
PRO
1
1.5k
Mackerel and Stripe / Qiita x Stripe Meetup
astj
PRO
0
5.7k
Mackerel をオンプレミスから AWS に移してからの1年半を振り返る / Hatena Engineer Seminar #11
astj
PRO
0
1.3k
AWS で実現した Mackerel 時系列データ1分粒度長期保存の裏側 / Mackerel Meetup #11 Tokyo
astj
PRO
6
31k
Perl 6 で Web Application Framework をつくる
astj
PRO
0
4.8k
Other Decks in Technology
See All in Technology
気軽に使える"情報のハブ"としてのNotion活用 〜フロー情報の集積点 と、 Claude Code × Notion AI〜
syucream
1
210
ご挨拶「10周年を迎える共創ラボのこれまでとこれから」
iotcomjpadmin
0
140
5分でわかるDuckDB Quack
chanyou0311
4
260
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
210
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
190
Microsoft のサポートとフィードバック総まとめ
murachiakira
PRO
0
110
ぼっちではじめた登壇が「51名」「241件」の発信に化けた
subroh0508
1
320
AIに障害切り分けを全部やってもらった。 。 。 。
estie
0
200
フルAIで個人開発して学んだあれこれ / yuruai vol.1
isaoshimizu
0
140
toB プロダクトから見たWAF
tokai235
0
220
Multi-Agent並列開発を 安全に回すための技術 / Technology for Safely Multi-Agent Parallel Development
tooppoo
0
210
iOS アプリの「これって不具合ですか?」を AI に調べてもらう
miichan
0
150
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
320
Paper Plane
katiecoart
PRO
1
52k
Between Models and Reality
mayunak
4
350
Ruling the World: When Life Gets Gamed
codingconduct
0
260
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
200
Producing Creativity
orderedlist
PRO
348
40k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
RailsConf 2023
tenderlove
30
1.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
YAPC::Fukuoka 2017 HAKATA 2017/07/01 Քಇதͷ8FCαʔϏεͷ 1FSMॲཧܥ όʔδϣϯΞοϓΛ ͍ͯ͘͠
ASTJ github: @astj Twitter: @ast_j hatena: id:astj CPAN: ASTJ
None
• 2014/04 ~ Hatena • ~2016/07 ͯͳϒοΫϚʔΫ etc. (Perl) •
2016/08~ Mackerel (Scala, Golang)
None
QFSMͷόʔδϣϯ
όʔδϣϯ্͛ͯ·͔͢ʁ
None
Կނ্͛Δͷ͔
ηΩϡϦςΟ
#VHpY
ύϑΥʔϚϯε
৽ػೳ
ͳ্ͥ͛ͳ͍ͷ͔
ಈ͍ͯΔͦͬͱ͓ͯ͘͠
ڍಈ͕มΘΔ
ݕূ͕ʢݟ߹Θʣͳ͍
ͦͦ͘อक͠ͳ͍ ϓϩμΫτ
Ϟδϡʔϧ͕ೖΒͳ͍ʂ
श׳͕ͳ͍
None
ʜʜ͕ͯ͜͏ͳΔ
όʔδϣϯݻఆͯ͠Δ ͔͠͠ݹ͗ͯ͢$1"/͔Βফ͑ͨ CBDLQBO͔ΒೖΕΔʂʂ
์ஔͯ͠Δͱ9ޙʹۙدΓ͕͍ͨ աڈͷҨ͕͢ΔͷͰผʹ࠷৽ ʹڵຯແͯ͘΄Ͳ΄Ͳʹ৽͍͠ ঢ়ଶΛอͬͨํ͕ϔϧγʔ
˞ݸਓͷݟղͰ͢
None
ࠓͷΰʔϧ
˚ʮॲཧܥΛ্͛Δʯ ˓ʮॲཧܥΛ্͛ΒΕΔΑ͏ʹ͢Δʯ ˕ʮॲཧܥΛ্͛ଓ͚ΒΕΔΑ͏ʹ͢Δʯ
࣋ଓతͳऔΓΈͱͯ͠ॲཧ ܥͷόʔδϣϯΛ্͍͛ͯ͘
ʢ͋Δ͍ɺ্͛Δඞཁ͕ ແ͍ͱஅ͢Δʣ
None
QFSMͷόʔδϣϯΛ ্͛Δ͖ͳͷ͔ʁ
.BKPS .JOPS 1BUDI
.BKPS .JOPS 1BUDI ϝδϟʔόʔδϣϯ
.BKPS .JOPS 1BUDI όΠφϦޓ͕͋Δ #VHpY TFDVSJUZQBUDI ύονόʔδϣϯ
.BKPS .JOPS 1BUDI ϚΠφʔόʔδϣϯ όΠφϦޓ͕ͳ͍ ৽ػೳɺඇޓมߋ ۮ͕҆ఆ൛ɺح͕։ൃ൛
ϝδϟʔ ϚΠφʔ ύον ۤ࿑ ·͋·͋ ͦΜͳʹ རӹ ͍Ζ͍Ζ ·͋·͋ σάϨ
ͳ͍ͱݴ͑ͳ͍ ͦΜͳʹ ଛӹ ເ ͬͨΒ͑͑Μ
ϝδϟʔ ϚΠφʔ ύον ۤ࿑ ·͋·͋ ͦΜͳʹ རӹ ͍Ζ͍Ζ ·͋·͋ σάϨ
ͳ͍ͱݴ͑ͳ͍ ͦΜͳʹ ଛӹ ເ ͬͨΒ͑͑Μ
ओʹϚΠφʔόʔδϣϯͷ Λ͠·͢
None
αϙʔτϙϦγʔ
8FPGpDJBMMZTVQQPSU UIFUXPNPTUSFDFOU TUBCMFSFMFBTFTFSJFT http://perldoc.perl.org/perlpolicy.html#MAINTENANCE-AND-SUPPORT
$SJUJDBM4FDVSJUZQBUDI
5PUIFCFTUPGPVSBCJMJUZ XFXJMM QSPWJEFDSJUJDBMTFDVSJUZQBUDIFT SFMFBTFTGPSBOZNBKPSWFSTJPOPG 1FSMXIPTFYSFMFBTFXBTXJUIJO UIFQBTUUISFFZFBST http://perldoc.perl.org/perlpolicy.html#MAINTENANCE-AND-SUPPORT
ϦϦʔεαΠΫϧ
3FDFOUMZ UIFQMBOIBTCFFOUPSFMFBTFB OFXWFSTJPOPG1FSMSPVHIMZFWFSZ"QSJM CVU HFUUJOHUIFSFMFBTFSJHIUJTNPSFJNQPSUBOU UIBOTUJDLJOHSJHJEMZUPBDBMFOEBSEBUF TP UIFSFMFBTFEBUFJTTPNFXIBUqFYJCMF http://perldoc.perl.org/perlfaq1.html#How-often-are-new-versions-of-Perl-released%3f
࠷৽ͷQFSMͰϦϦʔεͨ͠αʔ ϏεͰαϙʔτ֎ʹͳΔ
None
*Tαϙʔτ֎ࢮ
͖ͪΜͱॲཧܥͱϞδϡʔϧͷ όʔδϣϯϩοΫΛ͍ͯ͠Ε গʑݹ͍͘Β͍ͳΒͳ͘ಈ͘
1FSMޙํޓΛ ൺֱతେࣄʹ͢Δݴޠ
ʢ͍Ζ͍Ζͳࣄݱ࣮ʣ
None
ʮ࠷৽ͷQFSMʹڵຯແ ͍͚ͲηΩϡϦςΟύον CVHpYͷԸܙಘ͍ͨʯ
None
ʮޙݟࣺ͍͍ͯͯͳΒ ϚΠφʔͦͷ··Ͱʯ ʮܦͬͯ͏͍ͦ͏ ͳΒϚΠφʔ্͍͛ͨʯ ʮύονόʔδϣϯ ͬ͞ͱ্͛Α͏ʯ
None
ͦͷϓϩδΣΫτͷQFSM ্͛ΒΕ·͔͢ʁ
None
Ұൠతͳ
ͲͷόʔδϣϯͷϞδϡʔϧ ೖͬͯΔ͔͔Γ·͔͢ QFSMͷόʔδϣϯ্͛ͨ αʔό༻ҙͰ͖·͔͢ ςετ͋Γ·͔͢ ಈ࡞֬ೝڥ͋Γ·͔͢
None
όʔδϣϯͷ͕ࠩେ͖͘ ͳΔ΄Ͳڍಈͷࠩ૿͑Δ
(FOFSBMMZ CBDLXBSEJODPNQBUJCMFDIBOHFTXJMM IBWFEFQSFDBUJPOXBSOJOHTGPSUXPSFMFBTF DZDMFTCFGPSFCFJOHSFNPWFE CVUNBZCF SFNPWFEBGUFSKVTUPOFDZDMFJGUIFSJTLTFFNT RVJUFMPXPSUIFCFOFpUTRVJUFIJHI http://perldoc.perl.org/perlpolicy.html#Terminology %FQSFDBUFE
&YQFSJNFOUBM
ͨͱ͑autoderef https://metacpan.org/pod/release/RJBS/perl-5.24.0/pod/perldelta.pod#The-autoderef- feature-has-been-removed wͰಋೖ wͰ&YQFSJNFOUBM8BSOJOH wͰഇࢭ
େδϟϯϓ͍ͨΜ
ʢେδϟϯϓͷ͠·ͤΜʣ ͪΐͬͱ্͍ͣͭ͛ͯ͘ͱ͔ ͦΕͱΤΠϠοͱΔͱ͔
None
$1"/Ϟδϡʔϧ
$1"/Ϟδϡʔϧͷ࠷৽൛ ʢ͍͍ͩͨʣಈͣ͘
$1"/Ϟδϡʔϧͷ࠷৽൛ ʢ͍͍ͩͨʣಈͣ͘
https://metacpan.org/changes/release/RJBS/perl-5.24.0#Known-Problems ͷ94
$PSP https://rt.cpan.org/Public/Dist/Display.html?Name=Coro
$PSP
ʢͪΖΜɺ94ʣ
$1"/5FTUFST.BUSJY http://matrix.cpantesters.org
QFSMͷόʔδϣϯ্͛ͯΈΔ DBSUPOJOTUBMM $1"/5FTUFSTݟΔ
None
σʔλޓ
4UPSBCMFGSFF[F
"MXBZTVTFnstoreBOE nfreezeJOTUFBEPGstore BOEfreeze http://blog.livedoor.jp/dankogai/archives/50490051.html
ଞͷϞδϡʔϧܦ༝Ͱ ҉ʹ͍ͬͯΔ͔ʁ
grep Storable cpanfile.snapshot
None
࣮
ԿΛߋ৽͢Δͷ͔
w QFSMॲཧܥ w $1"/Ϟδϡʔϧ w MPDBM
None
$1"/Ϟδϡʔϧ
DQBOpMFTOBQTIPU
όʔδϣϯݻఆศར
์͓ͬͯ͘ͱݹͼ͍ͯ͘
ॲཧܥͷόʔδϣϯΛ্͛Δ ͨΊʹTOBQTIPUΛߋ৽ ͢Δ͜ͱ͋Δ
ͦͷϓϩδΣΫτ DQBOpMFTOBQTIPUΛ ͖ͪΜͱߋ৽Ͱ͖·͔͢
w खݩͰஸೡʹߋ৽͢Δ w EPDLFSCVJMEͯͭ͘͠Δ w $*্Ͱߋ৽͢Δ w ଞԿ͔͔͍͍ͬ͜ํ๏ʁ
None
MPDBM
όΠφϦޓ͕ͳ͍ͱ DBSUPO@JOTUBMM@QBUI ࠶ߏங
σϓϩΠͷੈ͝ͱʹִ ͞Ε͍ͯΕؾʹͳΒͳ͍ ͨͱ͑EPDLFS
σϓϩΠੈؒͰڞ༗ͯ͠ ΔͱࡦΛߨ͡Δඞཁ͕͋Δ
app !"" current -> ./releases/201706280249 !"" releases # !"" 201706221234
# !"" 201706241722 # !"" 201706271423 # $"" 201706280249 $"" shared $"" local
ࡦ
ʮҰαʔϏεΞτͯ͠ MPDBMফ͔ͯ͠ΒDBSUPO JOTUBMMͯ͠αʔϏεΠϯʯ
ʮҰ࣌తʹ 1&3-@$"350/@1"5)Λ ผͷσΟϨΫτϦʹม͑Δʯ
ʮ͍ͭͰʹΞϓϦέʔγϣϯ αʔό͝ͱೖΕସ͑Δʯ
None
Ͳ͜Λߋ৽͢Δͷ͔
ڥ
ຊ൪ڥ ։ൃڥ TUBHJOHFUD $*ڥ ։ൃऀͷखݩڥ
ຊ൪ڥ ։ൃڥ TUBHJOHFUD $*ڥ ։ൃऀͷखݩڥ
Ε͕ͪ
ʮ࣮+FOLJOT্ͷ PQUQFSMYYZCJOͬͯΔʯ ʮଞͷνʔϜͱڞ༻ͷ+FOLJOTͳͷͰ ͖ʹϝϯςφϯεͰ͖ͳ͍ʯ
None
ϙϦγʔ
Ͱ͖Δ͚ͩ ϏοάόϯϦϦʔε͠ͳ͍
QFSM͚ͩ όʔδϣϯΛ্͛Δ
TZTUFNQFSM YCVJME
$1"/Ϟδϡʔϧ ઌʹ্͓͛ͯ͘
ʢΉ͠Ζ$1"/Ϟδϡʔϧͷ ํ͕͏͔ͬΓڍಈมΘΓ͕ͪʣ %#%NZTRM! $BDIF.FNDBDIFE'BTU ! /083&7&35&%"4
ίʔυͷେ͖͍มߋ ઌʹग़͓ͯ͘͠
খ͍͞มߋΛ ෳճग़͍ͯ͘͠
None
ࣄྫ
None
ͯͳΞϯςφ ͯͳμΠΞϦʔ ͯͳϒοΫϚʔΫϦχϡʔΞϧ ͯͳϒϩά ྠ ൈਮ
None
େνΣοΧʔ https://daichkr.hatelabo.jp
ʜʜͷϑϩϯτ෦
ΈΜͳͰͭ͘Δ344Ϧʔμʔ
ͯͳͷ࣮ݧతαʔϏε ʮͯϥϘʯ
QFSM ઍߦ .Z42- 344पΓͷίΞผγεςϜ
ϦϦʔε όʔδϣϯΞοϓ όʔδϣϯΞοϓ
ࣾ࠷
Εͦ͏ͳͱ͜Ζ͔Β ݟ֫ಘ ࣾܒ ࠷͕͖
ճ
ܦҢ
None
ຊ൪$*PQUQFSMCJO खݩQMFOW
·ͣखݩͰࢼ͢
ʹΓସ͑ ςετΛ௨͢ ಈ࡞֬ೝ͢Δ
͍͚ͦ͏
$*
ຊ൪$*PQUQFSMCJO खݩQMFOW ࠶ܝ
$*αʔόʹΛೖΕΔ PQUQFSMCJO
$*XPSLTQBDF
NBTUFSϒϥϯν ϒϥϯν
શϒϥϯνͷςετ͕ಉ͡ XPSLTQBDFΛڞ༻
$*XPSLTQBDF
NBTUFSͰͰϏϧυ ϒϥϯνͰ NBTUFSͰ ಉ͡σΟϨΫτϦͰ
MPDBMڞ༻
ʜʜ
ʜʜ
ͷϒϥϯνͰMPDBMҎ֎Λ͏ NBTUFSʹϚʔδͨ͠ΒMPDBMΛ ༻ͷۭؒͱͯ͠͏
$1"/Ϟδϡʔϧ
$ grep '\bCoro\b' cpanfile.snapshot $
$ grep '\bStorable\b' cpanfile.snapshot DBI::Gofer::Serializer::Storable 0.015586 Devel::Cover::DB::IO::Storable 1.25 Storable 0
Storable 2.17 Storable 2.04
freezestoreͳ͍ͷΛݟͨ
ςετࣦഊܯࠂΛͭͿ͢
$1"/Ϟδϡʔϧ͕ݹͯ͘ ೖΒͳ͍
์͓ͬͯ͘ͱݹͼ͍ͯ͘ ࠶ܝ
ಈ࡞֬ೝ
ͷΓସ͑ͷ ॠؒʹԿ͕ى͜Δ͔ʁ
ͨͱ͑ηογϣϯͷ γϦΞϥΠζ͕յΕͳ͍͔ʁ 4UPSBCMFͱ͔Ͱ
ϦϦʔε࡞ۀ
TUBHJOHμϯλΠϜ NBTUFSαʔόʔೖΕସ͑
͕ͭͭͳ͘ޭ
None
ڭ܇
ҙ֎ͱΕͰ͖Δ MPDBMͷཧ͕໘ ҙ֎ͱͬͯຯ
MPDBM
ʜʜ ࠶ܝ
$ ls | grep local local/ local_5241/ local_520_safe/ खݩ
खݩ DQBOpMFTOBQTIPUΛߋ৽͢ΔͨΊʹ MPDBMΛϦωʔϜͯ͠ DBSUPOJOTUBMM
ʜ
None
ճ
Խʹຬͯ͠ ύονόʔδϣϯ্͍͛ͯͳ͔ͬͨ
ܦҢ
ܦҢ
ճͷڭ܇Λ׆͔͢
+FOLJOTXPSLTQBDFΛ ϒϥϯν͝ͱʹ͚Δ DQBOpMFTOBQTIPUΛ EPDLFSܦ༝Ͱߋ৽͢Δ ͍ͭͰʹखݩ EPDLFSͰಈ͘Α͏ʹ͢Δ
+FOLJOT .VMUJ#SBODI1MVHJO
EPDLFSCVJMEͰ DBSUPOJOTUBMM
+FOLJOTXPSLTQBDFΛ ϒϥϯν͝ͱʹ͚Δ DQBOpMFTOBQTIPUΛ EPDLFSܦ༝Ͱߋ৽͢Δ ͍ͭͰʹखݩ EPDLFSͰಈ͘Α͏ʹ͢Δ τϐοΫϒϥϯνͰ͚ͩ ͍Ζ͍ΖࢼͤΔ ϩʔΧϧͷ ϑΝΠϧγεςϜͷঢ়ଶΛ
ؾʹͤͣࢼͤΔ
τϐοΫ
CBSFXPSEpMFIBOEMFT NVMUJEJNFOTJPOBM ͰೖΒͳ͘ͳͬͨͷͰ όʔδϣϯΛ্͛ͨϞδϡʔϧ
@INCʹ.ͳ͘ͳͬͯ UUFTUQNಡΊͳ͘ͳͬͨ ͷͰ͢ http://d.hatena.ne.jp/charsbar/20170318/1489828167
ؾܰʹϞδϡʔϧͷόʔδϣϯ ্͛ͨΒ5FTUʹͳͬͯࠔ ࠓͷޕޙBLJZN͞ΜʹΑΔ 5FTUʹؔ͢ΔτʔΫ͕͋Γ·͢Ͷ
ಈ࡞֬ೝ
ϦϦʔε࡞ۀ
TUBHJOHμϯλΠϜ NBTUFSαʔόʔೖΕସ͑
͕ͭͭͳྃ͘
ҰόʔδϣϯΛ্͛ͨͷͰ ೋצॴ͕Θ͔Δ
None
ৼΓฦΓ
Ұ࣮͕͋Δͱೋָ ࠩΛখ͘͞อͭͷ͕େࣄ
ຊ൪αʔόʔͷߏஙɾೖΕସ͑Ͱ ΠϯϑϥνʔϜͱͷڠௐ Ͳ͏ͯ͠ൃੜ͢Δ ೋՄೳͳݶΓͪ͜ΒͰר͖औͬͯ ෛ୲ΛݮΒͨ͠
ຊ൪αʔόʔͷߏஙɾೖΕସ͑Ͱ ΠϯϑϥνʔϜͱͷڠௐ Ͳ͏ͯ͠ൃੜ͢Δ ίϯςφӡ༻ͳͲͰ͋Ε ಠཱͯ͠ೖΕସ͑Ͱ͖ͦ͏
None
ࣄྫͦͷ͋ͬͨΜ͚ͩͲ ר͖ר͖Ͱߦ͖·͢
ϦϦʔεલͷ৽αʔϏε ಉ͘͡ϑϩϯτ෦
@INCͳͲ͋Γอकత
ʢ͔݁͠͠ہ5FTUͰେมͳ ʹૺͬͨʣ
खݩҎ֎શͯίϯςφ ։ൃΤϯδχΞ͚ͩͰ όʔδϣϯ্͛ΒΕΔ
None
૯ׅ
͕ͻͱͭͷॲʁ ϝϯς͠ଓ͚ΔαʔϏεͷ QFSMόʔδϣϯ্͍͛ͨ
ࠩΛখͯ͘͞͠ؾܰʹߋ৽ Ͱ͖ΔΑ͏ʹ͍͖ͯ͠·͠ΐ͏ ҰΔͱצॴ͕͔ΔͷͰ ೋҠߦΓ͍͢Ͱ͢
͋Γ͕ͱ͏͍͟͝·ͨ͠