PHP Paas Sqaleを支える技術2016

PHP Paas Sqaleを支える技術2016

@PHPカンファレンス福岡 2016
http://phpcon.fukuoka.jp/

2cf373725ded741824c50fd571eda6e1?s=128

KONDO Uchio

May 21, 2016
Tweet

Transcript

  1. d͖Έ͚ͩͷ͍͖͞ΐ͏ͷ1)1Λͭ͘Ζ͏ʂd GMO Pepabo, Inc. Uchio Kondo 2016/05/21 PHPΧϯϑΝϨϯε෱Ԭ2016!!1 1)11BB4ʮ4RBMFʯ
 Λࢧ͑Δίϯςφ

    ͳͲ ٕज़
  2. NF

  3. None
  4. ۙ౻͏͓ͪ  !VE[VSB(.0ϖύϘॴଐ  ٕज़ج൫νʔϜ  ෱Ԭࢧࣾۈ຿  'VLVPLBSC 

    3BJMT(JSMT'VLVPLB૯߹ࡶ༻ίʔν·ͱΊ
  5. ஶ࡞Ͱ͢

  6. ੴΛ౤͛ͳ͍Ͱʂ

  7. '"2  2ॳΊͯຊ֨తʹ৮ͬͨϓϩάϥϛϯάݴޠ ͸ʁ  "1)1Ͱ͢ʂ

  8. None
  9. ൃදͷલʹ

  10. 1)1

  11. 4RBMFͰఏڙ։࢝͠·͢ʂ ˞ ЌϦϦʔεͱ͍͏͜ͱͰΑΖ͓͘͠ئ͍͠·͢ɻ

  12. ʂʂʂʂʂʂʂʂʂʂʂ

  13. None
  14. ؓ࿩ٳ୊

  15. 4RBMFͱ͸

  16. None
  17. 4RBMF  ͍ΘΏΔɺ1BB4  4'51(JUʹΑΔσϓϩΠ  3VCZͱ1)1ʹରԠ͍ͯ͠Δ

  18. ٕज़ͷৄࡉ͸  !IJCPNB͞ΜʹΑΔൃදࢿྉ͕͋Γ·͢  1BB4ͷ࡞Γํ4RBMFͷ৔߹  IUUQXXXTMJEFTIBSFOFUIJCPNBTRBMFQBBT

  19. Ҏ্Ͱ͢

  20. ͑ͬʜʜ

  21. ͋Ε͔Β೥

  22. ͋ͷαʔϏε͸ࠓ

  23. ۙگใࠂ

  24. ࠷ۙ΍͍ͬͯΔ͜ͱ  ๭*BB4͔Β/ZBIʹҠઃ͍ͯ͠Δ  ͍ͭͰͱ͍͏͔ɺγεςϜ࡮৽΋݉Ͷ͍ͯΔ  ࢥͬͨҎ্ʹಈ͍ͯΔɻηΩϡϦςΟͰෆ҆ͳ ͱ͜΋ͭͿͭͭ͠ؾ࣋ͪʹͳ͍ͬͯΔ

  25. /ZBIͬͪʁ  ࣾͷϓϥΠϕʔτɾΫϥ΢υ  ൃදࢿྉଟ਺ɻ!UONU͞ΜͷεϥΠυͳͲ  IUUQTTQFBLFSEFDLDPNUONUQFQBCPT QSJWBUFDMPVEOZBIBGUFSUIBU

  26. 1)1ͷ௥Ճ  ͦͯ͠΁  1)1ͷ࿩ͳͷͰޙ΄Ͳ·ͱΊͯɻ

  27. ͦͷ΄͔  ϛυϧ΢ΣΞ΍04ͷΞοϓάϨʙυݕূத  $FOU04  ,FSOFM  -9$ 

    ͳͲͳͲʜʜ
  28. -9$

  29. ίϯςφٕज़

  30. ίϯςφ ͬͯͦ΋ͦ΋Կͳͷ

  31. ྑ͍ࢿྉ͕͋Γ·͢  -JOVYίϯςφͷجૅ  !ίϯςφܕԾ૝Խͷ৘ใަ׵ձJO෱Ԭ  IUUQTTQFBLFSEFDLDPNUFOGPSXBSEUI DUTUVEZ

  32. Ҏ্Ͱ͢

  33. ͑ͬʜʜ

  34. ΋͏ͪΐͬͱʜ  4RBMFͰ͸͜͜·Ͱड़΂͖ͯͨ-9$Λ͔ͭͬ ͯɺʮϢʔβίϯςφʯΛ্ཱ͍ͪ͛ͯ·͢ɻ  ஫ҙ఺ͱͯ͠ɺҎલͷόʔδϣϯΛར༻ͯͨ͠Γ͢Δ ͷͰɺ΍΍ݹ͍࿩Λ͍ͯ͠Δ͔΋ʜʜ

  35. ίϯςφͷཧղͷલఏͱͯ͠  -JOVYίϯςφ͸ɺ୯Ұͷػೳͱ࣮ͯ͠૷͞Ε ͍ͯΔΘ͚Ͱ͸ͳ͍ɻ  DHSPVQ  -JOVYOBNFTQBDF  ϑΝΠϧγεςϜͷִ཭

    DISPPU RVPUB   $BQBCJMJUJFT
  36. ͻͱͭͻͱͭ͸ খ͞ͳɺγϯϓϧͳػೳ

  37. DHSPVQ  $POUSPM(SPVQͷҙ  ϗετͷ༷ʑͳ෺ཧϦιʔεʹର͢Δ੍ݶΛ͢ Δ  $16ɺϝϞϦɺ#MPDL*0

  38. DHSPVQͷྺ࢙  DHSPVQ͸೥݄ʹ(PPHMFͷΤϯδχ ΞʹΑͬͯ࠷ॳͷύον͕౤ߘ͞ΕɼΧʔ ωϧͰ࠷ॳͷϚʔδ͕ͳ͞ΕͨػೳͰ͢ɻ ೥ʹϦϦʔε͞Εͨ3FE)BU&OUFSQSJTF -JOVYʹ͜ͷػೳ͕౥ࡌ͞Εʜ  SFGTIUUQHJIZPKQBENJOTFSJBMMJOVY@DPOUBJOFST

  39. -JOVYOBNFTQBDF  04Λ࢖͏ͨΊͷ༷ʑͳϦιʔεΛִ཭͢Δ  ͋ΔϓϩηεͷOBNFTQBDFΛɺ΄͔ͷϓϩη ε͔Βݟ͑ͳ͘Ͱ͖Δ  Ϛ΢ϯτϙΠϯτɺ*1$ɺϢʔβʔɺωοτϫʔ Ϋ

  40. ϑΝΠϧγεςϜपΓͷִ཭  DISPPU  ϑΝΠϧγεςϜͷΛมߋɺݟ͑Δ৔ॴΛม͑Δ  RVPUB YGT@RVPUB  

    ϑΝΠϧγεςϜͷར༻཰ΛϓϩδΣΫτ͝ͱʹ੍ݶɺϨ ϙʔτͰ͖Δ
  41. -JOVYDBQBCJMJUJFT  εʔύʔϢʔβͷݖݶΛ෼ׂ͠ɺڐՄΛ༩͑ͨΓ ېࢭͨ͠ΓͰ͖Δ  ྫ$"1@4:4@5*.&  γεςϜΫϩοΫͷมߋΛڐՄ͢Δ$BQBCJMJUZ  ͜ΕΛୣ͑͹ɺϗετͷ࣌ؒมߋ͕Ͱ͖ͳ͍

     ୣΘΕͨϓϩηεͰEBUFTίϚϯυΛଧͬͯΈΑ͏  %PDLFSͳͲͰࢼͯ͠Έ·͠ΐ͏
  42. ͜ΕΒΛ૊Έ߹ΘͤΔͱʜ

  43. ͔͋ͨ΋ʮԾ૝؀ڥʯͷ
 Α͏ʹѻ͑Δ

  44. ':*Ծ૝؀ڥͬͯԿͩ  ࣮ଶ͸ɺ  04Ϧιʔεͷִ཭ OBNFTQBDF DISPPU ʴ
 ੍ݶ DHSPVQ

    DBQBCJMJUJFT   ͔͠͠ɺϢʔβ͔ΒݟΔͱɺ͍͍ͩͨಠཱͨ͠ 04ͷΑ͏ʹѻ͑ͨΓ͢ΔͷͰɺ෼͔Γ΍͢͞༏ ઌͰҰछͷʮԾ૝؀ڥʯͱݺΜͩΓ͢Δ
  45. ۩ମతͳ -9$ͷ࢖͍ํ

  46. ϑΝΠϧγεςϜͷ෼཭ڞ༗  ΄ͱΜͲSFBEPOMZͰCJOENPVOU͠ͳ͓ͯ͠ ͍Δ  ϢʔβྖҬΛݶఆ͢ΔʢRVPUB͢Δʣ  SFBEPOMZͳͱ͜Ζ͸ڞ༻  ڞ༻ͳͷͰɺมߋ͕શίϯςφʹ͙͢ʹ൓ө͢

    Δɻ1)1όΠφϦͷ௥Ճ͕΍Γ΍͍͢
  47. ར༻͢Δ$16  ίϯςφ࡞੒࣌ʹܾΊ͏͍ͪͯ͠Δɻ  ࠓͷͱ͜Ҡઃ౳͸खಈʜʜ  ͳΊΒ͔ʹ͍ͨ͠Ͱ͢Ͷ

  48. GPSLCPNCରࡦ  ಠࣗύονΛར༻  NJ[[Z͞ΜͷεϥΠυ  IUUQCJUMZ7:(D  ։ൃͷຊےʹ͋ΔDHSPVQͷઃఆ߲໨ʹ͍ͨ͠ ʢͷͪ΄Ͳʣ

  49. Φʔόʔϔου͸͋Δʁ

  50. ؆୯ͳϕϯν  έʔε DISPPUͷΈɺ$16ɺ(#NFN   έʔε -9$Ͱ$16ɺ(#NFNར༻  

    ωοτϫʔΫͷ෼཭͸ͤͣ  ͦͷଞͷ৚݅͸ಉ͡  IUUQE QIQGQN 1)1 $FOU04  1)1͸QSJOUl)FMMPzఔ౓ͷॲཧ  "# XJUILFFQBMJWF
  51. None
  52. ߟ࡯  ΞʔΩςΫνϟͷҧ͍
 ʢDISPPUͷΈ͔ɺ-9$Λܦ༝͢Δ͔ʣ
 ʹΑΔΦʔόʔϔου͸֬ೝͰ͖ͳ͍ɻ  গͳ͘ͱ΋΄ͱΜͲͷ৔߹ଞͷϘτϧωοΫ͕
 ઌʹདྷΔͱݴ͑ΔͩΖ͏  ωοτϫʔΫϑΝΠϧγεςϜͷ෼཭Λ͍ͯ͠ͳ͍͜ͱ͕

    ޮ͍͍ͯΔՄೳੑ͕͋Δ
  53. 1BB4͸Ͳ͏΍ͬͯಈ͘ ͱݴ͏࿩

  54. ͳʹ͸ͱ΋͋ΕίϯςφΛ࡞Δ  ίϯςφΛ࡞ΔͱҎԼͷ΋ͷ͕࡞ΒΕΔ  ίϯςφͷSPPUGT  4'51HJUͷϑΝΠϧγεςϜʢσϓϩΠ༻ʣ  %/4Ϩίʔυ 

    Ϣʔβͷ࢖͏%#
  55. ͱ͜ΖͰ  4RBMFࣗମͷ8FCΞϓϦέʔγϣϯ͸  3⚪CZ⚪O3⚪JMT  Ͱ͢

  56. None
  57. 3FTRVF  3BJMTͷ༗໊ͳδϣϒΩϡʔϓϥάΠϯ  جຊతʹɺίϯςφͷϓϩϏδϣχϯάͷॲཧ ͸ɺδϣϒΩϡʔͰඇಉظԽ͞Ε͍ͯΔ  ͔ͭɺϗετؒ͸3FEJTͷδϣϒΩϡʔͷΈͰ ͭͳ͕͍ͬͯͯɺεέʔϧ͠΍͍͢

  58. ͍͘ΒͰ΋ ಉ͡ϩʔϧΛ௥ՃՄೳ CVJMEʜ VTFSTʜ HJUʜ

  59. ίϯςφͷSPPUGTΛͲ͏࡞Δʁ  $IFGXJUIDISPPUͰͬ͘͞Γͱ  ͜͜΋Φʔόʔϔουগͳ͘  ϑΝΠϧγεςϜͷ؅ཧʹಛԽͨ͠ϨγϐΛॻ͘ αʔϏε؅ཧͱ͔͸͓͍ͱ͘  

    SPPUͱͳΔɺجຊతͳϑΝΠϧγεςϜΛ࡞Δ  ˠͦͷޙɺϢʔβ͕͍͡ΕΔσΟϨΫτϦҎԼΛ࡞Δ
 ʢIPNFTRBMFͳͲʣ
  60. HJUQVTIͳͲͰσϓϩΠΛ͢Δ  SFDFJWFIPPL͕ىಈ͢Δ ΍ͬͺΓ3VCZ   ͦ͜ͰσϓϩΠϓϩηε͕૸Δ  3BJMTͳΒ 

    CVOEMFJOTUBMMBTTFUQSFDPNQJMFSTZOD  1)1͸୯ʹSTZOD  DPNQPTFSͳͲ͸EFQMPZޙͷIPPLΛఆٛͰ͖ΔͷͰͦ͜Ͱ
  61. Ϗϧυδϣϒ͸3BJMTΞϓϦͷதʹ  3VCZͰ؆୯ͳ%4-Λ࡞͓ͬͯΓɺ
 ௥Ճ͕ 3VCZJTUʹ͸ ؆୯ʹݟ͑Δ  ͦͷؾʹͳΕ͹ରԠݴޠΛ૿΍ͤΔ͔΋  ͪ͜Β΋͋ͱͰʜ

  62. 1)1ରԠͷ࿩

  63. 3VCZͷ৽όʔδϣϯରԠ  όΠφϦ௥Ճ SCFOWલఏ   Ϗϧυ༻ͷεΫϦϓτ͕࡞ΒΕ͓ͯΓɺखॱ΋ ཱ͍֬ͯ͠Δɻ  ൺֱత؆୯ʹରԠͰ͖Δɻ

     ίϛολ΋ձࣾʹࡏ੶͠ɺॆ࣮ͨ͠αϙʔτɻ
  64. 1)1ͷ৽όʔδϣϯରԠ  ʢखه͸ͦ͜Ͱ్੾Ε͍ͯΔʣ HJUIVCͷJTTVF

  65. Ϗϧυखॱ͕ࣦΘΕ͍ͯΔ

  66. Ͳ͏΍ͬͯࢲ͸ 1)1όΠφϦΛ௥Ճ͔ͨ͠ʁ

  67. ߟݹֶతௐࠪۀ  *TTVFʹඍົʹ࢒͍ͬͯͨͷͰɺͦ͜Ͱશ๴Λ ௫Ή  3VCZͱಉ༷QIQFOWϕʔεΒ͍͠  Ϗϧυͯ͠UH[ͰݻΊΔɺجຊ͸γϯϓϧʹ΍ͬͯͦ͏  EFpOJUJPO͸ɺ͍·͸ࣦΘΕͨαʔόʹʜ

     ʜʜ
  68. ϏϧυΦϓγϣϯͷௐࠪ  طଘͷόΠφϦ  ͷQIQJOGP ͔Βऔಘ  σϑΥϧτͷϏϧυͱΦϓγϣϯͱൺֱ  TRMJUFରԠͷ֦ுͳ͘Ͷʁʢ͔͠΋͔Βʣ

     ௐ΂ͯɺ4RBMFͷαϙʔτର৅͔Βམͱ͢ɻ
  69. 1&"3ύοέʔδ  ϚχϡΞϧʹ͋Δ΍ͭΛҰ௨ΓೖΕΔ  IUUQTTRBMFKQTVQQPSUNBOVBMQIQ  όʔδϣϯ͸ࢥ͍੾ͬͯ৽͘͢͠Δ  QFBSίϚϯυࣗମ͸Ϣʔβ͞Μ͕ୟ͚ΔΜͰ 

    ͬͪ͜΋εΫϦϓτԽ
  70. NFNDBDIFE֦ு  1)1ͩͱQFDMͷ΍ͭ͡ΌͩΊΆʜʜ  HJUIVC͔Βऔͬͯ͘ΔͱϏϧυͰ͖ͨɻͦΕΛ ࢖͏

  71. ͳΜ͔͔ΒQIQGQNͷઃఆมΘͬͨʁ  :FUBOPUIFS͏⚪Β͞Μʹಥܸͨ͠

  72. None
  73. ͱ͍͏͜ͱͰݕূՄೳͳ
 ঢ়ଶʹ࣋ͬͯߦͬͨ

  74. ͯ͞ɺͲ͏ͩΖ͏ʜʜ

  75. None
  76. 8PSE1SFTT͕ಈ͍ͨ

  77. ओཁͳ1)1ΞϓϦέʔγϣϯͷಈ࡞ͱ
 ֦ுͳͲΛςετͯ͠ϦϦʔεɻ

  78. 50%0  ࣮͸͍·ͩʹ͜ͷ๻ͷखॱΛεΫϦϓτԽࣗಈ ԽͰ͖͍ͯͳ͍ʜʜ  ͜ͷखॱɺࣦ͏Θ͚ʹ͸͍͔ͳ͍  ୀ৬༧ఆ͸ͳ͍ͷͰΏͬ͘Γ΍Ζ͏ʜʜ

  79. ͜Ε͔Β΍Γ͍ͨ͜ͱ

  80. ϐΧϐΧͷVTFSTΛͭ͘Δ  VTFSTϢʔβఏڙαʔόʢϖύϘ༻ޠʁʣ  $FOU04  LFSOFM ߟ͍͑ͯΔͷ͸  

    -9$
  81. ͳͥϐΧϐΧʹ͍͔ͨ͠  -9$ͷόʔδϣϯ΋Χʔωϧͷόʔδϣϯ΋ݹ ͗ͯ͢MYDBUUBDI͕ಈ͔ͳ͍ LFSOFM͕ݹ͍ˠQJEOBNFTQBDFͳ͍͔Βʂ MYD͕ݹ͍ˠOBNFTQBDFͷݶఆ͕Ͱ͖ͳ͍

  82. ͳͥ   OFUOT΋࢖͍ͮΒ͍  $FOU04ͷJQSPVUF͸OFUOTରԠͯ͠ͳ͍ʜʜ  ϐϯϙΠϯτͰ࢖ͬͯΑΓηΩϡΞʹ͍ͨ͠

  83. ͳͥ   LFSOFMҎ߱Ͱɺίϯςφ୯ҐͰϓϩηε਺ ͷ੍ݶ͕Ͱ͖ΔΑ͏ʹͳΔɻ  ͜Ε͸ɺGPSLCPNCύονͷ୅ΘΓͷػೳͱͯ͠࢖͑Δɻ  IUUQHJIZPKQBENJOTFSJBM MJOVY@DPOUBJOFST

     ݱࡏଞʹ΋༷ʑͳύον͕౰͍ͨͬͯͯɺಈ͖ ͕औΓͮΒ͘ɺຊےͷϏϧυΛ࢖͍͍ͨɻ
  84. ରԠݴޠͷ௥Ճ  OPEFHPMBOHΛಈ͔ͤΔͱ͔͍͍ͬ͜  গͳ͘ͱ΋ࣾ಺Ͱ࢖͍ग़͕͋Δ

  85. )VCPUΛ ಈ͔͍ͨͧ͠ʂ

  86. ௥ՃͷΊͲ͸ཱͬͯΔ  ݴޠ༻$IFGͷΫοΫϒοΫΛ௥Ճ  ݴޠ༻ϏϧυखॱΛ3VCZ%4-Ͱ௥Ճ  ͦͷଞɺඍົʹઃఆΛ௥Ճ  ͋ͱ͸ؾ߹Ͱݕূ 

    Կ͔͕ى͜Γͦ͏
  87. ͜Μͳײ͡ʜʜ

  88. աڈʹ௥Ճͨ͜͠ͱ͸ͳ͍ɻ ΍Δͧʂ

  89. Ҏ্ɺ΍Γ͍ͨͰ͢ ΍Δͱ͸ݴͬͯͳ͍ ʜ

  90. ·ͱΊ

  91. ϩϦϙοϓʂϨϯλϧαʔόʔΛ ΑΖ͓͘͠ئ͍͠·͢ʂʂ ৄࡉ͸ϒʔεͰʂʂ̍

  92. 4RBMF΋࢖ͬͯͶ

  93. ίϯςφͱ͔1)1ʹ ؔ৺ͷ͋ΔਓΛืू͍ͯ͠·͢

  94. ը૾ͳͲͷιʔε  ը૾ɺϩΰ౳͸(.0ϖύϘΛ࢝Ίɺ֤ࣾɾஂ ମ͕ݖརΛॴ༗͢Δ৔߹͕͋Γ·͢ɻҾ༻ͷൣ ғ಺Ͱͷར༻Λ͍ͯ͠·͢ɻ  λΠτϧ$$  IUUQTQJYBCBZDPNKB&#&#&&" &#$&#"&"&#

    &#&#&&"&#$ &#&%&#$&&## &"&&"&#"&"