Herokuで本番運用する技術 / Heroku production

Herokuで本番運用する技術 / Heroku production

社内勉強会でHerokuの話をしました。

4c8807d9a90fe91b717983647f0664f4?s=128

Hiroshi Shimoju

November 11, 2017
Tweet

Transcript

  1. Լॏതࢿ(.01FQBCP *OD ୈճ&$ࣄۀ෦5FDI.5( )FSPLVͰຊ൪ӡ༻͢Δٕज़

  2. ΤϯδχΞ ೥౓ೖࣾɾ৽ଔظ Լॏതࢿ!TIJNPKV@ &$ࣄۀ෦46;63*νʔϜ TIJNPKVPSH

  3. None
  4. 46;63*ͷํ͔Β͖·ͨ͠

  5. ຊ೔ճ໨ͷൃදͰ͢

  6. None
  7. None
  8. None
  9. 46;63*❤)FSPLV

  10. )FSPLV w46;63*͸)FSPLVͰӡ༻͍ͯ͠·͢ wݸਓͰ΋)FSPLVͰӡ༻͍ͯ͠ΔΞϓϦ͕͋Γ·͢ wͦͷதͰܦݧͨ͜͠ͱΛɺͬ͟ͱˍΏΔΊʹൃද͠· ͢ʂ

  11. ͓͠ͳ͕͖ wΦʔτεέʔϧ wಠࣗυϝΠϯઃఆ w44-ઃఆ wϝʔϧ wσʔλϕʔε wϑΝΠϧΞοϓϩʔυ wλΠϜΞ΢τ wϩά wΞϓϦέʔγϣϯઃܭ

    wো֐৘ใ w͓·͚
  12. Φʔτεέʔϧ

  13. None
  14. Φʔτεέʔϧ w4UBOEBSEҎ্ͰखಈͰͷεέʔϧ͕Մೳ w1FSGPSNBODF.Ҏ্Ͱ)FSPLVͰͷΦʔτεέʔϧ͕࢖͑Δ w͔͠͠ʙ͸ߴ͍ʜʜ w46;63*Ͱ͸֎෦ͷΦʔτεέʔϧαʔϏε)JSF'JSFΛ࢖͍ͬͯΔ wIUUQTXXXIJSFpSFJP

  15. Φʔτεέʔϧઃఆ wᮢ஋ͷઃఆ͸೰ΈͲ͜Ζ w)JSF'JSFͰ͸εϧʔϓοτ 31. ΍ϨεϙϯελΠϜͳͲ͔Βબ΂Δ wεϧʔϓοτʹͨ͠ͱ͜ΖɺΞΫηεूதͰλΠϜΞ΢τ͕සൃͨ͠ ͱ͖ɺݟ͔͚ͷεϧʔϓοτ͕མͪͨͷ͔εέʔϧΠϯ͢Δࣄ͕݅ʜ wखͰεέʔϧΞ΢τͨ͠ͷʹؤͳʹ%ZOPΛݮΒͯ͘͠Δ wεέʔϧΞ΢τ͚ͩߟ͑ͣεέʔϧΞοϓ΋ߟྀ͢Δ

  16. ಠࣗυϝΠϯઃఆ

  17. ಠࣗυϝΠϯઃఆ w)FSPLVͷಠࣗυϝΠϯઃఆ͸$/".&Ͱߦ͏ wXXXFYBNQMFDPNˠXXXFYBNQMFDPNIFSPLVEOTDPN΁ w$/".&ͷ;POF"QFY໰୊͕͋Δ

  18. ;POF"QFY໰୊ wκʔϯͷ௖఺αϒυϝΠϯͳ͠ͷυϝΠϯྫFYBNQMFDPN w$/".&ͱଞͷϨίʔυ͸ಉډͰ͖ͳ͍ w;POF"QFYʹ͸গͳ͘ͱ΋/4ϨίʔυΛઃఆ͢Δඞཁ͕͋Δ w;POF"QFYʹ$/".&Λઃఆͨ͠৔߹ɺ্هʹҧ൓͢Δ w͕ͨͬͯ͠ɺ;POF"QFYʹ$/".&͸ઃఆͰ͖ͳ͍ w 3'$IUUQTUPPMTJFUGPSHIUNMSGDTFDUJPO

  19. "-*"4ػೳ w;POF"QFY໰୊Λղܾ͢Δػೳ w"-*"4ͱͯ͠ઃఆ͞ΕͨυϝΠϯ໊Λ໊લղܾͯ͠ɺಘΒΕͨ*1Ξυ ϨεΛ"Ϩίʔυͱͯ͠ఏڙ͢Δ w"-*"4Ϩίʔυͱ͍͏Ϩίʔυ͸ଘࡏ͠ͳ͍ wͨͩ͠ɺ"/".&Ϩίʔυͱͯ͠࢓༷ఏҊ͕͞Ε͍ͯΔ wݱࡏ͸֤%/4αʔϏεͷಠ࣮ࣗ૷Ͱɺ"-*"4΍"/".&ɺ$/".& 'MBUUFOͳͲͱݺ͹Ε͍ͯΔ

  20. "-*"4ػೳͷ͋Δ%/4αʔϏε w%/4JNQMF "-*"4SFDPSE  w%/4.BEF&BTZ "/".&SFDPSE  w$MPVE'MBSF%/4 $/".&'MBUUFO 

    w"843PVUF &$ɺ"-#΍$MPVE'SPOUͳͲ"84αʔϏεͷΈ  w(FIJSO%/4 ΤΠϦΞεػೳ  w46;63*Ͱ͸(FIJSO%/4Λ࢖͍ͬͯ·͢
  21. 44-ઃఆ

  22. 44-ઃఆ wੲ͸44-ઃఆ͸༗ྉɿ44-&OEQPJOU MFHBDZ  wࠓ͸༗ྉ%ZOPͰ͋Ε͹ແྉͰ44-ઃఆ͕Մೳɿ)FSPLV44- w-FUT&ODSZQUʹΑΔແྉ44-ূ໌ॻ΋औಘՄೳʹͳͬͨ w΋ͪΖΜࣗಈߋ৽ w46;63*Ͱ͸44-&OEQPJOU MFHBDZ Λ࢖༻த

  23. -FUT&ODSZQU wυϝΠϯ͕௚઀)FSPLVʹ޲͍͍ͯͳ͍ͱऔಘߋ৽Ͱ͖ͳ͍ͷͰ஫ҙ wݸਓΞϓϦͰɺূ໌ॻऔಘޙ$MPVE'MBSFܦ༝ʹ੾Γସ͑ͨΒɺߋ৽࣌ ʹΤϥʔ͕ى͖ͨʜ

  24. ϝʔϧ

  25. 4FOE(SJE wఆ൪ͷϝʔϧ഑৴αʔϏε w"EEPOͰ௥ՃͰ͖Δ wϓϥϯ͝ͱʹૹ৴Մೳ਺͕نఆ͞Ε͍ͯΔ

  26. ૹ৴਺Φʔόʔ໰୊ wϓϥϯ͝ͱͷૹ৴਺Λ௒͑Δͱϝʔϧ͕ૹΕͳ͘ͳΔ w࢖༻ྔͷ௨஌ϝʔϧ͸དྷΔ͕ɺٳ೔ʹ͔͔͍ͬͯΔͱؾ෇͚ͳ͍ ͜ͱ΋͋ΔͷͰ͜Ε͚ͩʹ͸པΕͳ͍ w݄͝ͱͷ੍ݶͷͨΊɺ݄຤ʹϝʔϧૹ৴਺͕ٸ૿͢Δ৔߹ʹ஫ҙ

  27. ૹ৴਺Φʔόʔ໰୊ wରࡦ wۚͰԥΔɿϓϥϯΛ্͛Δ wϝʔϧ͕ૹ৴Ͱ͖ͳ͘ͳͬͯ΋ॲཧ͕ࢭ·Βͳ͍Α͏ʹ͢Δ wϝʔϧૹ৴Λಉظॲཧ͠ͳ͍ ϫʔΧʔͰඇಉظૹ৴ɾ࠶ૹ৴Ͱ͖Δ Α͏ʹઃܭ͢ΔɾϩάΛ࢒͢

  28. ϝʔϧड৴ w4FOE(SJE͸ϝʔϧૹ৴ͷΈͳͷͰɺड৴ଆ͸ߟ͑Δඞཁ͕͋Δ wड৴ϝʔϧͷ಺༰Λ1045ͰૹΔ1BSTF8FCIPPL͸͋Δ w46;63*Ͱ͸ϔςϜϧΛ࢖͍ͬͯΔ

  29. σʔλϕʔε

  30. )FSPLV1PTUHSFT w1PTUHSF42-͸)FSPLVެࣜͰఏڙ͞Ε͍ͯΔ w.Z42-͸ଞࣾ੡"EEPOͷΈ w1SFQBSFE4UBUFNFOUT w઀ଓ਺໰୊ wϨϓϦέʔγϣϯ

  31. 1SFQBSFE4UBUFNFOUT w1PTUHSF42-αʔόଆͷΫΤϦΩϟογϡػߏ w%#ͷϝϞϦΛେྔʹফඅͯ͠͠·͏ͨΊΦϑਪ঑ wDPOpHEBUBCBTFZNMʹQSFQBSFE@TUBUFNFOUTGBMTFΛઃఆ wʮ"DUJWF3FDPSEؚΉଟ͘ͷ03.Ͱ͸ޮ཰తʹ1SFQBSFE4UBUFNFOUT Λѻ͑ͣɺ*/۟ͷ಺༰͕ҧͬͨΓ͢Δͱผͷ14ͱͯ͠Ωϟογϡ͞Ε ΔͨΊɺ͋·Γʹ΋ଟ͘ͷ14͕࡞ΒΕͯ͠·͏ͨΊʯͱͷ͜ͱ w IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTQPTUHSFTMPHTFSSPSTSVCZBDUJWFSFDPSEBOEQSFQBSFE TUBUFNFOUT

  32. ઀ଓ਺໰୊ wϓϥϯ͝ͱʹίωΫγϣϯ਺ͷ্ݶ͕ઃఆ͞Ε͍ͯΔ wରࡦ wۚͰԥΔɿ%#ͷϓϥϯΞοϓ wίωΫγϣϯϓʔϥʔͷ1H#PVODFSΛ࢖͏

  33. ϨϓϦέʔγϣϯ w'PMMPXFSEBUBCBTFػೳͱͯ͠ϨϓϦέʔγϣϯΛఏڙ w IUUQTEFWDFOUFSIFSPLVDPNBSUJDMFTIFSPLVQPTUHSFTGPMMPXFSEBUBCBTFT wϚελʔͱҧ͏ϓϥϯͰ΋0, ༰ྔͷ੍໿͸͋Δ  w46;63*Ͱ͸3FEBTI͔ΒͷΞΫηεͷͨΊʹ'PMMPXFSEBUBCBTFΛ ࢖͍ͬͯΔ

  34. ϑΝΠϧΞοϓϩʔυ

  35. ϑΝΠϧΞοϓϩʔυ wී௨ʹ΍ΔͱΫϥΠΞϯτˠ)FSPLVˠ4ͷܦ࿏ʹͳΔ wΞϓϦଆͰॲཧͯ͠อଘ͍ͨ͠ͱ͖͸༗ޮ͕ͩɺͦ͏Ͱͳ͍৔߹͸αʔ όϦιʔεΛઅ໿͍ͨ͠ɾ)FSPLV͕64ͳͷͰ଎౓໰୊͕͋Δ w46;63*Ͱ͸1SFTJHOFE63-Λ࢖ͬͨ௚઀ΞοϓϩʔυΛߦ͍ͬͯΔ w3BJMTͰಋೖ͞ΕΔ"DUJWF4UPSBHFͰ͸ɺ%JSFDUVQMPBE΋αϙʔ τ͞Ε͍ͯΔͱͷ͜ͱ w IUUQTHJUIVCDPNSBJMTSBJMTUSFFNBTUFSBDUJWFTUPSBHFEJSFDUVQMPBET

  36. λΠϜΞ΢τ

  37. λΠϜΞ΢τ wඵҎ಺ʹϨεϙϯεΛฦ͞ͳ͍ͱɺ)FSPLVଆͰऴྃͤ͞ΒΕΔ w݄ॳ༻ͷूܭ$47ΛϦΫΤετܖػͰੜ੒ˠμ΢ϯϩʔυΛ͍ͯͨ͠ ͕ɺ͜ͷલͷηʔϧͷͱ͖ʹ͍ͭʹλΠϜΞ΢τͨ͠ w3BLFλεΫͰ$47Λੜ੒ͯ͠4ʹΞοϓ͢ΔΑ͏ʹ͍ͯ͠Δ

  38. ϩά

  39. ϩά w1BQFSUSBJM͕ఆ൪ w͔͠͠ɺਖ਼௚͋·Γ࢖͍উख͸Α͘ͳ͍ؾ͕ʜ w5SFBTVSF%BUB΍,JCBOBͳͲͷϩάج൫తͳ΋ͷʹू໿͢Δ΄͏͕Α ͦ͞͏ w4΁ͷόοΫΞοϓ͸͍ͯ͠Δ

  40. ΞϓϦέʔγϣϯઃܭ

  41. 5IF5XFMWF'BDUPS"QQ wIUUQTGBDUPSOFUKBҎ্ʂ wΞϓϦέʔγϣϯ಺෦ͷઃఆͱ؀ڥ͝ͱʹҟͳΔઃఆΛ෼཭͢Δ wεςʔτϨεʜγεςϜϩʔΧϧͳԿ͔ʹґଘ͠ͳ͍ɺࣗݾ׬݁ w)FSPLVͰ͸ϩʔΧϧʹอଘͰ͖Δ͕ɺ೔ճ࠶ىಈ͞Εͯফ໓͢Δ w)FSPLV͸εέʔϥϒϧͳΞϓϦཆ੒Ϊϓε

  42. ো֐৘ใ

  43. ো֐৘ใ wIUUQTTUBUVTIFSPLVDPN wϝʔϧͰߪಡͰ͖Δ͕ɺܰඍͳো֐͸݁ߏଟ͍ w$SJUJDBMJODJEFOUTPOMZͰ͍͍͔΋͠Εͳ͍

  44. ωοτϫʔΫো֐ w)FSPLVʹωοτϫʔΫো֐͕ൃੜ͠ɺ͜Ε͕ݪҼͱΈΒΕΔαʔϏ εো֐͕ى͖ͨ w"EEPOͷαʔόʔ͸಺෦-"/ʹͳ͍ͷͰωοτϫʔΫো֐ͷӨڹΛ ड͚Δ͜ͱʹ஫ҙ w֎ܗ؂ࢹΛ͖ͪΜͱೖΕΔ

  45. ͓·͚

  46. )FSPLV1JQFMJOFT wςετɺεςʔδϯάɺຊ൪؀ڥΛγʔϜϨεʹ౷߹͢Δ$*$%؀ڥ wNBTUFSϚʔδˠ)FSPLV$*࣮ߦˠςετ௨ͬͨΒࣗಈσϓϩΠͳͲ w$IBU0QT΋αϙʔτɿ/h deploy suzuri to production wͨͩ͠ɺ(JU)VC DPN

    Ͱ͔͠࢖͑ͳ͍ʜʜ wHJUIVCDPN͕ϋʔυίʔυ͞Ε͍ͯΔՕॴ͕͋ͪͪ͜ʹ͋ͬͯ৭ʑ େมΒ͍͠ͱͷ͜ͱʜ CZITCU  w IUUQTLCIFSPLVDPNDBOJVTFHJUIVCFOUFSQSJTFXJUIQJQFMJOFSFWJFXBQQT
  47. )FSPLV3FWJFX"QQT w)FSPLV1JQFMJOFTͷػೳͷͻͱͭ w1VMM3FRVFTUΛ࡞Δͨͼʹ৽͍͠؀ڥΛ࡞ͬͯ͘ΕΔ wJOUFHSBUJPO؀ڥ଴͔ͪΒղ์ʂʂʂ wͨͩ͠ɺ͜Ε΋(JU)VCͰ͔͠࢖͑ͳ͍ʜʜ

  48. ·ͱΊ wಠࣗυϝΠϯઃఆ wΦʔτεέʔϧ w44-ઃఆ wϝʔϧ wσʔλϕʔε wϑΝΠϧΞοϓϩʔυ wλΠϜΞ΢τ wΞϓϦέʔγϣϯઃܭ wো֐৘ใ

    w͓·͚
  49. ੍໿͸͋Δ͕ͱͯ΋ศར

  50. )FSPLVͰຊ൪ӡ༻ ͯ͜͠͏