$30 off During Our Annual Pro Sale. View Details »

Webサービス開発の変遷と現在

 Webサービス開発の変遷と現在

Naoya Ito

July 12, 2014
Tweet

More Decks by Naoya Ito

Other Decks in Technology

Transcript

  1. 8FCαʔϏε։ൃτϨϯυͷ
    มભͱݱࡏ
    /BPZB*UP
    ,"*;&/QMBUGPSN*OD

    )BDLFST$IBNQMPP

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. ԭೄͷΈͳ͞Μ͜Μʹͪ͸

    View Slide

  9. ΞδΣϯμ
    •  ೥͘Β͍ͷ8FC։ൃΛৼΓฦΔ
    •  ࡢࠓͷ8FCαʔϏε։ൃϓϩηε
    •  ߟ࡯

    View Slide

  10. ͜ͷ೥ͷ8FC։ൃͷมભ

    View Slide

  11. ΤϙοΫϝΠΩϯάͩͬͨࣄ
    •  +&&
    •  ΞδϟΠϧ։ൃ
    •  044
    •  -".1
    •  3BJMT"KBY
    •  εϚʔτϑΥϯ
    •  Ϋϥ΢υ
    •  Ϗοάσʔλ
    •  (JU)VC
    ೥ࠒ
    ೥୅த൫
    Ҏ߱

    View Slide

  12. ͬ͘͟Γ෼͚Δͱ
    •  ೥લޙ
    –  +&&ɺΞδϟΠϧ։ൃ

    •  ೥୅த൫
    –  044ɺ-".1ɺ3BJMT"KBY

    •  Ҏ߱
    –  εϚʔτϑΥϯ
    –  Ϋϥ΢υɺϏοάσʔλ
    –  (JU)VC

    View Slide

  13. ࣗ෼ͷλΠϜϥΠϯͱॏͶΔ
    •  ೥લޙ
    –  +&&ɺΞδϟΠϧ։ൃ

    •  ೥୅த൫
    –  044ɺ-".1ɺ3BJMT"KBY

    •  Ҏ߱
    –  εϚʔτϑΥϯ
    –  Ϋϥ΢υɺϏοάσʔλ
    –  (JU)VC
    χϑςΟ
    ʙ

    ͸ͯͳ
    ʙ

    (3&&
    ʙ

    ,"*;&/QMBUGPSN*OD
    ʙ

    View Slide

  14. ೥લޙ
    •  +&&ɺΞδϟΠϧ։ൃ
    –  4USVUTɺ91
    •  ʮ8FCΞϓϦέʔγϣϯʯͱ͍͏֓೦͕ఆண͠
    ͨ
    •  ΤϯλʔϓϥΠζͰੜ·Εͨ։ൃख๏ɾιϑτ
    ΢ΣΞ͕ίϯγϡʔϚ։ൃʹ
    –  4PMBSJTɺ0SBDMFɺ+BWBɺ/FUTDBQF&OUFSQSJTF
    4FSWFS ࣮ࡍʹۀ຿Ͱ࢖ͬͯ·ͨ͠

    View Slide

  15. ౰࣌ͷงғؾ
    •  ݸਓ͕ద౰ʹॻ͍ͨεΫϦϓτͰ͸μϝ
    •  Ұํɺ+&&΍ΤϯλʔϓϥΠζख๏͸ɺ΍ͬ
    ͯΈΔͱ8FCʹ͸ॏ͍
    •  ঃʑʹεΫϦϓτݴޠ 1FSM 1)1
    Ͱͷ8FC
    ։ൃ΍ɺΞδϟΠϧ։ൃ͕੝Γ্͕Γ࢝ΊΔ
    ʮ1FSM͸+BWBΑΓ஗͍͔
    Βμϝʯͱ՝௕ʹݴΘΕ
    ͨͷ΋ࠓͰ͸Α͍ࢥ͍ग़
    Ͱ͢

    View Slide

  16. (PPHMFͷ୆಄
    ςΫϊϩδʔ͕ۀքΛݗ
    Ҿ͢Δɺͱ͍͏ைྲྀ

    View Slide

  17. ೥୅த൫
    •  044ɺ-".1
    – εΫϦϓτݴޠͰ։ൃ͢ΔࣄʹҟΛএ͑Δਓ
    ͸͍ͳ͘ͳͬͨ
    – -JOVYɺ.Z42-ͳͲ͕࣮༻తͳ඼࣭ʹ
    •  Χʔωϧ΍.Z42-ͷϨϓϦέʔγϣϯػ

    View Slide

  18. ౰࣌ͷงғؾ
    •  8FCΞϓϦέʔγϣϯ͸ɺ΋ͬͱΧδϡΞϧʹ࡞ΕΔ
    ͸ͣ
    –  -".1΍044ʹ৐͔ͬΓɺݸਓ΍খ͞ͳूஂ͕8FCαʔϏ
    εΛੜΈग़࣌͢୅ʹ
    –  ˠ8FC
    –  ։ൃϓϩηε΋ɺͦΕʹ߹ΘͤͯϥΠτ΢ΣΠτʹ
    ͸ͯͳɺͱ͍͏ͷ͸·͞
    ʹͦΕΛମݱͨ͠Α͏ͳ
    ूஂͰͨ͠

    View Slide

  19. View Slide

  20. 8FC
    •  (PPHMFͷϋοΧʔΧϧνϟʔ
    •  044΍-".1ʹΑͬͯɺΤϯύϫʔϝϯτ͞Εͨݸਓ
    ΍খ͞ͳूஂ
    •  ͦ͏͍͏த͔Βग़͖ͯͨ৽͍͠8FCاۀ

    View Slide

  21. 3BJMTͱ"KBY
    •  ͦͷޙͷ8FCΞϓϦέʔγϣϯ։ൃͷ
    ํ޲ੑΛܾఆ͚ͮͨͭͷτϨϯυ
    – 8FC͸จࣈ௨ΓʮΞϓϦέʔγϣϯʯʹͳ
    Δ
    – ෳࡶͳ͜ͱΛ؆୯ʹˠ8FCΞϓϦέʔγϣ
    ϯ͕ߴ౓Խ͍ͯ͘͠ͱ͍͏લஹ

    View Slide

  22. h"p://www.slideshare.net/yohei/webapi-­‐36871915

    View Slide

  23. Ҏ߱
    •  Ϋϥ΢υɺϏοάσʔλɺ(JU)VC
    –  *5ͷத৺ͱͳͬͨ8FC
    •  5IFDPOTVNFSJ[BUJPOPG*5ᴷίϯγϡʔϚ͔ΒΤϯ
    λʔϓϥΠζ΁ɻߏ଄ͷٯస
    –  Ϋϥ΢υ *BB41BB4
    ŋŋŋෳࡶԽ͍ͯ͘͠8FCΞ
    ϓϦέʔγϣϯ։ൃͷ෦඼ΛʮαʔϏεʯʹ
    –  খ͞ͳूஂͰ΋ߴ౓ͳΞϓϦέʔγϣϯɻେ͖ͳूஂ
    ͸ΑΓෳࡶ׌ͭߴ౓ͳγεςϜ
    ଓ͚ͯɺ͜ͷลΛΈ
    ͍͖ͯ·͢

    View Slide

  24. View Slide

  25. View Slide

  26. (JU)VCͱΫϥ΢υͷ࣌୅
    ΠϚίί

    View Slide

  27. ,"*;&/QMBUGPSN*OD
    "#ςετΫϥ΢υαʔϏεQMBO#$%Λ։ൃ͢Δ໊ఔ౓ͷελʔτΞοϓ

    View Slide

  28. View Slide

  29. 8FC։ൃͷӈཌྷɾࠨཌྷ
    •  ϥΠτ΢Οϯά
    – ܧଓతΠϯςάϨʔγϣϯɺܧଓతσϦό
    ϦʔɺςετࣗಈԽFUD
    •  Ϩϑτ΢Οϯά
    – εΫϥϜɺேձɺࣗݾ૊৫ԽFUD
    cf.  h"p://blogs.itmedia.co.jp/hiranabe/2012/09/rightwing-­‐and-­‐leDwing-­‐of-­‐agile.html

    View Slide

  30. ։ൃϓϩηε
    •  ϥΠτ΢Οϯά ٕज़తϓϥΫςΟε

    –  (JU)VCɺίʔυϨϏϡʔ
    –  ܧଓతΠϯςάϨʔγϣϯσϦόϦʔ
    –  $IBU0QT
    –  Ϋϥ΢υͷ׆༻

    •  Ϩϑτ΢Οϯά νʔϜ؀ڥ

    –  ϦϞʔτϫʔΫ
    –  ேձɺ,15
    –  2JJUB5FBNʹΑΔ৘ใڞ༗
    –  ࣗݾ૊৫Խ
    ओʹͬͪ͜ͷ࿩Λ͠
    ·͢

    View Slide

  31. (JU)VC
    •  (JUSFQPTJUPSZIPTUJOHˠ4PDJBM
    $PEJOH
    – (JUͷͨΊͷதԝϨϙδτϦݟ͑ΔԽ
    – ίϛϡχέʔγϣϯ
    044։ൃͳͲʹ࢖͏ɺ͔
    Βɺ͜ͷʙ೥Ͱʮا
    ۀ಺Ͱ΋࢖͏ʯ΁

    View Slide

  32. (JU)VCͰϓϧϦΫ։ൃ
    ͢΂ͯͷมߋ͸1VMM
    3FRVFTUͰ

    View Slide

  33. ϓϧϦΫ։ൃͷ࣮ࡍ
    •  Ұߦͷมߋ΋ϓϧϦΫͰ
    – Ϛʔδૢ࡞ʹϫʔΫϑϩʔ͕ඥ෇͍ͯΔ͔Β
    ޙड़

    – Ұߦͷมߋɺͱ͔ͷ࣌΄Ͳো֐͕͓͖΍͍͢
    $PPLQBEஊ

    View Slide

  34. ʮ(JU)VC্Ͱ࿩͢ʯͷ
    ͕Α͍࡞๏ ձ࿩ͷݟ͑
    ΔԽ

    ίʔυϨϏϡʔ

    View Slide

  35. ίʔυϨϏϡϫʔͷࣗಈΞαΠϯ

    View Slide

  36. 8*1 8PSL*O1SPHSFTT

    ʮऴΘ͔ͬͯΒ1VMM
    3FRVFTUʯͰ͸ͳ͘
    ʮ࢝ΊΔͱ͖ʹ1VMM
    3FRVFTUʯ

    View Slide

  37. ܧଓతΠϯςάϨʔγϣϯ
    $JSDMF$*

    View Slide

  38. 1VMM3FRVFTUͱ$*
    •  มߋͷͨͼʹςετ
    •  ςετ݁Ռ͸1VMM3FRVFTU্ͰՄࢹԽ

    View Slide

  39. Ϛʔδͨ͠ΒσϓϩΠ
    •  $JSDMF$*ͰσϓϩΠ
    –  ಛఆͷϒϥϯνʹมߋ͕͋ͬͨΒσϓϩΠ
    –  1VMM3FRVFTUΛϚʔδ͢ΔσϓϩΠ͢Δ
       production:  
           branch:  deployment/production  
           commands:  
               -­‐  ./script/assets_precompile.sh:  
               -­‐  bundle  exec  cap  production  deploy:migrations:  
       qa:  
           branch:  deployment/qa  
           commands:  
               -­‐  ./script/assets_precompile.sh:  
               -­‐  bundle  exec  cap  qa  deploy:migrations:  

    View Slide

  40. ܧଓతσϦόϦʔ
    master
    deployment/
    edge
    deployment/
    qa
    มߋ͸NBTUFS
    ΁QVMMSFRVFTU
    NFSHFͨ͠
    ΒࣗಈͰ
    FEHF΁ɻ
    (開発環境)
    ຊ൪ϦϦʔε͸
    NBTUFS͔ΒRB΁
    QVMMSFRVFTU
    RB΁NFSHF͞
    ΕΔͱ2"؀ڥ΁ࣗ
    ಈσϓϩΠ
    FEHF΁QVTI
    ͞ΕΔͱ։ൃػ΁
    ࣗಈσϓϩΠ
    deployment/
    production
    2"ऴΘͬͨ
    ΒQSPEVDUJPO
    ΁ಉ༷ʹ

    View Slide

  41. 1VMM3FRVFTUσϓϩΠ
    •  σϓϩΠλεΫ͸1VMM3FRVFTUͰ࣮ߦ
    –  σϓϩΠͷݟ͑ΔԽ
    –  NFSHFϘλϯΛԡ͢ͱ$JSDMF$*ܦ༝ͰσϓϩΠ͕૸Δ

    View Slide

  42. ͜Εԡ͢ɻҎ্
    ݁ՌɺσϓϩΠͷํ๏

    View Slide

  43. $IBU0QT
    •  IVCPU
    •  CPUʹ͓ئ͍ͯ͠ΦϖϨʔγϣϯ

    View Slide

  44. View Slide

  45. View Slide

  46. ϦϦʔε࣌ͷνΣοΫϦετΛ
    IVCPU͕ࣗಈ࡞੒

    View Slide

  47. ࠷ۙ͸CPU͕CPUΛಈ͔ͯ͠Δ
    ʮ͓લͷมߋؒ΋ͳ͘Ͱ
    Δ͔Β࠷ऴ֬ೝ͠ΖΑʯ
    ͱ͍͏ͷ΋IVCPU͕ఆظ
    తʹݺͼ͔͚ͯ͘Δ
    CPU͕IVCPUʹ
    ໋ྩΛग़͢

    View Slide

  48. (JU)VCͰมΘͬͨ͜ͱ
    •  044։ൃͷΑ͏ͳ΍ΓํΛɺاۀ΍νʔ
    Ϝ։ൃʹ΋
    ͦ͏͍͑͹(PPHMF͕ɺͦ
    Μͳ΍ΓํΛͯ͠Δͱ͍ͣ
    ͿΜલʹݴͬͯͨ

    View Slide

  49. (JU)VCͰมΘͬͨ͜ͱ
    •  1VMM3FRVFTUʹϫʔΫϑϩʔΛू໿͞
    ͤΔɺͱ͍͏ߟ͑ํ
    – ίʔυϨϏϡʔɺςετɺ2"ɺσϓϩΠŋŋŋ
    – ؔ࿈λεΫ͕ɺͭͷ1VMM3FRVFTUͷจ຺
    Ͱ·ͱΊΒΕΔ
    ʮ˓˓ͱ͍͏ػೳΛ௥Ճ͢ΔͨΊ
    ʹߦΘΕͨίϛοτ܈ɺσΟε
    ΧογϣϯɺϨϏϡʔ݁Ռɺςɹ
    ετͷཤྺŋŋŋʯͰҰͭͷ1VMM
    3FRVFTU

    View Slide

  50. Ϋϥ΢υαʔϏεͷ࣌୅
    •  ࣗ෼ͨͪͷϑΥʔΧεͰͳ͍ͱ͜Ζ͸ɺ
    ੵۃతʹΫϥ΢υ΁Ξ΢τιʔε

    View Slide

  51. "84
    QMBO#$%ͷαʔόʔΠ
    ϯϑϥ͸શͯ"84Ͱ

    View Slide

  52. )FSPLV
    •  IVCPU΍QMBO#$%ͷαϒγεςϜͷӡ
    ༻ʹར༻

    View Slide

  53. $JSDMF$* $JBTB4FSWJDF

    ςετ࣮ߦ͚ͩͰͳ͘ɺ
    σϓϩΠͳͲ(JU)VC
    ϫʔΫϑϩʔͷ΋͏ͻͱ
    ͭͷཁʹͳ͍ͬͯ·͢

    View Slide

  54. $BTQFS+4Ͱ&&

    View Slide

  55. &&Λ$JSDMF$*Ͱ

    View Slide

  56. 4USJQF ܾࡁ

    View Slide

  57. .BOESJMM ϝʔϧૹ৴

    View Slide

  58. #VHTOBH ྫ֎؅ཧ

    View Slide

  59. #SPXTFS4UBDL
    Ϋϩεϒϥ΢βςετ

    View Slide

  60. IVCPUͰΫϩεϒϥ΢βͷ
    εΫγϣࡱӨ

    View Slide

  61. .BDLFSFM ϞχλϦϯά

    View Slide

  62. /FX3FMJD ϞχλϦϯάͱ؂ࢹ

    View Slide

  63. 1BHFS%VUZ Ξϥʔτ

    TFOTV͕ҟৗΛݕ஌͢
    Δͱ1BHFS%VUZ͕ࣗ
    ಈͰ୲౰ʹ
    ి࿩

    View Slide

  64. #JH2VFSZ σʔλղੳ

    ԯϨίʔυΛ਺ඵͰ
    42- .11

    View Slide

  65. %FWFMPQFS1SPEVDUJWJUZ
    •  2ʮ͜ͷखͷಋೖͷۀ຿࣌ؒͲ͏΍ͬͯ࡞ΔΜͰ͔͢ ʯ
    •  "ʮͦΕΛϛογϣϯʹͯ͠ΔνʔϜ͕͋Γ·͢ʯ
    ଞࣾͰ΋ࣅͨΑ͏ͳ࿩Λ
    ͱ͖Ͳ͖ฉ͘

    View Slide

  66. ࢥͬͨ͜ͱ

    View Slide

  67. 8FCͷਐԽ͸ࢭ·Βͳ͍
    •  ೥ؒɺԿ౓΋͜ΕͰܾఆ൛͔ͱࢥͬͨ
    ͜ͱ͕͋ͬͨ
    – ࣮ࡍ͸ɺͦ͜Ͱࢭ·Δ͜ͱ͸ͳ͔ͬͨ
    •  (PPHMFɺ'BDFCPPLɺ5XJUUFS
    •  3BJMTɺ/PEFKTɺJ04"OESPJEɺ(PMBOH
    •  ͲΜͲΜߴ౓ԽɾෳࡶԽ͢Δ8FCΞϓϦέʔγϣ
    ϯεϚʔτϑΥϯ։ൃ
    ͍ͭ·Ͱཱͬͯ΋མͪ
    ண͔ͳ͍

    View Slide

  68. ະདྷ༧ଌ͸೉͍͠
    •  (JU)VC͕ɺΫϥ΢υ͕ɺΈ͍ͨͳ௚͙ۙΒ͍
    ͸͋Δఔ౓ݟ͑Δ
    •  େ͖ͳมԽ͸ಥવ΍ͬͯ͘Δɻ༧ଌͰ͖ͳ͍
    –  3VCZPO3BJMTͷϦϦʔεɺ"84ɺ(JU)VCͷا
    ۀ಺Ͱͷར༻ŋŋŋFUD
    –  όζϫʔυͱݴΘΕ͍ͯͨ΋ͷ΋ɺؾͮ͘ͱఆணͨ͠
    Γ͢Δ ྫΫϥ΢υɺϏοάσʔλ

    View Slide

  69. ະདྷ༧ଌΑΓɺมԽ΁ͷదԠ
    •  มԽ͢Δ͜ͱΛલఏʹɺదԠ͠ଓ͚Δ͔͠ͳ͍
    –  ܧଓతʹ
    –  ΞδϦςΟͷ޲্
    •  ໘ന͍͜ͱ͕ىͬͨ͜ͱ͖ɺͬ͞ͱඈͼ͔͔Ε
    Δ͔Ͳ͏͔
    –  ݸਓతʹ΋ɺνʔϜతʹ΋
    –  จԽॏཁ

    View Slide

  70. อकతPSਐาత ೉͍͠ŋŋŋ

    •  ผʹɺ৽͍͜͠ͱ͕ॏཁͳͷͰ͸ͳ͍
    –  ྡͷࣳ͸ৗʹ੨͍
    –  ྲྀߦΛऔΓೖΕΔ͜ͱ͕ඞͣ͠΋ਖ਼ղͱ͸ݴ͑ͳ͍
    •  ݴޠΛ৐Γ׵͑ͨΒ࣍ͷݴޠ͕དྷͨɺͱ͔ɻӬٱʹϑΥʔΧεͰ͖
    ͳ͍
    •  อकత͗ͯ͢΋औΓ࢒͞ΕΔ
    –  ʮखஈͱ໨తΛཤ͖ҧ͑Δͳʯ͓͡͞Μ
    –  खஈΛ໨తԽͯ͠Ͱ΋৐͔ͬͬͨํ͕݁Ռతʹྑ͍͜ͱ΋͋Δ

    View Slide

  71. ͳͥখ͞ͳνʔϜ͕༗ར͔
    খ͞ͳνʔϜ͸มԽ΁
    ͷ఍߅ྗ͕খ͍͞

    View Slide

  72. اۀ͸੒௕͢΂͖͔
    •  Α͘Θ͔Βͳ͍
    – ιϑτ΢ΣΞ։ൃʹ͓͍ͯ͸ େہతʹ͸

    ͞ͳνʔϜͷํ͕༗ར
    – (PPHMF΍'BDFCPPLͷΑ͏ͳ)BDLFS
    8BZ͕εέʔϧ͢Δ૊৫ͷͨΊͷཁૉɺ͔
    ΋
    •  େ͖͘ͳͬͯ΋յͤΔจԽ
    •  ϗϥΫϥγʔ

    View Slide

  73. ݁࿦͸ŋŋŋͳ͠
    •  ͳͥͳΒɺ͜Ε͔Β΋มԽ͠ଓ͚Δ͔Β
    •  େࣄʹ͍ͯ͠Δ͜ͱ
    – ʮͦͷ࣌ͦͷ࣌Ͱɺೲಘͯ͠΍Ε͍ͯΔ͔ʯ
    •  ࠓࣗ෼͕΍͍ͬͯΔ͜ͱ͕ɺେ࿮Ͱ͸ؒҧ͍ͬͯ
    ͳ͍ͱࢥ͑Δ͜ͱ
    •  ೲಘͰ͖͍ͯΕ͹ɺ޾ͤʹ։ൃͰ͖ΔɻೲಘͰ͖
    ͳ͍ͳΒյ͢

    View Slide

  74. ·ͱΊ
    •  8FC։ൃͷ೥ͱࠓΛΈͨ
    •  (JU)VCɺΫϥ΢υͷ࣌୅
    •  ͜Ε͔Β΋8FC։ൃ͸8FCͱڞʹมԽ͠
    ଓ͚Δ
    •  มԽʹదԠ
    •  ೲಘ͸ތΓ

    View Slide

  75. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠
    ण࢘Ώ͖CZBXBZVLJ $$#:/$/%

    View Slide