Slide 1

Slide 1 text

/FUqJYͷNJDSPTFSWJDFTελοΫͰ 3VCZΞϓϦέʔγϣϯΛಈ͔ͯ͠ΈΔ

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

σϞ

Slide 4

Slide 4 text

docker-machine ls NAME ACTIVE DRIVER STATE URL default * virtualbox Running tcp://192.168.99.100:23 docker inspect -f '{{range $p, $conf := .NetworkSettings.Ports} {{(index $conf 0).HostPort}} {{end}}' zuul_messenger 8080/tcp -> 8000 curl http://192.168.99.100:8000 {"message":"Minnano Wedding is hiring."}

Slide 5

Slide 5 text

Έͳ͞Μɺ͜Μͳ͜ͱʹ͓ࠔΓͰ͔͢ʁ

Slide 6

Slide 6 text

w ରԠσόΠε͕ଟ͍ʢҎ্ʣ w τϥϑΟοΫ͕ଟ͍ʢશถͷʣ

Slide 7

Slide 7 text

ͨͿΜ͍ͳ͍ʜʜ

Slide 8

Slide 8 text

/FUqJYελοΫ͸NJDSPTFSWJDFT
 ΞʔΩςΫνϟͷ୅දྫ

Slide 9

Slide 9 text

EPO`UFWFODPOTJEFSNJDSPTFSWJDFT VOMFTTZPVIBWFBTZTUFNUIBUTUPP DPNQMFYUPNBOBHFBTBNPOPMJUI IUUQNBSUJOGPXMFSDPNCMJLJ.JDSPTFSWJDF1SFNJVNIUNM

Slide 10

Slide 10 text

IUUQNBSUJOGPXMFSDPNCMJLJ.JDSPTFSWJDF1SFNJVNIUNM

Slide 11

Slide 11 text

૊৫ʹΑͬͯʮෳࡶʯͷఆٛ͸ҟͳΔ

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

ڞ௨ϥϯλΠϜαʔϏεͱϥΠϒϥϦʔ ŠŠϚΠΫϩαʔϏεΛՃ଎͢ΔϥϯλΠϜίϯςφʔͱϥΠϒϥϦʔɺαʔϏεɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺ/FUqJYͷେ෦෼Λ઎ΊΔαʔϏε܈ͷجૅͰ͋ΓɺςΫϊϩδʔελοΫͰ͢ɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺΫϥ΢υαʔϏε΍ΞϓϦέʔγϣϯϥΠϒϥϦɺΞϓϦέʔγϣϯίϯς φ͔Βߏ੒͞Ε·͢ɻಛʹϓϥοτϑΥʔϜʹΑͬͯɺ&VSFLBʹΑΔαʔϏεσΟεΧόϦɺ"SDIBJVTʹΑΔ ෼ࢄઃఆ؅ཧɺ3JCCPOʹΑΔϨδϦΤϯεͰΠϯςϦδΣϯτͳϓϩηεʗαʔϏεؒ௨৴ͳͲ͕ɺఏڙ͞ Ε·͢ɻ୯ҰͷαʔϏεݺͼग़͠ʹͱͲ·Βͳ͍৴པੑΛఏڙ͢ΔͨΊʹɺ)ZTUSJYʹΑͬͯϥϯλΠϜͰಠ ཱͨ͠଱ϨΠςϯγͱ଱ো֐ੑ͕ఏڙ͞Ε·͢ɻ͜ΕΒͷϥΠϒϥϦʔ΍αʔϏε͸ɺ+7.ϕʔείϯςφͰ ͋Ε͹ͲͷΑ͏ͳ؀ڥͰ΋ಈ࡞͠·͢ɻ ·ͨɺϓϥοτϑΥʔϜ͸+7.ίϯςφαʔϏεΛɺ,BSZPOͱ(PWFSOBUPSɺඇ+BWBϥϯλΠϜ؀ڥ޲͚ʹ͸ 1SBOBαΠυΧʔʹΑΓɺఏڙ͠·͢ɻ1SBOB͕Πϯελϯε಺ͰϓϩΩγػೳΛఏڙ͢Δͷʹର͠ɺ;VVM ʢ)ZTUSJYͱ&VSFLBɺ3JCCPOͷϓϩηεؒ௨৴ػೳΛ౷߹͢Δ΋ͷʣ͸ɺΫϥ΢υ؀ڥͷڥքʹ͓͚Δಈతʹ εΫϦϓτʹΑ੍ͬͯޚՄೳͳϓϩΩγΛఏڙ͠·͢ɻ

Slide 14

Slide 14 text

ύϧεͷϑΝϧγͷϧγ͕ ύʔδͰίΫʔϯʘ ?P? ʗ

Slide 15

Slide 15 text

ڞ௨ϥϯλΠϜαʔϏεͱϥΠϒϥϦʔ ŠŠϚΠΫϩαʔϏεΛՃ଎͢ΔϥϯλΠϜίϯςφʔͱϥΠϒϥϦʔɺαʔϏεɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺ/FUqJYͷେ෦෼Λ઎ΊΔαʔϏε܈ͷجૅͰ͋ΓɺςΫϊϩδʔελοΫͰ͢ɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺΫϥ΢υαʔϏε΍ΞϓϦέʔγϣϯϥΠϒϥϦɺΞϓϦέʔγϣϯίϯς φ͔Βߏ੒͞Ε·͢ɻಛʹϓϥοτϑΥʔϜʹΑͬͯɺ&VSFLBʹΑΔαʔϏεσΟεΧόϦɺ"SDIBJVTʹΑΔ ෼ࢄઃఆ؅ཧɺ3JCCPOʹΑΔϨδϦΤϯεͰΠϯςϦδΣϯτͳϓϩηεʗαʔϏεؒ௨৴ͳͲ͕ɺఏڙ͞ Ε·͢ɻ୯ҰͷαʔϏεݺͼग़͠ʹͱͲ·Βͳ͍৴པੑΛఏڙ͢ΔͨΊʹɺ)ZTUSJYʹΑͬͯϥϯλΠϜͰಠ ཱͨ͠଱ϨΠςϯγͱ଱ো֐ੑ͕ఏڙ͞Ε·͢ɻ͜ΕΒͷϥΠϒϥϦʔ΍αʔϏε͸ɺ+7.ϕʔείϯςφͰ ͋Ε͹ͲͷΑ͏ͳ؀ڥͰ΋ಈ࡞͠·͢ɻ ·ͨɺϓϥοτϑΥʔϜ͸+7.ίϯςφαʔϏεΛɺ,BSZPOͱ(PWFSOBUPSɺඇ+BWBϥϯλΠϜ؀ڥ޲͚ʹ͸ 1SBOBαΠυΧʔʹΑΓɺఏڙ͠·͢ɻ1SBOB͕Πϯελϯε಺ͰϓϩΩγػೳΛఏڙ͢Δͷʹର͠ɺ;VVM ʢ)ZTUSJYͱ&VSFLBɺ3JCCPOͷϓϩηεؒ௨৴ػೳΛ౷߹͢Δ΋ͷʣ͸ɺΫϥ΢υ؀ڥͷڥքʹ͓͚Δಈతʹ εΫϦϓτʹΑ੍ͬͯޚՄೳͳϓϩΩγΛఏڙ͠·͢ɻ

Slide 16

Slide 16 text

w ରԠσόΠε͕ଟ͍ʢҎ্ʣ w τϥϑΟοΫ͕ଟ͍ʢશถͷʣ

Slide 17

Slide 17 text

ରԠσόΠε͕ଟ͍͔ΒɺσόΠε͝ͱͷࠩҟΛ ड͚ೖΕɺσόΠεຖʹ࠷దԽ͞ΕͨϨεϙϯε Λฦ٫͢Δඞཁ͕͋Δɻ

Slide 18

Slide 18 text

ΫϥΠΞϯτ 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3FTPVSDFCBTFE"1*

Slide 19

Slide 19 text

ΫϥΠΞϯτ 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε "1*(BUFXBZ &YQFSJFODFCBTFE"1* Ϋϥ΢υ؀ڥͷڥքʹ͓͚Δ ಈతʹεΫϦϓτʹΑ੍ͬͯ ޚՄೳͳϓϩΩγ

Slide 20

Slide 20 text

ରԠσόΠε͕ଟ͍͔ΒɺҰ෦ͷσόΠε͕ར༻ ͢Δ෦෼ͷͨΊ͚ͩʹɺΞϓϦέʔγϣϯશମ͕ Τϥʔʹͳͬͯ΄͘͠ͳ͍ɻ

Slide 21

Slide 21 text

ΫϥΠΞϯτ 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε "1*(BUFXBZ

Slide 22

Slide 22 text

ΫϥΠΞϯτ 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε 3&45GVM"1* Ϧιʔε "1*(BUFXBZ ଱ϨΠςϯγͱ଱ো֐ੑ

Slide 23

Slide 23 text

ରԠσόΠε͕ଟ͍͔ΒɺҰ෦ͷσόΠε͕ར༻ ͢Δ෦෼ͷͨΊ͚ͩʹɺΞϓϦέʔγϣϯશମΛ εέʔϧͤͨ͘͞ͳ͍ɻ

Slide 24

Slide 24 text

ϩʔυόϥϯα "1*(BUFXBZ αʔϏε ϊʔυ αʔϏε ϊʔυ αʔϏε ϊʔυ αʔϏεͷ਺͕૿Ճ͢ΔʹͭΕ ϩʔυόϥϯαͷ؅ཧ͕ࠔ೉ʹ ͳΔ

Slide 25

Slide 25 text

"1*(BUFXBZ αʔϏε ϊʔυ αʔϏε ϊʔυ αʔϏε ϊʔυ ΫϥΠΞϯταΠυϩʔυόϥϯγϯά ʹΑΔϨδϦΤϯεͰΠϯςϦδΣϯτ ͳϓϩηεʗαʔϏεؒ௨৴

Slide 26

Slide 26 text

αʔϏεσΟεΧόϦʹΑΔ
 ಈతͳϊʔυͷొ࿥ͱཁٻ "1*(BUFXBZ αʔϏε ϊʔυ αʔϏε ϨδετϦ ొ࿥ Ұཡ

Slide 27

Slide 27 text

αʔϏεϨδετϦ΁ͷొ࿥ͳͲΛ
 ఏڙ͢Δ+7.ίϯςφαʔϏε αʔϏε ϨδετϦ ొ࿥ ϔϧενΣοΫ ίϯςφαʔϏε ΞϓϦέʔγϣϯ

Slide 28

Slide 28 text

ϦΫΤετ ΫϥΠΞϯτ ΞϓϦέʔγϣϯ "1*(BUFXBZ αʔϏε ϨδετϦ Ϩεϙϯε ొ࿥ ϦΫΤετ Ұཡ Ϩεϙϯε ΞϓϦέʔγϣϯ ίϯςφαʔϏε ΞϓϦέʔγϣϯ ίϯςφαʔϏε ϩʔυόϥϯγϯάʴ ଱ϨΠςϯγɾ଱ো֐ϨΠϠʔ

Slide 29

Slide 29 text

;VVM 3JCCPO)ZTUSJY &VSFLB ,BSZPO 1SBOB ϦΫΤετ ΫϥΠΞϯτ ΞϓϦέʔγϣϯ "1*(BUFXBZ αʔϏε ϨδετϦ Ϩεϙϯε ొ࿥ ϦΫΤετ Ұཡ Ϩεϙϯε ΞϓϦέʔγϣϯ ίϯςφαʔϏε ΞϓϦέʔγϣϯ ίϯςφαʔϏε ϩʔυόϥϯγϯάʴ ଱ϨΠςϯγɾ଱ো֐ϨΠϠʔ

Slide 30

Slide 30 text

require 'sinatra' require 'sinatra/json' get '/' do json(message: 'Minnano Wedding is hiring.') end get '/status' do json(status: 'OK') end

Slide 31

Slide 31 text

w αʔϏεϨδετϦ΁ͷࣗ෼ࣗ਎ͷొ࿥ w αʔϏεϨδετϦ͔ΒͷϔϧενΣοΫ w ଞαʔϏεͷσΟεΧόϦͱΫϥΠΞϯταΠυ ϩʔυόϥϯγϯά w ઃఆ৘ใͷऔಘɺߋ৽ʢࠓճ͸ݴٴ͍ͯ͠ͳ͍ʣ

Slide 32

Slide 32 text

αΠυΧʔύλʔϯʹΑΓ ଞαʔϏεϊʔυʹରͯ͠ Πϯελϯε಺ͰϓϩΩγ ػೳΛఏڙ αʔϏε ϨδετϦ 1SBOB BQQSC αʔϏε ϊʔυ αʔϏε ϊʔυ ϦΫΤετ ϦΫΤετ ొ࿥ ϔϧενΣοΫ ϦΫΤετ ϔϧε νΣοΫ

Slide 33

Slide 33 text

cat Procfile app: rackup -E production --host 0.0.0.0 plana: prana/bin/Prana -c config.properties cat config.properties prana.host.healthcheck.url=http://localhost:9292/status prana.host.healthcheck.timeout=1500 prana.proxy.req.acceptencoding=gzip eureka.name=MESSENGER eureka.vipAddress=MESSENGER eureka.port=9292 eureka.serviceUrl.default=http://eureka:8080/eureka/v2/ eureka.validateInstanceId=false

Slide 34

Slide 34 text

docker run -d --name exhibitor netflixoss/exhibitor:1.5.2 docker run -d --name eureka -d netflixoss/eureka:1.1.142 docker run -d --name messenger --link eureka:eureka \
 takai/messenger bundle exec foreman start docker run -e "origin.zuul.client.DeploymentContextBasedVipAddr -d --name zuul_messenger \
 --link eureka:eureka netflixoss/zuul:1.0.28

Slide 35

Slide 35 text

ڞ௨ϥϯλΠϜαʔϏεͱϥΠϒϥϦʔ ŠŠϚΠΫϩαʔϏεΛՃ଎͢ΔϥϯλΠϜίϯςφʔͱϥΠϒϥϦʔɺαʔϏεɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺ/FUqJYͷେ෦෼Λ઎ΊΔαʔϏε܈ͷجૅͰ͋ΓɺςΫϊϩδʔελοΫͰ͢ɻ Ϋϥ΢υϓϥοτϑΥʔϜ͸ɺΫϥ΢υαʔϏε΍ΞϓϦέʔγϣϯϥΠϒϥϦɺΞϓϦέʔγϣϯίϯς φ͔Βߏ੒͞Ε·͢ɻಛʹϓϥοτϑΥʔϜʹΑͬͯɺ&VSFLBʹΑΔαʔϏεσΟεΧόϦɺ"SDIBJVTʹΑΔ ෼ࢄઃఆ؅ཧɺ3JCCPOʹΑΔϨδϦΤϯεͰΠϯςϦδΣϯτͳϓϩηεʗαʔϏεؒ௨৴ͳͲ͕ɺఏڙ͞ Ε·͢ɻ୯ҰͷαʔϏεݺͼग़͠ʹͱͲ·Βͳ͍৴པੑΛఏڙ͢ΔͨΊʹɺ)ZTUSJYʹΑͬͯϥϯλΠϜͰಠ ཱͨ͠଱ϨΠςϯγͱ଱ো֐ੑ͕ఏڙ͞Ε·͢ɻ͜ΕΒͷϥΠϒϥϦʔ΍αʔϏε͸ɺ+7.ϕʔείϯςφͰ ͋Ε͹ͲͷΑ͏ͳ؀ڥͰ΋ಈ࡞͠·͢ɻ ·ͨɺϓϥοτϑΥʔϜ͸+7.ίϯςφαʔϏεΛɺ,BSZPOͱ(PWFSOBUPSɺඇ+BWBϥϯλΠϜ؀ڥ޲͚ʹ͸ 1SBOBαΠυΧʔʹΑΓɺఏڙ͠·͢ɻ1SBOB͕Πϯελϯε಺ͰϓϩΩγػೳΛఏڙ͢Δͷʹର͠ɺ;VVM ʢ)ZTUSJYͱ&VSFLBɺ3JCCPOͷϓϩηεؒ௨৴ػೳΛ౷߹͢Δ΋ͷʣ͸ɺΫϥ΢υ؀ڥͷڥքʹ͓͚Δಈతʹ εΫϦϓτʹΑ੍ͬͯޚՄೳͳϓϩΩγΛఏڙ͠·͢ɻ