稼働中の Web サービスの perl のバージョンを上げていく

81e8ac1d3a766b3d9880cd08d9a7aba4?s=47 astj
July 01, 2017

稼働中の Web サービスの perl のバージョンを上げていく

YAPC::Fukuoka 2017 HAKATA

81e8ac1d3a766b3d9880cd08d9a7aba4?s=128

astj

July 01, 2017
Tweet

Transcript

  1. YAPC::Fukuoka 2017 HAKATA 2017/07/01 Քಇதͷ8FCαʔϏεͷ 1FSMॲཧܥ όʔδϣϯΞοϓΛ ͍ͯ͘͠࿩

  2. ASTJ github: @astj Twitter: @ast_j hatena: id:astj CPAN: ASTJ

  3. None
  4. • 2014/04 ~ Hatena • ~2016/07 ͸ͯͳϒοΫϚʔΫ etc. (Perl) •

    2016/08~ Mackerel (Scala, Golang)
  5. None
  6. QFSMͷόʔδϣϯ

  7. όʔδϣϯ্͛ͯ·͔͢ʁ

  8. None
  9. Կނ্͛Δͷ͔

  10. ηΩϡϦςΟ

  11. #VHpY

  12. ύϑΥʔϚϯε

  13. ৽ػೳ

  14. ͳ্ͥ͛ͳ͍ͷ͔

  15. ಈ͍ͯΔ෺͸ͦͬͱ͓ͯ͘͠

  16. ڍಈ͕มΘΔ

  17. ݕূ޻਺͕ʢݟ߹Θʣͳ͍

  18. ͦ΋ͦ΋௕͘อक͠ͳ͍ ϓϩμΫτ

  19. Ϟδϡʔϧ͕ೖΒͳ͍ʂ

  20. श׳͕ͳ͍

  21. None
  22. ʜʜ΍͕ͯ͜͏ͳΔ

  23. όʔδϣϯ͸ݻఆͯ͠Δ ͔͠͠ݹ͗ͯ͢$1"/͔Βফ͑ͨ CBDLQBO͔Β௚઀ೖΕΔʂʂ

  24. ์ஔͯ͠Δͱ9೥ޙʹۙدΓ͕͍ͨ աڈͷҨ੻͕׬੒͢ΔͷͰผʹ࠷৽ ʹ͸ڵຯແͯ͘΋΄Ͳ΄Ͳʹ৽͍͠ ঢ়ଶΛอͬͨํ͕ϔϧγʔ

  25. ˞ݸਓͷݟղͰ͢

  26. None
  27. ࠓ೔ͷΰʔϧ

  28. ˚ʮॲཧܥΛ্͛Δʯ ˓ʮॲཧܥΛ্͛ΒΕΔΑ͏ʹ͢Δʯ ˕ʮॲཧܥΛ্͛ଓ͚ΒΕΔΑ͏ʹ͢Δʯ

  29. ࣋ଓతͳऔΓ૊Έͱͯ͠ॲཧ ܥͷόʔδϣϯΛ্͍͛ͯ͘

  30. ʢ͋Δ͍͸ɺ্͛Δඞཁ͕ ແ͍ͱ൑அ͢Δʣ

  31. None
  32. QFSMͷόʔδϣϯΛ ্͛Δ΂͖ͳͷ͔ʁ

  33.  .BKPS .JOPS 1BUDI

  34. .BKPS .JOPS 1BUDI  ϝδϟʔόʔδϣϯ

  35. .BKPS .JOPS 1BUDI  όΠφϦޓ׵͕͋Δ #VHpY TFDVSJUZQBUDI ύονόʔδϣϯ

  36. .BKPS .JOPS 1BUDI  ϚΠφʔόʔδϣϯ όΠφϦޓ׵͕ͳ͍ ৽ػೳɺඇޓ׵มߋ  ۮ਺͕҆ఆ൛ɺح਺͕։ൃ൛

  37. ϝδϟʔ ϚΠφʔ ύον ۤ࿑ ·͋·͋ ͦΜͳʹ རӹ ͍Ζ͍Ζ ·͋·͋ σάϨ

    ͳ͍ͱ͸ݴ͑ͳ͍ ͦΜͳʹ ଛӹ ເ ΍ͬͨΒ͑͑΍Μ
  38. ϝδϟʔ ϚΠφʔ ύον ۤ࿑ ·͋·͋ ͦΜͳʹ རӹ ͍Ζ͍Ζ ·͋·͋ σάϨ

    ͳ͍ͱ͸ݴ͑ͳ͍ ͦΜͳʹ ଛӹ ເ ΍ͬͨΒ͑͑΍Μ
  39. ओʹϚΠφʔόʔδϣϯͷ ࿩Λ͠·͢

  40. None
  41. αϙʔτϙϦγʔ

  42. 8FPGpDJBMMZTVQQPSU UIFUXPNPTUSFDFOU TUBCMFSFMFBTFTFSJFT http://perldoc.perl.org/perlpolicy.html#MAINTENANCE-AND-SUPPORT

  43. $SJUJDBM4FDVSJUZQBUDI

  44. 5PUIFCFTUPGPVSBCJMJUZ XFXJMM QSPWJEFDSJUJDBMTFDVSJUZQBUDIFT SFMFBTFTGPSBOZNBKPSWFSTJPOPG 1FSMXIPTFYSFMFBTFXBTXJUIJO UIFQBTUUISFFZFBST http://perldoc.perl.org/perlpolicy.html#MAINTENANCE-AND-SUPPORT

  45. ϦϦʔεαΠΫϧ

  46. 3FDFOUMZ UIFQMBOIBTCFFOUPSFMFBTFB OFXWFSTJPOPG1FSMSPVHIMZFWFSZ"QSJM CVU HFUUJOHUIFSFMFBTFSJHIUJTNPSFJNQPSUBOU UIBOTUJDLJOHSJHJEMZUPBDBMFOEBSEBUF TP UIFSFMFBTFEBUFJTTPNFXIBUqFYJCMF http://perldoc.perl.org/perlfaq1.html#How-often-are-new-versions-of-Perl-released%3f

  47. ࠷৽ͷQFSMͰϦϦʔεͨ͠αʔ Ϗε͸໿೥Ͱαϙʔτ֎ʹͳΔ

  48. None
  49. *Tαϙʔτ֎ࢮ

  50. ͖ͪΜͱॲཧܥͱϞδϡʔϧͷ όʔδϣϯϩοΫΛ͍ͯ͠Ε͹ গʑݹ͍͘Β͍ͳΒ໰୊ͳ͘ಈ͘

  51. 1FSM͸ޙํޓ׵Λ ൺֱతେࣄʹ͢Δݴޠ

  52. ʢ͍Ζ͍Ζͳࣄ৘΍ݱ࣮ʣ

  53. None
  54. ʮ࠷৽ͷQFSMʹڵຯ͸ແ ͍͚ͲηΩϡϦςΟύον΍ CVHpYͷԸܙ͸ಘ͍ͨʯ

  55. None
  56. ʮ೥ޙݟࣺ͍͍ͯͯͳΒ ϚΠφʔ͸ͦͷ··Ͱʯ ʮ೥ܦͬͯ΋͏೥࢖͍ͦ͏ ͳΒϚΠφʔ্͍͛ͨʯ ʮύονόʔδϣϯ͸ ͬ͞ͱ্͛Α͏ʯ

  57. None
  58. ͦͷϓϩδΣΫτͷQFSM ্͛ΒΕ·͔͢ʁ

  59. None
  60. Ұൠతͳ࿩୊

  61. ͲͷόʔδϣϯͷϞδϡʔϧ ೖͬͯΔ͔෼͔Γ·͔͢ QFSMͷόʔδϣϯ্͛ͨ αʔό༻ҙͰ͖·͔͢ ςετ͋Γ·͔͢ ಈ࡞֬ೝ؀ڥ͋Γ·͔͢

  62. None
  63. όʔδϣϯͷࠩ෼͕େ͖͘ ͳΔ΄Ͳڍಈͷࠩ͸૿͑Δ

  64. (FOFSBMMZ CBDLXBSEJODPNQBUJCMFDIBOHFTXJMM IBWFEFQSFDBUJPOXBSOJOHTGPSUXPSFMFBTF DZDMFTCFGPSFCFJOHSFNPWFE CVUNBZCF SFNPWFEBGUFSKVTUPOFDZDMFJGUIFSJTLTFFNT RVJUFMPXPSUIFCFOFpUTRVJUFIJHI http://perldoc.perl.org/perlpolicy.html#Terminology %FQSFDBUFE

  65. &YQFSJNFOUBM

  66. ͨͱ͑͹autoderef https://metacpan.org/pod/release/RJBS/perl-5.24.0/pod/perldelta.pod#The-autoderef- feature-has-been-removed wͰಋೖ wͰ&YQFSJNFOUBM8BSOJOH wͰഇࢭ

  67. େδϟϯϓ͸͍ͨ΁Μ

  68. ʢେδϟϯϓͷ࿩͸͠·ͤΜʣ ͪΐͬͱ্͍ͣͭ͛ͯ͘ͱ͔ ͦΕͱ΋ΤΠϠοͱ΍Δͱ͔

  69. None
  70. $1"/Ϟδϡʔϧ

  71. $1"/Ϟδϡʔϧͷ࠷৽൛͸ ʢ͍͍ͩͨʣಈ͘͸ͣ

  72. $1"/Ϟδϡʔϧͷ࠷৽൛͸ ʢ͍͍ͩͨʣಈ͘͸ͣ

  73. https://metacpan.org/changes/release/RJBS/perl-5.24.0#Known-Problems ͷ94

  74. $PSP https://rt.cpan.org/Public/Dist/Display.html?Name=Coro

  75. $PSP

  76. ʢ΋ͪΖΜɺ಺੡94΋ʣ

  77. $1"/5FTUFST.BUSJY http://matrix.cpantesters.org

  78. QFSMͷόʔδϣϯ্͛ͯΈΔ DBSUPOJOTUBMM $1"/5FTUFSTݟΔ

  79. None
  80. σʔλޓ׵

  81. 4UPSBCMFGSFF[F

  82. "MXBZTVTFnstoreBOE nfreezeJOTUFBEPGstore BOEfreeze http://blog.livedoor.jp/dankogai/archives/50490051.html

  83. ଞͷϞδϡʔϧܦ༝Ͱ ҉ʹ࢖͍ͬͯΔ͔΋ʁ

  84. grep Storable cpanfile.snapshot

  85. None
  86. ࣮຿

  87. ԿΛߋ৽͢Δͷ͔

  88. w QFSMॲཧܥ w $1"/Ϟδϡʔϧ w MPDBM

  89. None
  90. $1"/Ϟδϡʔϧ

  91. DQBOpMFTOBQTIPU

  92. όʔδϣϯݻఆ͸ศར

  93. ์͓ͬͯ͘ͱݹͼ͍ͯ͘

  94. ॲཧܥͷόʔδϣϯΛ্͛Δ ͨΊʹTOBQTIPUΛߋ৽ ͢Δ͜ͱ΋͋Δ

  95. ͦͷϓϩδΣΫτ͸ DQBOpMFTOBQTIPUΛ ͖ͪΜͱߋ৽Ͱ͖·͔͢

  96. w खݩͰஸೡʹߋ৽͢Δ w EPDLFSCVJMEͯͭ͘͠Δ w $*্Ͱߋ৽͢Δ w ଞԿ͔͔͍͍ͬ͜ํ๏ʁ

  97. None
  98. MPDBM

  99. όΠφϦޓ׵͕ͳ͍ͱ DBSUPO@JOTUBMM@QBUI ͸࠶ߏங

  100. σϓϩΠͷੈ୅͝ͱʹִ཭ ͞Ε͍ͯΕ͹ؾʹͳΒͳ͍ ͨͱ͑͹EPDLFS

  101. σϓϩΠੈ୅ؒͰڞ༗ͯ͠ ΔͱࡦΛߨ͡Δඞཁ͕͋Δ

  102. app !"" current -> ./releases/201706280249 !"" releases # !"" 201706221234

    # !"" 201706241722 # !"" 201706271423 # $"" 201706280249 $"" shared $"" local
  103. ʮҰ౓αʔϏεΞ΢τͯ͠ MPDBMফ͔ͯ͠ΒDBSUPO JOTUBMMͯ͠αʔϏεΠϯʯ

  104. ʮҰ࣌తʹ 1&3-@$"350/@1"5)Λ ผͷσΟϨΫτϦʹม͑Δʯ

  105. ʮ͍ͭͰʹΞϓϦέʔγϣϯ αʔό͝ͱೖΕସ͑Δʯ

  106. None
  107. Ͳ͜Λߋ৽͢Δͷ͔

  108. ؀ڥ

  109. ຊ൪؀ڥ ։ൃ؀ڥ TUBHJOHFUD  $*؀ڥ ։ൃऀͷखݩ؀ڥ

  110. ຊ൪؀ڥ ։ൃ؀ڥ TUBHJOHFUD  $*؀ڥ ։ൃऀͷखݩ؀ڥ

  111. ๨Ε͕ͪ

  112. ʮ࣮͸+FOLJOT্ͷ PQUQFSMYYZCJO࢖ͬͯΔʯ ʮଞͷνʔϜͱڞ༻ͷ+FOLJOTͳͷͰ ޷͖ʹϝϯςφϯεͰ͖ͳ͍ʯ

  113. None
  114. ϙϦγʔ

  115. Ͱ͖Δ͚ͩ ϏοάόϯϦϦʔε͠ͳ͍

  116. QFSM͚ͩ όʔδϣϯΛ্͛Δ

  117. TZTUFNQFSM YCVJME

  118. $1"/Ϟδϡʔϧ͸ ઌʹ্͓͛ͯ͘

  119. ʢΉ͠Ζ$1"/Ϟδϡʔϧͷ ํ͕͏͔ͬΓڍಈมΘΓ͕ͪʣ %#%NZTRM! $BDIF.FNDBDIFE'BTU ! /083&7&35&%"4

  120. ίʔυͷେ͖͍มߋ͸ ઌʹग़͓ͯ͘͠

  121. খ͍͞มߋΛ ෳ਺ճग़͍ͯ͘͠

  122. None
  123. ࣄྫ

  124. None
  125. ͸ͯͳΞϯςφ ͸ͯͳμΠΞϦʔ ͸ͯͳϒοΫϚʔΫϦχϡʔΞϧ ͸ͯͳϒϩά ೥ྠ ൈਮ

  126. None
  127. େνΣοΧʔ https://daichkr.hatelabo.jp

  128. ʜʜͷϑϩϯτ෦෼

  129. ΈΜͳͰͭ͘Δ344Ϧʔμʔ

  130. ͸ͯͳͷ࣮ݧతαʔϏε ʮ͸ͯϥϘʯ

  131. QFSM ਺ઍߦ  .Z42- 344पΓͷίΞ͸ผγεςϜ

  132. ϦϦʔε   όʔδϣϯΞοϓ   όʔδϣϯΞοϓ 

  133. ࣾ಺࠷଎

  134. ΍Εͦ͏ͳͱ͜Ζ͔Β ஌ݟ֫ಘ ࣾ಺ܒ໤ ࠷଎͕޷͖

  135. ճ໨

  136. 

  137. ܦҢ

  138. None
  139. ຊ൪$*PQUQFSMCJO खݩQMFOW

  140. ·ͣखݩͰࢼ͢

  141. ʹ੾Γସ͑ ςετΛ௨͢ ಈ࡞֬ೝ͢Δ

  142. ͍͚ͦ͏

  143. $*

  144. ຊ൪$*PQUQFSMCJO खݩQMFOW ࠶ܝ

  145. $*αʔόʹΛೖΕΔ PQUQFSMCJO

  146. $*XPSLTQBDF

  147. NBTUFSϒϥϯν͸ ϒϥϯν͸

  148. શϒϥϯνͷςετ͕ಉ͡ XPSLTQBDFΛڞ༻

  149. $*XPSLTQBDF

  150.  NBTUFSͰͰϏϧυ  ϒϥϯνͰ  NBTUFSͰ ಉ͡σΟϨΫτϦͰ

  151. MPDBM΋ڞ༻

  152. ʜʜ

  153. ʜʜ

  154. ͷϒϥϯνͰ͸MPDBMҎ֎Λ࢖͏ NBTUFSʹϚʔδͨ͠ΒMPDBMΛ ༻ͷۭؒͱͯ͠࢖͏

  155. $1"/Ϟδϡʔϧ

  156. $ grep '\bCoro\b' cpanfile.snapshot $

  157. $ 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
  158. freezestoreͳ͍ͷΛݟͨ

  159. ςετࣦഊܯࠂΛͭͿ͢

  160. $1"/Ϟδϡʔϧ͕ݹͯ͘ ೖΒͳ͍

  161. ์͓ͬͯ͘ͱݹͼ͍ͯ͘ ࠶ܝ

  162. ಈ࡞֬ೝ

  163. ͷ੾Γସ͑ͷ ॠؒʹԿ͕ى͜Δ͔ʁ

  164. ͨͱ͑͹ηογϣϯͷ γϦΞϥΠζ͕յΕͳ͍͔ʁ 4UPSBCMFͱ͔Ͱ

  165. ϦϦʔε࡞ۀ

  166. TUBHJOHμ΢ϯλΠϜ NBTUFSαʔόʔೖΕସ͑

  167. ͕ͭͭͳ͘੒ޭ

  168. None
  169. ڭ܇

  170. ҙ֎ͱ΍Ε͹Ͱ͖Δ MPDBMͷ؅ཧ͕໘౗ ҙ֎ͱ΍ͬͯ΋஍ຯ

  171. MPDBM

  172. ʜʜ ࠶ܝ

  173. $ ls | grep local local/ local_5241/ local_520_safe/ खݩ

  174. खݩ DQBOpMFTOBQTIPUΛߋ৽͢ΔͨΊʹ MPDBMΛϦωʔϜͯ͠͸ DBSUPOJOTUBMM

  175. ʜ

  176. None
  177. ճ໨

  178.  Խʹຬ଍ͯ͠ ύονόʔδϣϯ͸্͍͛ͯͳ͔ͬͨ

  179. ܦҢ

  180. ܦҢ

  181. ճ໨ͷڭ܇Λ׆͔͢

  182. +FOLJOTXPSLTQBDFΛ ϒϥϯν͝ͱʹ෼͚Δ DQBOpMFTOBQTIPUΛ EPDLFSܦ༝Ͱߋ৽͢Δ ͍ͭͰʹखݩ΋ EPDLFSͰಈ͘Α͏ʹ͢Δ

  183. +FOLJOT .VMUJ#SBODI1MVHJO

  184. EPDLFSCVJMEͰ DBSUPOJOTUBMM

  185. +FOLJOTXPSLTQBDFΛ ϒϥϯν͝ͱʹ෼͚Δ DQBOpMFTOBQTIPUΛ EPDLFSܦ༝Ͱߋ৽͢Δ ͍ͭͰʹखݩ΋ EPDLFSͰಈ͘Α͏ʹ͢Δ τϐοΫϒϥϯνͰ͚ͩ ͍Ζ͍ΖࢼͤΔ ϩʔΧϧͷ ϑΝΠϧγεςϜͷঢ়ଶΛ

    ؾʹͤͣࢼͤΔ
  186. τϐοΫ

  187. CBSFXPSEpMFIBOEMFT NVMUJEJNFOTJPOBM ͰೖΒͳ͘ͳͬͨͷͰ όʔδϣϯΛ্͛ͨϞδϡʔϧ

  188. @INCʹ.ͳ͘ͳͬͯ UUFTUQNಡΊͳ͘ͳͬͨ ͷͰ௚͢ http://d.hatena.ne.jp/charsbar/20170318/1489828167

  189. ؾܰʹϞδϡʔϧͷόʔδϣϯ ্͛ͨΒ5FTUʹͳͬͯࠔ࿭ ࠓ೔ͷޕޙBLJZN͞ΜʹΑΔ 5FTUʹؔ͢ΔτʔΫ͕͋Γ·͢Ͷ

  190. ಈ࡞֬ೝ

  191. ϦϦʔε࡞ۀ

  192. TUBHJOHμ΢ϯλΠϜ NBTUFSαʔόʔೖΕସ͑

  193. ͕ͭͭͳ͘׬ྃ

  194. Ұ౓όʔδϣϯΛ্͛ͨͷͰ ೋ౓໨͸צॴ͕Θ͔Δ

  195. None
  196. ৼΓฦΓ

  197. Ұ౓࣮੷͕͋Δͱೋ౓໨͸ָ ࠩ෼Λখ͘͞อͭͷ͕େࣄ

  198. ຊ൪αʔόʔͷߏஙɾೖΕସ͑Ͱ ΠϯϑϥνʔϜͱͷڠௐ͸ Ͳ͏ͯ͠΋ൃੜ͢Δ ೋ౓໨͸ՄೳͳݶΓͪ͜ΒͰר͖औͬͯ ෛ୲ΛݮΒͨ͠

  199. ຊ൪αʔόʔͷߏஙɾೖΕସ͑Ͱ ΠϯϑϥνʔϜͱͷڠௐ͸ Ͳ͏ͯ͠΋ൃੜ͢Δ ίϯςφӡ༻ͳͲͰ͋Ε͹ ಠཱͯ͠ೖΕସ͑Ͱ͖ͦ͏

  200. None
  201. ࣄྫͦͷ΋͋ͬͨΜ͚ͩͲ ר͖ר͖Ͱߦ͖·͢

  202. ϦϦʔεલͷ৽αʔϏε ಉ͘͡ϑϩϯτ෦෼

  203.  @INCͳͲ͋Γอकత

  204. ʢ͔݁͠͠ہ5FTUͰେมͳ໨ ʹૺͬͨʣ

  205. खݩҎ֎શͯίϯςφ ։ൃΤϯδχΞ͚ͩͰ όʔδϣϯ্͛ΒΕΔ

  206. None
  207. ૯ׅ

  208. ೥͕ͻͱͭͷ໨ॲʁ ϝϯς͠ଓ͚ΔαʔϏεͷ QFSMόʔδϣϯ͸্͍͛ͨ

  209. ࠩ෼Λখͯ͘͞͠ؾܰʹߋ৽ Ͱ͖ΔΑ͏ʹ͍͖ͯ͠·͠ΐ͏ Ұ౓΍Δͱצॴ͕෼͔ΔͷͰ ೋ౓໨Ҡߦ΋΍Γ΍͍͢Ͱ͢

  210. ͋Γ͕ͱ͏͍͟͝·ͨ͠