Node.jsやPHPでも
こわくないHeroku

 Node.jsやPHPでも
こわくないHeroku

2017年6月22日、Heroku Meetup #17での発表資料です。
https://herokujp.doorkeeper.jp/events/61354

325afd2c9db540c83485f509f2845acb?s=128

Hiroyuki Yamaoka

June 22, 2017
Tweet

Transcript

  1. /PEFKT΍1)1Ͱ΋
 ͜Θ͘ͳ͍)FSPLV )FSPLV.FFUVQ)FSPLV4USJLF 
 ߹ಉձࣾςϯϚυɹࢁԬ޿޾

  2. ࢿྉ͸ޙ΄Ͳެ։͠·͢ ࣸਅࡱӨ0, ʢγϟολʔԻ͸ফ͍ͯͩ͘͠͞ʣ

  3. XFCΤϯδχΞͷਓʁ 3VCZ1)1/PEFKTଞ

  4. ·ͩ)FSPLVΛ
 ࢖ͬͨ͜ͱ͕ͳ͍ਓʁ

  5. ࣗݾ঺հ  ࢁԬ޿޾  UXJUUFSDPNIJSP@Z  HJUIVCDPNIJSPZ  ߹ಉձࣾςϯϚυ୅දࣾһ
 גࣜձࣾΠϊϕʔλʔɾδϟύϯ$50ɺ(-"%%גࣜձٕࣾज़ސ໰

  6. )FSPLVʹؔ͢Δొஃ  1)1ΧϯϑΝϨϯε෱Ԭ  ʮ1)1Ͱ΋͜Θ͘ͳ͍)FSPLVʯ  1)1ΧϯϑΝϨϯε๺ւಓ  ʮ)FSPLVͰ1)1ͷίί͕ศརʯ

  7. ߹ಉձࣾςϯϚυ  ೥݄ઃཱʢظ໨ʣ   ୅දࣾһਓ  Ϗδωεࢧԉࣄۀ  αʔϏε։ൃࣄۀ

  8. Ϗδωεࢧԉࣄۀ  ٕज़ސ໰΍ࣾ֎$50  ͍ΘΏΔडୗҊ݅  ྫελʔτΞοϓࢧԉͰࣾ֎$50 Λͭͭ͠ॳظ։ൃͷશͯΛ୲౰  )FSPLVͰ1)1ʢ1PTUHSF42-3FEJTʣ

  9. αʔϏε։ൃࣄۀ  DPOBTVʢνʔϜͰ΍ΓऔΓ͢ΔͨΊͷλεΫ؅ཧπʔϧʣ   JSVDBʢϩάΠϯෆཁͰ࢖͑Δࡏ੮؅ཧαʔϏεʣ   NJNFNPʢ.BSLEPXOه๏Ͱॻ͚ΔςΩετڞ༗αΠτʣ 

     શ෦)FSPLVʢ1)1/PEFKTʣ
  10. ུྺ  XFCΞϓϦέʔγϣϯΤϯδχΞ  1)1ͱ͔/PEFKTͱ͔  ࣗࣾαʔϏεͰΠϯϑϥۀ຿ܦݧ͋Γ  ࣸਅڞ༗ͷαΠτͱ͔ 

    ࣾ಺αʔόʔ͔Β%$ɺΫϥ΢υ·Ͱ
  11. ΠϯϑϥͷͭΒΈ  ηοτΞοϓ  ϛυϧ΢ΣΞͷόʔδϣϯΞοϓ  ηΩϡϦςΟɾ੬ऑੑରԠ  ϩάɺ؂ࢹɺϞχλϦϯάʜͳͲͳͲ 

    େมͰ͢ΑͶʂʂʂ
  12. )FSPLVͰͷެ։  ΞϓϦΛ࡞ͬͯ  %ZOPͷϓϥϯΛબΜͰ  "EEPOΛ૊Έ߹Θͤͯ  ؀ڥม਺Λઃఆͯ͠⚙ 

    ίʔυΛQVTIͯ͠σϓϩΠ
  13. ؀ڥઃఆΛίʔυԽ  5FSSBGPSNCZ)BTIJ$PSQ  Ϋϥ΢υ؀ڥͷࣗಈߏஙπʔϧ  ςϯϓϨʔτϑΝΠϧͰߏ੒Λ؅ཧ  "84($1.4"[VSF)FSPLV 

    ͘͞ΒͷΫϥ΢υʹ΋ରԠ
  14. 5FSSBGPSN)FSPLV1SPWJEFS  ΞϓϦͷ؅ཧ  DPOpH؅ཧ΋  ΞυΦϯͷ؅ཧ  υϝΠϯ؅ཧ 

    1JQFMJOF؅ཧʜͳͲ
  15. NJNFNPͷ৔߹  Ͱ͖Δ͜ͱ  ΞϓϦͷ؅ཧʢDPOpH؅ཧ΋ʣ  ΞυΦϯͷ؅ཧ  υϝΠϯ؅ཧ 

    1JQFMJOF؅ཧ
  16. ؀ڥߏஙͷํ਑  ؀ڥม਺ʢDPOpHʣ͸5FSSBGPSNͰ  "EEPOͷߏ੒͸IFSPLVίϚϯυͰ  શ෦5FSSBGPSNͰ΋͍͍͚Ͳɺ NJHSBUJPOͱ͔ͪΐͬͱ͜Θ͍ͳͱ  υϝΠϯ΍44-ͷઃఆ͸ઃఆը໘Ͱ

  17. )FSPLVͰ44-  IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFT BVUPNBUFEDFSUJpDBUFNBOBHFNFOU  -FUT&ODSZQUͰ͏·͍͜ͱͯ͘͠ΕΔ  ࣗಈԆ௕  %/4ͷઃఆ͕ద੾ͳΒɺ


    ઃఆը໘ͰϘλϯԡ͚ͩ͢
  18. ଞʹ΋%PDLFSΛ
 ࢖͏ͱ͍͏ख΋͋Γ·͢Ͷ ʢͦͷ͏ͪखΛग़͍ͨ͠ʣ

  19. 1)1Λ)FSPLVͰಈ͔͢  DPNQPTFSMPDLʢDPNQPTFSKTPOʣ  1)1PS))7.  "QBDIFPS/HJOY  1)1'1.ͱͯ͠ಈ࡞ 

    ֦ு΋ἧ͍ͬͯΔʢDPNQPTFSKTPOͰࢦఆʣ
  20. /PEFKTΛ)FSPLVͰಈ͔͢  ZBSOMPDLPSQBDLBHFKTPO  OQNTUBSUͳͲͰىಈεΫϦϓτ  XFCOQNTUBSU  UISPOHͳͲͰΫϥελϦϯά

  21. JSVDBͷ৔߹  IUUQTJSVDBDP  ϩάΠϯෆཁͷࡏ੮؅ཧπʔϧ%  ʮௐ੔͞ΜʯΈ͍ͨͳ  ͦ͏͍͑͹։ൃ߹॓Ͱ೔Ͱ࡞ͬͨ 

    ؆୯ʹಈ͔͍ͨ͠➡)FSPLVͰ
  22. JSVDBDPUPQ

  23. JSVDBDPSPPN

  24. JSVDBͷ࢖ΘΕํ  ࠓ݄ߋ৽ͷ͋ͬͨϧʔϜ਺  ඇ*5ܥͷάϧʔϓ΍اۀ༷͕த৺  4MBDLͳΜͯ஌Βͳ͍૚͕ଟ͍  ࡏ੮͚ͩͰͳ͘ग़ୀۈͷ؅ཧͱͯ͠ 

    ߦಈ༧ఆදͱͯ͠ʜͳͲͳͲ
  25. JSVDBͷ࡞Γํ  ॳΊͯͷ/PEFKTΞϓϦ  ϑϨʔϜϫʔΫ͸&YQSFTT  σʔλϕʔε͸1PTUHSF42-  ηογϣϯͱΩϟογϡ͸3FEJT 

    ౰ॳ͔Β)FSPLVΛҙࣝͨ͠։ൃ
  26. ॳΊͯͳͷͰ  /PEFKTͷΠϯϑϥͷ૊Έํ஌Βͳ͍  ։ൃ߹॓ͳͷͰௐ΂ͯΔ༨༟ͳ͍  DPOBTVͰ)FSPLV͸طʹ࢖͍ͬͯͨ  ͦ͏ͩɺ)FSPLVͰ/PEFKT

  27. JSVDBͷ։ൃϓϩηε  ϩʔΧϧͰ։ൃ  (JU)VCͱ$JSDMF$*Λར༻  $JSDMF$*͔Β)FSPLVʹࣗಈσϓϩΠ  TUBHJOH؀ڥͷΈɺຊ൪؀ڥ͸खಈ 

    1JQFMJOFͷػೳ͸࢖͍ͬͯ·ͤΜ
  28. JSVDB3FTPVSDFT

  29. JSVDBͷຊ൪ߏ੒  ࢮ׆؂ࢹ6QUJNF3PCPU  ϞχλϦϯά.FUSJDTͱ-JCSBUP  %#)FSPLV1PTUHSFT  ηογϣϯͱΩϟογϡ3FEJT$MPVE 

    ϩάू໿1BQFSUSBJM
  30. 4MBDLʹ͍Ζ͍Ζ௨஌  ։ൃ(JU)VCɺ$JSDMF$*  σϓϩΠ௨஌)FSPLV%FQMPZ)PPLT  Τϥʔϩά1BQFSUSBJM͔Βਖ਼نදݱͰ  ೔ʑͷ஋(PPHMF"OBMZUJDTͷ஋ʢ("4ʣ 

    Πϕϯτ৽نొ࿥ͳͲ
  31. )FSPLV$IBU0QT  IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFT DIBUPQT  1VCMJD#FUBʢࢼͤΔʂʣ  1JQFMJOFͷૢ࡞΍σϓϩΠ͕Ͱ͖Δ  ΍ΕΔ͜ͱ͸૿͑Δͷ͔ɺظ଴

  32. )FSPLVຊ౰ʹศར ͋Γ͕ͱ͏ɺͰ΋

  33. ศར͗͢Δฐ֐ʜ  ΠϯϑϥΛ)FSPLVʹҕͶ͗͢Δ  %PDLFSͱ͔࢖͑͹ղܾ͢Δʁ  ҕͶͨ݁Ռɺࢼߦࡨޡ͕ݮΔ  ৽͍ٕ͠ज़Λࢼ͢ؾ࣋ͪ΋େࣄ 

    ଞͷ؀ڥͷ͜ͱ΋஌͓ͬͯ͘ඞཁ
  34. ͋Γ͕ͱ͏͍͟͝·ͨ͠ ࣭໰͕͋Ε͹Ͳ͏ͧ