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.5k
0
Share
稼働中の 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
490
Mackerel の時系列データベースにおける Redis Cluster の利用と Amazon ElastiCache への移行について / AWS Purpose-Built Databases Week
astj
PRO
3
6k
Mackerel のコンテナ監視の近況 / Mackerel Meetup #13
astj
PRO
1
2.6k
Observability: Mackerel による観測と Mackerel の観測 / NoOps Meetup Tokyo #8
astj
PRO
2
2.3k
サービス開発と健全なプロダクトメンテナンスを開発チームで持続的に取り組む / 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
30k
Perl 6 で Web Application Framework をつくる
astj
PRO
0
4.8k
Other Decks in Technology
See All in Technology
OCI技術資料 : 証明書サービス概要
ocise
1
7.2k
AIを活用したアクセシビリティ改善フロー
degudegu2510
1
140
AWSで2番目にリリースされたサービスについてお話しします(諸説あります)
yama3133
0
120
あるアーキテクチャ決定と その結果/architecture-decision-and-its-result
hanhan1978
0
360
JAWS DAYS 2026でAIの「もやっと」感が解消された話
smt7174
1
130
Cortex Code君、今日から内製化支援担当ね。
coco_se
0
270
主催・運営として"場をつくる”というアウトプットのススメ
_mossann_t
0
110
AWS DevOps Agent or Kiro の使いどころを考える_20260402
masakiokuda
0
180
Even G2 クイックスタートガイド(日本語版)
vrshinobi1
0
200
Databricks Lakebaseを用いたAIエージェント連携
daiki_akimoto_nttd
0
150
AIにより大幅に強化された AWS Transform Customを触ってみる
0air
0
310
AIがコードを書く時代の ジェネレーティブプログラミング
polidog
PRO
2
350
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
490
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
140
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
190
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
320
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
510
The Language of Interfaces
destraynor
162
26k
So, you think you're a good person
axbom
PRO
2
2k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
470
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
110
Joys of Absence: A Defence of Solitary Play
codingconduct
1
330
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όʔδϣϯ্͍͛ͨ
ࠩΛখͯ͘͞͠ؾܰʹߋ৽ Ͱ͖ΔΑ͏ʹ͍͖ͯ͠·͠ΐ͏ ҰΔͱצॴ͕͔ΔͷͰ ೋҠߦΓ͍͢Ͱ͢
͋Γ͕ͱ͏͍͟͝·ͨ͠