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
0
7.5k
稼働中の Web サービスの perl のバージョンを上げていく
YAPC::Fukuoka 2017 HAKATA
astj
PRO
July 01, 2017
Tweet
Share
More Decks by astj
See All by astj
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
470
Mackerel の時系列データベースにおける Redis Cluster の利用と Amazon ElastiCache への移行について / AWS Purpose-Built Databases Week
astj
PRO
3
6k
Mackerel のコンテナ監視の近況 / Mackerel Meetup #13
astj
PRO
1
2.5k
Observability: Mackerel による観測と Mackerel の観測 / NoOps Meetup Tokyo #8
astj
PRO
2
2.2k
サービス開発と健全なプロダクトメンテナンスを開発チームで持続的に取り組む / Developers Boost KANSAI
astj
PRO
1
1.5k
Mackerel and Stripe / Qiita x Stripe Meetup
astj
PRO
0
5.6k
Mackerel をオンプレミスから AWS に移してからの1年半を振り返る / Hatena Engineer Seminar #11
astj
PRO
0
1.3k
AWS で実現した Mackerel 時系列データ1分粒度長期保存の裏側 / Mackerel Meetup #11 Tokyo
astj
PRO
6
30k
Perl 6 で Web Application Framework をつくる
astj
PRO
0
4.8k
Other Decks in Technology
See All in Technology
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
【PyCon mini Shizuoka 2026】生成AI時代に画像処理やオーディオ処理のノードエディターを作る理由
kazuhitotakahashi
0
200
Secure Boot 2026 - Aggiornamento dei certificati UEFI e piano di adozione in azienda
memiug
0
120
バクラクにおける Document Understanding の挑戦:書類の「読取」から「意思決定」へ / document-understanding-in-bakuraku-2026
yuya4
0
170
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
43k
Claude Cowork Plugins を読む - Skills駆動型業務エージェント設計の実像と構造
knishioka
0
190
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
【2026年版】生成AIによる情報システムへのインパクト
taka_aki
0
190
2026-02-24 月末 Tech Lunch Online #10 Cloud Runのデプロイの課題から考えるアプリとインフラの境界線
masasuzu
0
100
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
Introduction to Sansan, inc / Sansan Global Development Center, Inc.
sansan33
PRO
0
3k
Databricksアシスタントが自分で考えて動く時代に! エージェントモード体験もくもく会
taka_aki
0
210
Featured
See All Featured
Everyday Curiosity
cassininazir
0
150
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Writing Fast Ruby
sferik
630
62k
The World Runs on Bad Software
bkeepers
PRO
72
12k
WENDY [Excerpt]
tessaabrams
9
36k
Designing for Performance
lara
611
70k
Statistics for Hackers
jakevdp
799
230k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
220
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
63
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όʔδϣϯ্͍͛ͨ
ࠩΛখͯ͘͞͠ؾܰʹߋ৽ Ͱ͖ΔΑ͏ʹ͍͖ͯ͠·͠ΐ͏ ҰΔͱצॴ͕͔ΔͷͰ ೋҠߦΓ͍͢Ͱ͢
͋Γ͕ͱ͏͍͟͝·ͨ͠