Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DockerとJenkinsを使った開発速度と品質の向上 / docker and jenkins

DockerとJenkinsを使った開発速度と品質の向上 / docker and jenkins

【ヒカ☆ラボ】有名サービス開発エンジニア登壇のLT大会(https://hikalab-kansai.connpass.com/event/104702/) #ヒカラボ関西 に登壇しました。
WeblioでのDockerとJenkinsの開発実践例です。

Masashi Hirano

October 27, 2018
Tweet

More Decks by Masashi Hirano

Other Decks in Programming

Transcript

  1. DockerͱJenkins
    Λ࢖ͬͨ։ൃ଎౓ͱ඼࣭ͷ޲্
    ώΧˑϥϘ 2018/10/27
    ฏ໺ ণ࢜ @shisama
    ×

    View Slide

  2. ฏ໺ণ࢜.BTBTIJ)JSBOP
    ɹɹɹɹɹɹ,ZPUPP⒏DF
    [email protected]
    !TIJTBNB
    ؔ੢/PEFֶԂओ࠵ऀ
    044$POUSJCVUPS

    View Slide

  3. View Slide

  4. View Slide

  5. 8IBUJT

    View Slide

  6. ɹɹɹɹͷࣄۀͱٕज़
    ࣙॻ

    ɾӳ࿨ɺࠃޠɺྨޠɺதࠃޠɺؖࠃޠɺݹޠɺख࿩FUD

    ɾ݄ؒΞΫςΟϒϢʔβʔ਺ઍສਓ

    ɾສޠҎ্ͷ୯ޠΛऩ࿥

    ɾ+BWB

    ɾ೥Ҏ্ଓ͘ϨΨγʔྺ࢙͋ΔγεςϜ

    View Slide

  7. ɹɹɹɹͷࣄۀͱٕज़
    ΦϯϥΠϯӳձ࿩

    ɾӳޠͷतۀΛωΠςΟϒͷߨࢣͱ̍ର̍Ͱߦ͏͜ͱ͕Ͱ͖Δ

    ɾ8FC35$Λ࢖ͬͨϏσΦɾԻ੠ͷ௨৴

    ɾ/PEFKTɺ3FBDUɺ'JSFCBTFFUD

    View Slide

  8. ɹɹɹɹͷࣄۀͱٕज़
    J04"OESPJEΞϓϦ

    ɾࣙॻɺ୯ޠாɺ຋༁ͳͲͷΞϓϦ

    ɾ4XJGUɺ+BWBɺ,PUMJO

    View Slide

  9. ɹɹɹɹͷࣄۀͱٕज़
    "*ɺཹֶࢧԉFUD

    ɾ"*ͱӳձ࿩Ͱ͖ΔαʔϏε

    ɾཹֶɾཱྀߦɾւ֎ෝ೚ͷࢧԉ

    ɾ1ZUIPOɺ+BWBɺ8PSE1SFTTFUD

    View Slide

  10. ࠓ೔࿩͢͜ͱ
    ✤ୈҰ෦%PDLFSΛ࢖ͬͨ։ൃ࣮ફྫ
    ✤ୈೋ෦+FOLJOTΛ࢖ͬͨ։ൃ࣮ફྫ

    View Slide

  11. DockerΛ࢖ͬͨ։ൃ࣮ફྫ

    View Slide

  12. %PDLFSͱ͸

    View Slide

  13. IUUQTSBODIFSDPNQMBZJOHDBUDIEPDLFSDPOUBJOFST

    View Slide

  14. %PDLFSجຊ
    $MJFOU %PDLFS)PTU
    %PDLFS%BFNPO
    3FHJTUSZ
    EPDLFSIVC
    $OUBJOFS *NBHF
    EPDLFSCVJME
    EPDLFSQVMM
    EPDLFSSVO

    View Slide

  15. %PDLFSجຊ
    %PDLFS)PTU
    %PDLFS%BFNPO
    3FHJTUSZ
    EPDLFSIVC
    $OUBJOFS *NBHF
    $MJFOU
    EPDLFSCVJME
    EPDLFSQVMM
    EPDLFSSVO
    ։ൃऀ͕EPDLFSίϚϯυΛ࣮ߦ

    View Slide

  16. %PDLFSجຊ
    $MJFOU 3FHJTUSZ
    EPDLFSIVC
    EPDLFSCVJME
    EPDLFSQVMM
    EPDLFSSVO
    %PDLFS)PTU
    %PDLFS%BFNPO
    $OUBJOFS *NBHF
    ड͚औͬͨίϚϯυΛݩʹ
    EPDLFSΠϝʔδΛ࡞ͬͨΓɺ
    EPDLFSίϯςφΛىಈͨ͠Γɺ
    EPDLFSΠϝʔδΛऔಘͨ͠Γ

    View Slide

  17. %PDLFSجຊ
    $MJFOU %PDLFS)PTU
    %PDLFS%BFNPO
    $OUBJOFS *NBHF
    EPDLFSCVJME
    EPDLFSQVMM
    EPDLFSSVO
    3FHJTUSZ
    EPDLFSIVC
    EPDLFSΠϝʔδͷ഑෍΍؅ཧΛ͢Δ
    Ұൠެ։޲͚ʹ͸%PDLFS)VC͕͋Δ

    View Slide

  18. %PDLFSجຊ
    $MJFOU %PDLFS)PTU
    %PDLFS%BFNPO
    3FHJTUSZ
    EPDLFSIVC
    $OUBJOFS *NBHF
    EPDLFSCVJME
    EPDLFSQVMM
    EPDLFSSVO
    %PDLFSʹࢦࣔ͢Δਓɺ
    ΠϝʔδɺίϯςφΛ࡞Δਓɺ
    Πϝʔδͷ഑෍΍؅ཧΛ͢Δਓ͕͍Δ

    View Slide

  19. %PDLFS͕ແ͔ͬͨ͋ͷࠒ
    w ։ൃ؀ڥ͸खಈͰ͍͔ͪΒߏஙɻ؀ڥߏங͚ͩͰ̎೔͔͔Δ1+΋͋ͬͨ
    w ؀ڥߏஙͷखॱॻʹ͸ॻ͔Ε͍ͯͳ͍ઃఆ͕͋ͬͨΓ
    w खॱॻ͕8JOEPXTͷखॱ͔͠ͳ͔ͬͨΓ
    w खॱॻ௨Γ΍͚ͬͨͲಈ͔Μɾɾɾ
    w Ͳ͏΍ͬͯߏங͞Ε͔ͨΘ͔ΒΜɾɾɾ

    View Slide

  20. %PDLFSಋೖޙ
    w ։ൃ؀ڥ͸%PDLFSίϯςφΛىಈ͢Δ͚ͩͰߏங͞ΕΔͨΊޮ཰Խ
    w %PDLFS্Ͱ։ൃ͢ΔͨΊ֤։ൃऀͷ؀ڥΛ౷Ұ
    w %PDLFSpMF͕؀ڥߏஙͷखॱΛࣔͨ͢Ίखॱॻ࡞੒ͷखؒΛলུ
    w ։ൃ؀ڥʹมߋ͕ൃੜͯ͠΋Πϝʔδͷ࠶഑෍Λ͢Δ͚ͩ

    ɾΞϓϦέʔγϣϯΤϯδχΞ͸ΠϯϑϥϨΠϠʔΛؾʹ͠ͳͯ͘΋͍͍

    View Slide

  21. %PDLFSΛ࢖ͬͨ؀ڥߏங
    w ։ൃ؀ڥɺ+FOLJOTɺ3FEBTIͳͲʹ%PDLFSΛ࢖͍ͬͯΔ
    w %PDLFSίϯςφΛ্ཱͪ͛Δ͚ͩͰϩʔΧϧͰͷ։ൃ؀ڥ͕ߏங͞ΕΔ
    w EPDLFSDPNQPTFΛ࢖ͬͯΠϝʔδͷQVMM͔Βίϯςφىಈ·Ͱߦ͏
    w ίϯςφىಈ࣌ʹOHJOY΍ΞϓϦέʔγϣϯ͕ىಈ͢Δ
    w %PDLFSΠϝʔδ͸ࣾ಺ͷϓϥΠϕʔτͳ%PDLFSϦϙδτϦ͔ΒQVMM

    View Slide

  22. '30.VCVOUV
    $01:pMFT
    36/USVFa
    BQUVQEBUFpYNJTTJOHa
    CBTIWBSTDSJQUTQSFJOTUBMMTIa
    BQUJOTUBMMZa
    NBOTDSFFODSPOTVEPCBTIDPNQMFUJPOa
    OHJOYa
    ͦͷଞॾʑ
    a
    BQUDMFBOa
    CBTIWBSTDSJQUTQPTUJOTUBMMTIa
    USVF
    &/53:10*/5<CJOCBTI WBSTDSJQUTPOCPPUTI>
    %PDLFSpMFྫ
    04ͷΠϝʔδΛQVMM

    View Slide

  23. '30.VCVOUV
    $01:pMFT
    36/USVFa
    BQUVQEBUFpYNJTTJOHa
    CBTIWBSTDSJQUTQSFJOTUBMMTIa
    BQUJOTUBMMZa
    NBOTDSFFODSPOTVEPCBTIDPNQMFUJPOa
    OHJOYa
    ͦͷଞॾʑ
    a
    BQUDMFBOa
    CBTIWBSTDSJQUTQPTUJOTUBMMTIa
    USVF
    &/53:10*/5<CJOCBTI WBSTDSJQUTPOCPPUTI>
    %PDLFSpMFྫ
    04ͷΠϝʔδΛQVMM
    ඞཁͳઃఆϑΝΠϧͳͲΛίϐʔ

    View Slide

  24. '30.VCVOUV
    $01:pMFT
    36/USVFa
    BQUVQEBUFpYNJTTJOHa
    CBTIWBSTDSJQUTQSFJOTUBMMTIa
    BQUJOTUBMMZa
    NBOTDSFFODSPOTVEPCBTIDPNQMFUJPOa
    OHJOYa
    ͦͷଞॾʑ
    a
    BQUDMFBOa
    CBTIWBSTDSJQUTQPTUJOTUBMMTIa
    USVF
    &/53:10*/5<CJOCBTI WBSTDSJQUTPOCPPUTI>
    %PDLFSpMFྫ
    04ͷΠϝʔδΛQVMM
    ඞཁͳઃఆϑΝΠϧͳͲΛίϐʔ
    ύοέʔδΠϯετʔϧʹඞཁͳॲཧ

    View Slide

  25. '30.VCVOUV
    $01:pMFT
    36/USVFa
    BQUVQEBUFpYNJTTJOHa
    CBTIWBSTDSJQUTQSFJOTUBMMTIa
    BQUJOTUBMMZa
    NBOTDSFFODSPOTVEPCBTIDPNQMFUJPOa
    OHJOYa
    ͦͷଞॾʑ
    a
    BQUDMFBOa
    CBTIWBSTDSJQUTQPTUJOTUBMMTIa
    USVF
    &/53:10*/5<CJOCBTI WBSTDSJQUTPOCPPUTI>
    %PDLFSpMFྫ
    04ͷΠϝʔδΛQVMM
    ඞཁͳઃఆϑΝΠϧͳͲΛίϐʔ
    ඞཁͳύοέʔδΛΠϯετʔϧ
    ύοέʔδΠϯετʔϧʹඞཁͳॲཧ

    View Slide

  26. '30.VCVOUV
    $01:pMFT
    36/USVFa
    BQUVQEBUFpYNJTTJOHa
    CBTIWBSTDSJQUTQSFJOTUBMMTIa
    BQUJOTUBMMZa
    NBOTDSFFODSPOTVEPCBTIDPNQMFUJPOa
    OHJOYa
    ͦͷଞॾʑ
    a
    BQUDMFBOa
    CBTIWBSTDSJQUTQPTUJOTUBMMTIa
    USVF
    &/53:10*/5<CJOCBTI WBSTDSJQUTPOCPPUTI>
    %PDLFSpMFྫ
    04ͷΠϝʔδΛQVMM
    ඞཁͳઃఆϑΝΠϧͳͲΛίϐʔ
    ඞཁͳύοέʔδΛΠϯετʔϧ
    ύοέʔδΛ࢖ͬͨޙॲཧ
    ύοέʔδΠϯετʔϧʹඞཁͳॲཧ

    View Slide

  27. '30.VCVOUV
    $01:pMFT
    36/USVFa
    BQUVQEBUFpYNJTTJOHa
    CBTIWBSTDSJQUTQSFJOTUBMMTIa
    BQUJOTUBMMZa
    NBOTDSFFODSPOTVEPCBTIDPNQMFUJPOa
    OHJOYa
    ͦͷଞॾʑ
    a
    BQUDMFBOa
    CBTIWBSTDSJQUTQPTUJOTUBMMTIa
    USVF
    &/53:10*/5<CJOCBTI WBSTDSJQUTPOCPPUTI>
    %PDLFSpMFྫ
    04ͷΠϝʔδΛQVMM
    ඞཁͳઃఆϑΝΠϧͳͲΛίϐʔ
    ඞཁͳύοέʔδΛΠϯετʔϧ
    ύοέʔδΛ࢖ͬͨޙॲཧ
    αʔϏεىಈ
    ύοέʔδΠϯετʔϧʹඞཁͳॲཧ

    View Slide

  28. '30.VCVOUV
    $01:pMFT
    36/USVFa
    BQUVQEBUFpYNJTTJOHa
    CBTIWBSTDSJQUTQSFJOTUBMMTIa
    BQUJOTUBMMZa
    NBOTDSFFODSPOTVEPCBTIDPNQMFUJPOa
    OHJOYa
    ͦͷଞॾʑ
    a
    BQUDMFBOa
    CBTIWBSTDSJQUTQPTUJOTUBMMTIa
    USVF
    &/53:10*/5<CJOCBTI WBSTDSJQUTPOCPPUTI>
    %PDLFSpMFྫ
    04ͷΠϝʔδΛQVMM
    ඞཁͳઃఆϑΝΠϧͳͲΛίϐʔ
    ඞཁͳύοέʔδΛΠϯετʔϧ
    ύοέʔδΛ࢖ͬͨޙॲཧ
    αʔϏεىಈ
    ύοέʔδͷϦϙδτϦͷొ࿥ͳͲ
    ߏஙखॱ͕໌֬ʹΘ͔Δ

    View Slide

  29. '30.VCVOUV
    $01:pMFT
    36/USVFa
    BQUVQEBUFpYNJTTJOHa
    CBTIWBSTDSJQUTQSFJOTUBMMTIa
    BQUJOTUBMMZa
    NBOTDSFFODSPOTVEPCBTIDPNQMFUJPOa
    OHJOYa
    ͦͷଞॾʑ
    a
    BQUDMFBOa
    CBTIWBSTDSJQUTQPTUJOTUBMMTIa
    USVF
    &/53:10*/5<CJOCBTI WBSTDSJQUTPOCPPUTI>
    %PDLFSpMFྫ
    04ͷΠϝʔδΛQVMM
    ඞཁͳઃఆϑΝΠϧͳͲΛίϐʔ
    ඞཁͳύοέʔδΛΠϯετʔϧ
    ύοέʔδΛ࢖ͬͨޙॲཧ
    αʔϏεىಈ
    ύοέʔδͷϦϙδτϦͷొ࿥ͳͲ
    ͔͠͠Ϗϧυʹ͕͔͔࣌ؒΔ

    View Slide

  30. 1SJWBUFͳ%PDLFSϦϙδτϦͱ͸
    w ࣾ಺ʹஔ͚Δ%PDLFS3FHJTUSZ
    w %PDLFS)VCͷΑ͏ʹ%PDLFSΠϝʔδͷ഑৴Λߦ͏
    w %PDLFSpMF͔ΒϏϧυͨ͠ΠϝʔδΛQVTIͯ͠ϦϙδτϦ؅ཧ
    w %PDLFSެࣜͷ%PDLFS3FHJTUSZΛ࢖͏ͱ؆୯ʹߏஙͰ͖Δ
    w 5-4 )5514
    Λ࢖͏৔߹͸44-ূ໌ॻ͕ඞཁ
    w )551ͷ৔߹—insecure-registryΛ࢖Θͳ͍ͱ1VTI΍1VMM͕Ͱ͖ͳ͍

    View Slide

  31. 1VTI
    1VMM 1VMM 1VMM
    ։ൃऀ"
    ։ൃऀ# ։ൃऀ$ ։ൃऀ%

    View Slide

  32. 1SJWBUFͳ%PDLFSϦϙδτϦΛ࢖͏
    w ֤։ൃऀ͕։ൃ؀ڥΛϏϧυ͠ͳͯ͘΋Α͘ͳΔ
    w Ϗϧυ͞ΕͨΠϝʔδΛQVMM͢Δ͚ͩ
    w OHJOYͳͲ֤छઃఆϑΝΠϧ΍αʔόʔূ໌ॻ΋ΠϝʔδʹϏϧυ͢Δ

    ɾઃఆมߋ΍αʔόʔূ໌ॻͷҰݩ؅ཧ

    ɾ(JU؅ཧͨ͘͠ͳ͍΋ͷ΋Ϗϧυ͓ͯ͘͠

    View Slide

  33. version: "2"
    services:
    local_develop:
    hostname: “local_develop”
    container_name: "develop_container"
    image: “dockerrepo:5000/service_name“
    ports:
    - "80:80"
    - "443:443"
    volumes:
    - "./:/var/user/service"
    tty: true
    1SJWBUFϦϙδτϦ͔Β1VMM
    EPDLFSDPNQPTFZNM಺Ͱ
    QSJWBUFϦϙδτϦʹ͋ΔΠϝʔδΛࢦఆ

    View Slide

  34. IUUQTEFWDMBTTNFUIPEKQDMPVEEPDLFSSFHJTUSZSFDJQFT

    View Slide

  35. IUUQTEPDTEPDLFSDPNSFHJTUSZ

    View Slide

  36. %PDLFSpMFͷ؅ཧ
    %PDLFSΠϝʔδΛ࡞Δ%PDLFSpMF͸(JU)VC
    Ͱ؅ཧ͍ͯ͠Δ

    View Slide

  37. %PDLFSpMFͷ؅ཧ
    ֤%PDLFSpMF͝ͱʹΠϝʔδͷϏϧυͱ
    1VTI༻ͷTIFMMΛ༻ҙ

    View Slide

  38. #!/bin/bash
    IMAGE_NAME=“some_docker_image”
    REMOTE_IMAGE_NAME="dockerrepo:5000/$IMAGE_NAME"
    docker build --pull -t $IMAGE_NAME .
    docker tag $IMAGE_NAME $REMOTE_IMAGE_NAME
    docker push $REMOTE_IMAGE_NAME
    %PDLFSΠϝʔδͷϏϧυͱ1VTIΛߦ͏TIFMM

    View Slide

  39. ݸਓతʹ%PDLFSਏ͔ͬͨͱ͜Ζ
    w %PDLFSGPS.BD͕ͱʹ͔͘ॏ͍
    w ϩʔΧϧʹ%PDLFSΠϝʔδίϯςφ͕ϩʔΧϧʹ૿͑͗͢Δ
    w ϗετͷϚγϯ࠶ىಈޙ%PDLFSίϯςφ͕ىಈ͞Εͳ͍

    View Slide

  40. %PDLFSGPS.BDॏ͍໰୊

    View Slide

  41. %PDLFSGPS.BDॏ͍໰୊
    w WPMVNFͰϚ΢ϯτ͍ͯ͠ΔϗετϑΝΠϧ΁ͷΞΫηε͕ݪҼ
    w %PDLFS͕PTYGTͰ'JMF4ZTUFNΛ؂ࢹ͍ͯ͠Δͷ͕ݪҼ
    w ϑΝΠϧͷมߋ͕ଟ͍ͱ$16ෛՙ͕ΨϯΨϯ্͕͍ͬͯ͘

    View Slide

  42. %PDLFSGPS.BDॏ͘ͳͬͨͱ͖ͷղܾࡦ
    w %PDLFSGPS.BDΛ࠶ىಈ
    w 1SFGFSFODFT3FTFU3FTFUUPGBDUPSZEFGBVMUTΛ࣮ߦ
    w DBDIFEΦϓγϣϯΛ͚ͭΔ
    -v /hostdir:/mountdir:cached

    View Slide

  43. %PDLFSΠϝʔδίϯςφ͕૿͑͗͢Δ໰୊
    w ෳ਺αʔϏεͷ։ൃΛ͍ͯ͠Δͱ࢖͍ͬͯͳ͍Πϝʔδ΍ίϯςφ͕ϩʔ
    Χϧʹ૿͑ͯ͘Δ
    w Ұͭͣͭফ͢ͷ͸खؒ
    w Ұؾʹ࡟আ͍ͨ͠ʂ

    View Slide

  44. %PDLFSΠϝʔδίϯςφҰׅ࡟আํ๏
    docker stop $(docker ps -q)
    docker rm $(docker ps -q -a)
    docker rmi $(docker images -q)
    શίϯςφΛఀࢭ
    શίϯςφΛ࡟আ
    શΠϝʔδΛ࡟আ

    View Slide

  45. ϗετͷϚγϯ࠶ىಈޙίϯςφ͕ىಈ͞Εͳ͍
    w ϗετͷϚγϯΛ࠶ىಈͨ͠ͱ͖ʹίϯςφ͸ىಈ͞Εͳ͍
    w ىಈ͠๨Ε͍ͯͯ։ൃ؀ڥͱ͔KFOLJOT͕ಈ͔ͳ͍͜ͱ΋͠͹͠͹
    w ҰͭͣͭखಈͰίϯςφىಈ͢Δͷ͕खؒ
    w ࣗಈͰىಈͯ͠΄͍͠

    View Slide

  46. version: "2"
    services:
    local_develop:
    hostname: “local_develop”
    container_name: "develop_container"
    image: “dockerrepo:5000/service_name“
    restart: “always“
    ports:
    - "80:80"
    - "443:443"
    volumes:
    - "./:/var/user/service"
    tty: true
    ίϯςφͷࣗಈىಈํ๏
    EPDLFSDPNQPTFʹ
    SFTUBSUlBMXBZTzΛ௥Ճ͢Δ

    View Slide

  47. ୈҰ෦·ͱΊ
    w ػցͰͰ͖Δ͜ͱ͸ػցʹ೚ͤΔ
    w ։ൃ؀ڥߏஙͷखؒΛল͍ͯ։ൃ଎౓Λ޲্
    w ؀ڥߏஙͷखॱ͕ݟ͑ΔԽ͞ΕΔ
    w Ұ౓࡞Ε͹ָʹ͸ͳΔ͕ɺ͍Ζ͍Ζ޻෉͸ඞཁ

    View Slide

  48. JenkinsΛ࢖ͬͨ։ൃ࣮ફྫ

    View Slide

  49. $*ͱ͸

    View Slide

  50. View Slide

  51. +FOLJOTͱ͸
    w $*޲͚ͷࣗಈԽιϑτ
    w 044
    w +BWB
    w ΦϯϓϨͰಈ͔͢͜ͱ͕Ͱ͖Δ
    w ։ൃऀ͸೔ຊਓɻ઒ޱߞհ͞Μ
    w ଞͷ$*αʔϏεʹ͸5SBWJT$*΍$JSDMF$*ͳͲ͕͋Δ

    View Slide

  52. +FOLJOT͓͡͞Μ͕͍ͳ͔ͬͨ͋ͷࠒ
    w ςετ͕ࣗಈͰ࣮ߦ͞Εͳ͔ͬͨɻखಈɻɻ
    w ίʔσΟϯάελΠϧΨΠυʹԊ͍ͬͯΔ͔໨ࢹͰϨϏϡʔ
    w ະ࢖༻ͷม਺΍ψϧϙ΍ܕνΣοΫ͸໨ࢹ΍σόοά͠ͳ͕ΒϨϏϡʔ
    w STZODͱ͔TDQͱ͔͸࢖͍͕ͬͯͨ։ൃऀ͕खಈͰσϓϩΠ

    View Slide

  53. $*ಋೖޙ
    w Ϗϧυ΍ςετ΍σϓϩΠ͸ࣗಈԽ
    w Ϣχοτςετ΍&&Λ࢖ͬͨࣗಈςετ
    w ੩తղੳΛ࢖ͬͯίʔυϨϏϡʔ࣌ͷϨϏϡΞʔෛ୲Λܰݮ
    w ޻਺࡟ݮʹ΋ܨ͕ΓϏδωεαΠυʹ΋޷ҹ৅
    w ώϡʔϚϯΤϥʔ͕ݮͬͨ
    w ਓ͸ࣦഊ͢Δɾɾɾ

    View Slide

  54. $*ͷߏ੒
    w +FOLJOT͸%PDLFS্Ͱಈ͍͍ͯΔ
    w +FOLJOTެࣜͷ%PDLFSΠϝʔδΛ࢖͍ͬͯΔ
    w +FOLJOTʹ͸.BTUFSͱ4MBWF͕͋Δ
    w .BTUFS͸δϣϒͷ࣮ߦΛड෇͚ɺ4MBWFʹ࣮ߦґཔΛ͢Δ
    w 4MBWF͕Ϗϧυ΍ςετͳͲ࣮ࡍͷδϣϒΛ࣮ߦ
    w ΞϓϦέʔγϣϯ͝ͱʹٕज़͕ҧ͏ͨΊͦΕͧΕͷ4MBWF༻ίϯςφ͕͋Δ

    View Slide

  55. 3VO+PC
    3VO
    .BTUFS 4MBWF
    3VO+PC
    ɾUFTU

    ɾMJOU

    ɾCVJME
    'FFECBDL
    'FFECBDL
    'FFECBDL

    View Slide

  56. 3VO
    .BTUFS 4MBWF
    3VO+PC
    ɾUFTU

    ɾMJOU

    ɾCVJME
    'FFECBDL
    'FFECBDL
    'FFECBDL
    3VO+PC
    δϣϒΛΩοΫ͢Δਓ

    View Slide

  57. 3VO+PC
    4MBWF
    3VO+PC
    ɾUFTU

    ɾMJOU

    ɾCVJME
    'FFECBDL
    'FFECBDL
    'FFECBDL
    3VO
    .BTUFS
    δϣϒΛड͚෇͚Δਓ
    δϣϒΛ࣮ߦ͢Δਓ

    View Slide

  58. 3VO+PC
    3VO
    .BTUFS
    'FFECBDL
    'FFECBDL
    'FFECBDL
    3VO+PC
    ɾUFTU

    ɾMJOU

    ɾCVJME
    4MBWF
    δϣϒͷ࣮ߦʹ࢖ΘΕΔਓ

    View Slide

  59. 'FFECBDL
    'FFECBDL
    'FFECBDL
    3VO+PC
    ɾUFTU

    ɾMJOU

    ɾCVJME
    4MBWF
    3VO+PC
    3VO
    .BTUFS
    $*ʹ͸δϣϒΛΩοΫ͢Δਓɺ
    δϣϒΛड͚෇͚Δਓɺ
    δϣϒΛ࣮ߦ͢Δਓɺ
    δϣϒͷ࣮ߦʹ࢖ΘΕΔਓ͕͍Δ

    View Slide

  60. .BTUFS
    4MBWF 4MBWF 4MBWF
    ٕज़ʹ߹Θͤͯ4MBWFΛ࢖͍෼͚Δ

    View Slide

  61. 8FCMJPͷ։ൃϑϩʔ
    EFWFMPQ ։ൃ؀ڥ
    TUBHJOH εςʔδϯά
    NBTUFS ຊ൪؀ڥ
    CSBODI
    CSBODI

    View Slide

  62. ։ൃϑϩʔ
    TUBHJOH εςʔδϯά
    .BTUFS ຊ൪؀ڥ
    EFWFMPQ ։ൃ؀ڥ
    CSBODI
    CSBODI
    ։ൃऀ͸EFWFMPQϒϥϯν͔Β
    τϐοΫϒϥϯνΛ࡞ͬͯ࡞ۀ͢Δ

    View Slide

  63. ։ൃϑϩʔ
    .BTUFS ຊ൪؀ڥ
    CSBODI
    CSBODI
    EFWFMPQ ։ൃ؀ڥ
    TUBHJOH εςʔδϯά
    ։ൃ؀ڥͰಈ࡞֬ೝͨ͠΋ͷΛ
    TUBHJOHϒϥϯνʹϚʔδ
    εςʔδϯά؀ڥͰӦۀɾϚʔέɾ2"͕νΣοΫ

    View Slide

  64. ։ൃϑϩʔ
    CSBODI
    CSBODI
    EFWFMPQ ։ൃ؀ڥ
    TUBHJOH εςʔδϯά
    εςʔδϯάͷνΣοΫ͕׬ྃ͢Δͱ
    NBTUFSʹϚʔδͯ͠ຊ൪؀ڥʹ൓ө͢Δ
    .BTUFS ຊ൪؀ڥ

    View Slide

  65. ։ൃϑϩʔ
    EFWFMPQ ։ൃ؀ڥ
    TUBHJOH εςʔδϯά
    .BTUFS ຊ൪؀ڥ
    CSBODI
    CSBODI
    ͍ͭ࢖ΘΕ͍ͯΔͷʁ

    View Slide

  66. ։ൃϑϩʔ
    EFWFMPQ ։ൃ؀ڥ
    TUBHJOH εςʔδϯά
    .BTUFS ຊ൪؀ڥ
    CSBODI
    CSBODI
    ࢸΔͱ͜ΖͰ࢖ΘΕ͍ͯ·͢

    View Slide

  67. 1VMM3FRVFTU#VJMEFS
    Λ࢖ͬͨݕূ

    View Slide

  68. ։ൃϑϩʔ
    EFWFMPQ ։ൃ؀ڥ
    TUBHJOH εςʔδϯά
    .BTUFS ຊ൪؀ڥ
    CSBODI
    CSBODI
    13͕࡞ΒΕͨΓ1VTIͨ͠ͱ͖

    View Slide

  69. 13࡞੒1VTI
    13#VJMEFSΛ࢖ͬͨ
    IPPL 3VO
    ௨஌4VDDFTT'BJMVSF
    .BTUFS 4MBWF
    1VMM
    3VO+PC
    ɾUFTU

    ɾMJOU

    ɾCVJME
    'FFECBDL

    View Slide

  70. ͳͥ1VMM3FRVFTU͝ͱʹݕূΛ͢Δͷ͔
    w ϝΠϯϒϥϯνʹෆਖ਼ͳίʔυ͕ೖΒͳ͍ͨΊͷݕূ
    w 1VTI͞ΕΔ౓ʹϏϧυɾ੩తղੳɾࣗಈςετ͕௨Δ͔ݕূ
    w खಈ΍໨ࢹͰߦ͍ͬͯͨ࡞ۀΛࣗಈԽͯ͠ϨϏϡΞʔͷෛ୲ܰݮ

    View Slide

  71. Ϛʔδޙͷݕূ

    View Slide

  72. ։ൃϑϩʔ
    EFWFMPQ ։ൃ؀ڥ
    TUBHJOH εςʔδϯά
    .BTUFS ຊ൪؀ڥ
    CSBODI
    CSBODI

    View Slide

  73. .FSHF
    %FQMPZ
    3VO+PC
    ɾUFTU

    ɾMJOU

    ɾCVJME
    ௨஌4VDDFTT'BJMVSF
    4FSWJDF

    3FTUBSU
    4MBWF 4FSWFS
    .BTUFS
    )PPL
    3VO
    'FFECBDL
    ·ͩऴΘΒͳ͍ɻ࣍ͷϖʔδʹଓ͘
    1VMM

    View Slide

  74. υΩϡϝϯτੜ੒
    ɾ"1*EPDVNFOU
    ɾ+4%PD+BWB%PD
    ɾ$PWFSBHF3FQPSU
    ࣦഊ࣌ͷΈ௨஌
    1VTIHIQBHFT
    EFWFMPQʹϚʔδޙ΋͏Ұͭδϣϒ͕ಈ͘

    View Slide

  75. ͳͥϚʔδޙʹ࣮ߦ͢Δ͔
    w σάϨʔυ͕ൃੜ͍ͯ͠ͳ͍͔ͷݕূ
    w ֤؀ڥʹԠͨ͡Ϗϧυ΍ςετΛݕূ
    w ࠷৽ͷυΩϡϝϯτΛ͍ͭͰ΋ݟΕΔΑ͏ʹ͓ͯ͘͠

    ɾ(JU)VC1BHFTͰݟΕΔΑ͏ʹ͍ͯ͠Δ

    View Slide

  76. $*Ͱ޻෉ͨ͜͠ͱ
    w ࣦഊͨ͠ͱ͖ͷGBMMCBDL

    ɾΠϯλʔωοτͷෆௐͳͲ֎తཁҼͰࣦഊͨ͠ͱ͖ͷͨΊͷGBMMCBDLΛ༻

    ɹҙ͓ͯ͘͠

    ɾ1VMM3FRVFTUʹl3VO$*zͱίϝϯτ͢Δͱδϣϒ͕࠶࣮ߦ͞ΕΔ

    ɾ$*͕ͳͯ͘΋खಈͰ࣮ݱͰ͖ΔܗΛ࢒͓ͯ͘͠

    View Slide

  77. $*Ͱ޻෉ͨ͜͠ͱ
    w ඼࣭୲อ

    ɾ$*͕௨Βͳ͍ͱϚʔδͰ͖ͳ͍Α͏ʹ͓ͯ͘͠

    View Slide

  78. $*Ͱ޻෉ͨ͜͠ͱ
    w ௨஌

    ɾ1VMM3FRVFTU্Ͱ$*ͷ੒ޭࣦഊ͕Θ͔ΔΑ͏ʹ͓ͯ͘͠

    ɾ4MBDLʹ௨஌͢Δ͜ͱͰؾ͖ͮ΍͘͢͢Δ

    View Slide

  79. $*Ͱ޻෉ͨ͜͠ͱ
    w ӡ༻

    ɾ%PDLFSίϯςφΛىಈ͢Δ͚ͩͰݩ௨Γͷ+FOLJOT؀ڥΛ࠶ݱ

    ɾઃఆϑΝΠϧͳͲ͕ೖ͍ͬͯΔσΟϨΫτϦΛѹॖͯ͠όοΫΞοϓ

    View Slide

  80. ୈೋ෦·ͱΊ
    w ΍͸ΓػցͰͰ͖Δ͜ͱ͸ػցʹ೚ͤΔ
    w $*Ͱ֤ϑΣʔζ͝ͱʹ඼࣭Λ୲อ͢Δ
    w ࡞ۀΛػցʹͤ͞Δ͜ͱͰੜ࢈ੑΛ্͛Δ
    w $*पΓͷઃఆ͸Ұ౓΍ͬͯ͠·͏ͱޙָ͕

    View Slide

  81. ࠓ೔ͷ·ͱΊ
    w %PDLFS΋+FOLJOT΋खஈͷͻͱͭ

    ɾࣗ෼ͷϓϩδΣΫτʹ࠷దͳํ๏Λݟ͚ͭ·͠ΐ͏

    ɾखಈ͕࠷ળͰ͋Δ͜ͱ΋͋Δ
    w खॱԽͰ͖Δ΋ͷ͸ࣗಈԽͰ͖Δ
    w खॱ͕໌֬Խ͞Εଐਓੑͷഉআʹ΋ܨ͕Δ
    w ࣗಈԽ͸։ൃ଎౓΍඼࣭ͷ޲্ʹܨ͕Δ
    w ͨͩ͠ɾɾɾϞνϕʔγϣϯߴ͍ਓ͕ಋೖ΍ϝϯςΛ͢Δඞཁ͕͋Δ

    View Slide

  82. ʒʹୀ৬ͨ͠ଚܟ͢Δઌഐ͔Βύ
    Ϋͬͨड͚ܧ͍ͩ࿩Λʜ

    View Slide

  83. $*Λָ͠ΉͨΊͷ̑Օ৚

    View Slide

  84. 5IF+PZPG$*
    wࣗ෼͕௚઀ؔΘΔॴʹྗΛ͍ΕΔ
    w ଞͷϓϩδΣΫτͷ੹೚·ͰͱΒͳ͍
    wࣗ෼ָ͕ʹͳΔࣄΛߟ͑Δ
    w ָʹϓϩδΣΫτϦεΫͱઓ͏ʹ͸Ͳ͏ͨ͠Β͍͍͔
    wࣗ෼͕࢖͍͍ͨ෺Λಋೖ͢Δ
    w ͨͩ͠
    wࣗ෼͕ډͳͯ͘΋େৎ෉ͳঢ়ଶΛͭ͘Δɺͭ·ΓଐਓੑΛഉআ͢Δ
    w खಈͰ΍͍ͬͯΔखॱΛࣗಈԽ͢Δɺͭ·Γ$*͕ͳͯ͘΋࣮ݱͰ͖ΔܗΛ࢒͓ͯ͘͠
    wશ෦ࣗಈԽ͠Α͏ͱߟ͑ͳ͍
    w γϯϓϧͳํ๏Ͱɺੌָ͘ʹͳΔࣄʹूத͢Δ
    w ෳࡶͳํ๏ͰͪΐͬͱָʹͳΔҐͳΒखಈͰ΋Α͘ͳ͍ ͬͯߟ͑Λ࣋ͭ

    View Slide

  85. ָ͠Έͳ͕ΒࣗಈԽ΍͍͖ͬͯ·͠ΐ͏ʂ

    View Slide

  86. Thanks!

    View Slide