Slide 1

Slide 1 text

LVCFSOFUFTͰมΘΔ։ൃελΠϧ גࣜձࣾαΠόʔΤʔδΣϯτɹനҪɹӳ ʙϚΠΫϩαʔϏε͡Όͳͯ͘΋͍͍͡Όͳ͍ʙ QIQDPOQIQDPO

Slide 2

Slide 2 text

• גࣜձࣾαΠόʔΤʔδΣϯτ • 4(&౷ׅຊ෦ٕज़౷ׅࣨ$50 • നҪɹӳ • ΤϯδχΞ • 5XJUUFS !HPPEPP • #MPH IUUQBNFCMPKQHPPEPP • %2 ͙ͪ͢Ή '# ϓΫϦϙ ཱྀܳਓ ͓લɺ୭Α

Slide 3

Slide 3 text

"HFOEB wϚΠΫϩαʔϏεͷ࿩ wLVCFSOFUFTʹ͍ͭͯ w͖͋ΒΊͨ͜ͱ wऔΓ૊Μͩ͜ͱ w·ͱΊ

Slide 4

Slide 4 text

ϚΠΫϩαʔϏεͷ࿩

Slide 5

Slide 5 text

ϚΠΫϩαʔϏεͷߟ͑ํ https://speakerdeck.com/naoya/serverless-architecture

Slide 6

Slide 6 text

ϚΠΫϩαʔϏεΛ࢖༻͍ͯ͠Δ ࢥ͍ͭ͘αʔϏε͸ɾɾɾɾ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Ҿ༻"CFNB57ͷಈը഑৴Λࢧ͑ΔαʔόʔαΠυγεςϜ http://bit.ly/2eQYBey "CFNB57ͷશମͷΞʔΩςΫνϟ

Slide 9

Slide 9 text

(PPHMF$POUBJOFS&OHJOF

Slide 10

Slide 10 text

ίϯςφͱ͸ʁ 04্ʹଞͷϓϩηε͔Β͸ִ཭͞Εͨ ΞϓϦέʔγϣϯ࣮ߦ؀ڥΛߏங͢Δ͜ͱͰɺ Ծ૝తͳಈ࡞؀ڥΛΑΓগͳ͍ ίϯϐϡʔλϦιʔεͰ࣮ݱ͢Δٕज़ͷ͜ͱͰ͋Δ ˞*5༻ޠࣙయΑΓҾ༻ɿίϯςφٕज़ͱ͸ʁ http://www.weblio.jp/content/ίϯςφٕज़ ɾΞϓϦέʔγϣϯίʔυͱͦͷ࣮ߦ؀ڥΛ̍ͭʹ·ͱΊΔ ɾϙʔλϒϧɿ؀ڥΛ·͍ͨͩσϓϩΠ͕༰қʹͳΔ ɹɹ։ൃ؀ڥˠεςʔδϯά؀ڥˠຊ൪؀ڥ ɾܰྔɿىಈ͕͸΍͍ ɾޮ཰ੑɿίϯϐϡʔλϦιʔεΛޮ཰తʹར༻ ΞϓϦέʔγϣϯίʔυ ࣮ߦ؀ڥ ίϯςφΠϝʔδ

Slide 11

Slide 11 text

http://bit.ly/2bNDdqc ίϯςφͷ؅ཧ ɾίϯςφؒͷ௨৴͸ʁ ɾϗετͷαʔό͕མͪͨΒʁ ɾίϯςφͷεέʔϧ͸ʁ ɾίϯςφͷো֐͸Ͳ͏͢Δʁ ɾΞϓϦέʔγϣϯͷσϓϩΠ͸ʁ ΦʔέετϨʔγϣϯπʔϧ

Slide 12

Slide 12 text

LVCFSOFUFTʹ͍ͭͯ

Slide 13

Slide 13 text

ɾίϯςφͷΦʔέετϨʔγϣϯπʔϧ ɾ(PͰ͔͔ΕͨΦʔϓϯιʔε ɾσϓϩΠͷࣗಈԽ ɾΞϓϦέʔγϣϯΛεέʔϦϯά ɾγʔϜϨεʹ৽͍͠ػೳΛల։ ɾϋʔυ΢ΣΞͷ࢖༻Λ࠷దԽ LVCFSOFUFTͱ͸ʁ

Slide 14

Slide 14 text

LVCFSOFUFTͷ༻ޠղઆ ɾ/PEF ϫʔΧʔϚγϯ Ծ૝Ϛγϯ DMVTUFS഑ԼͰ؅ཧ͞ΕΔ ɾ/PEF1PPM /PEFͷάϧʔϓ /PEF1PPMຖʹҟͳΔϚγϯλΠϓΛར༻Մೳ ɾDMVTUFS /PEF /PEF1PPM ΛଋͶͨ؅ཧ୯Ґ DMPVE͸·ͨ͛ͳ͍ Node Node Pool cluster Node Pool Node Pool

Slide 15

Slide 15 text

LVCFSOFUFTͷ༻ޠղઆ ɾ1PE ίϯςφͷάϧʔϓ ࠷খ؅ཧ୯Ґ ɾ%FQMPZNFOU 1PE਺΍؀ڥม਺Λ؅ཧ ঢ়ଶΛఆٛ͢Δ ɾ4FSWJDF 1PEͷΤϯυϙΠϯτ 1PEͷΞΫηεϙϦγʔΛ؅ཧ Pod Deployment Service

Slide 16

Slide 16 text

LVCFSOFUFTͷ༻ޠղઆ ɾ*OHSFTT ͍ΘΏΔϩʔυόϥϯαʔ -ͷϩʔυόϥϯαʔΛಁաతʹѻ͏ Πϯλʔωοτ͔Βͷ௨৴Λ ɹ4FSWJDF΁ྲྀ͢ϧʔϧΛهड़ ϗετ໊ɺ63-ύε౳Ͱ ɹৼΓ෼͚Δ͜ͱ͕Մೳ Ingress B.example.com A.example.com

Slide 17

Slide 17 text

ؓ࿩ٳ୊ɿ&$4ͱͷ༻ޠൺֱ ECS kubernetes Task Pod Task Definition Deployment Service Service Instance Node cluster cluster

Slide 18

Slide 18 text

LVCFSOFUFTͷಛ௃ ɾ1PEͷ଱ো֐ੑ Deployment - replicas: 2

Slide 19

Slide 19 text

LVCFSOFUFTͷಛ௃ ɾ1PEͷ଱ো֐ੑ Deployment - replicas: 2

Slide 20

Slide 20 text

LVCFSOFUFTͷಛ௃ ɾ1PEͷ଱ো֐ੑ Deployment - replicas: 2

Slide 21

Slide 21 text

LVCFSOFUFTͷಛ௃ ɾ1PEͷ଱ো֐ੑ Deployment - replicas: 2 ࣗಈͰSFQMJDBΛ̎ʹอͭΑ͏ʹ 1PE͕ੜ੒͞ΕΔ

Slide 22

Slide 22 text

LVCFSOFUFTͷಛ௃ ɾ/PEFͷ଱ো֐ੑ Deployment - replicas: 2 cluster - NUM_NODES:3

Slide 23

Slide 23 text

LVCFSOFUFTͷಛ௃ ɾ/PEFͷ଱ো֐ੑ Deployment - replicas: 2 cluster - NUM_NODES:3

Slide 24

Slide 24 text

LVCFSOFUFTͷಛ௃ ɾ/PEFͷ଱ো֐ੑ Deployment - replicas: 2 cluster - NUM_NODES:3 /PEF্ͷ1PE΋ӨڹΛड͚Δ

Slide 25

Slide 25 text

LVCFSOFUFTͷಛ௃ ɾ/PEFͷ଱ো֐ੑ Deployment - replicas: 2 cluster - NUM_NODES:3 ࣗಈͰSFQMJDBΛ̎ʹอͭΑ͏ʹ 1PE͕ผͷ/PEF্ʹੜ੒͞ΕΔ

Slide 26

Slide 26 text

LVCFSOFUFTͷಛ௃ ɾ/PEFͷ଱ো֐ੑ Deployment - replicas: 2 cluster - NUM_NODES:3 /PEF΋࠶࡞੒͞ΕΔ

Slide 27

Slide 27 text

LVCFSOFUFTͷಛ௃ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy - type: RollingUpdate ৽͍͠ίϯςφΛద༻͢Δ kubectl apply -f new-deployment.yaml

Slide 28

Slide 28 text

LVCFSOFUFTͷಛ௃ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy - type: RollingUpdate

Slide 29

Slide 29 text

LVCFSOFUFTͷಛ௃ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy - type: RollingUpdate

Slide 30

Slide 30 text

LVCFSOFUFTͷಛ௃ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy - type: RollingUpdate

Slide 31

Slide 31 text

LVCFSOFUFTͷಛ௃ ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy - type: RollingUpdate Ұ౓ʹ࡞੒͞ΕΔ1PEͷ਺͸ Ͱௐ੔Մೳ ˞ࠓճ͸૝ఆ .spec.strategy.rollingUpdate.maxSurge

Slide 32

Slide 32 text

LVCFSOFUFTͷಛ௃ ɾ*OHSFTTͰͷ෼ࢄ blue.example.com green.example.com Ingress - rules - host:blue.example.com - http.paths.backend - serviceName: blue-service - host:green.example.com - http.paths.backend - serviceName: green-service Service - name: blue-service Service - name: green-service

Slide 33

Slide 33 text

։ൃελΠϧ

Slide 34

Slide 34 text

ӡ༻ཁ݅ http://bit.ly/2by3DqT ɾຊ൪؀ڥͱ։ൃ؀ڥͷಉҰੑͷ୲อ ɾ%FQMPZ࣌ؒ͸ͳΔ΂͘୹͘ ɾΞϓϦͷߋ৽͸શαʔόಉ࣌ʹ ɹ ϒϧʔάϦʔϯσϓϩΠͰ΋Մ ɾແఀࢭӡ༻

Slide 35

Slide 35 text

͖͋ΒΊͨ͜ͱ

Slide 36

Slide 36 text

Ҿ༻"CFNB57ͷಈը഑৴Λࢧ͑ΔαʔόʔαΠυγεςϜ http://bit.ly/2eQYBey ϚΠΫϩαʔϏεԽ Λ͖͋ΒΊͨ

Slide 37

Slide 37 text

w͍͖ͳΓ͸೉қ౓͕ߴ͍ wήʔϜϩδοΫͩͱτϥϯβΫγ ϣϯΛ࢖༻ͯ͠ݫີʹॲཧ͍ͨ͠ ͕࣌͋Δ wϚΠΫϩαʔϏεԽ͠ͳͯ͘΋ಘ ΒΕΔϝϦοτ͕͋Δ

Slide 38

Slide 38 text

http://bit.ly/2bP11pg ΞϓϦͷߋ৽Λશαʔόಉ࣌ ʹ͢ΔͷΛ͖͋ΒΊͨ

Slide 39

Slide 39 text

ࢼͨ͜͠ͱ ɾ*OHSFTTͰͷ੾ସ blue.example.com Ingress - rules - host:blue.example.com - http.paths.backend - serviceName: blue-service Service - name: blue-service

Slide 40

Slide 40 text

ɾ*OHSFTTͰͷ੾ସ blue.example.com Service - name: blue-service Service - name: green-service ࢼͨ͜͠ͱ Ingress - rules - host:blue.example.com - http.paths.backend - serviceName: blue-service ৽͍͠ίϯςφΛద༻͢Δ kubectl apply -f green-service.yaml

Slide 41

Slide 41 text

ɾ*OHSFTTͰͷ੾ସ blue.example.com Service - name: blue-service Service - name: green-service ࢼͨ͜͠ͱ Ingress - rules - host:blue.example.com - http.paths.backend - serviceName: green-service *OHSFTTΛߋ৽

Slide 42

Slide 42 text

Ͳ͏ͳΔ͔ʁ https://youtu.be/Mk-sKSp_oPU

Slide 43

Slide 43 text

݁Ռɿࣦഊ w͕Ͱͯ͠·ͬͨ wMJWFOFTT1SPCFɺSFBEMJOFTT1SPCF͸ઃఆࡁΈ apiVersion: extensions/v1beta1 kind: Deployment metadata: name: nginx-green spec: replicas: 3 spec: containers: - name: nginx-green image: nginx ports: - containerPort: 80 livenessProbe: httpGet: path: /index.html port: 80 initialDelaySeconds: 30 timeoutSeconds: 1 readinessProbe: httpGet: path: /index.html port: 80 ˞ઃఆ্͸͏·͍͖ͦ͘͏Ͱ͕͢ɺͲ͔ؒ͜ҧ͍ͬͯΔͷ͔΋

Slide 44

Slide 44 text

ɾ*OHSFTTͰͷ੾ସ Service - name: blue-service Service - name: green-service ࢼͨ͜͠ͱ green.goodoo.tech blue.goodoo.tech Ingress - rules - host:blue.goodoo.tech - http.paths.backend - serviceName: blue-service - host:green.goodoo.tech - http.paths.backend - serviceName: green-service

Slide 45

Slide 45 text

ɾ*OHSFTTͰͷ੾ସ blue.goodoo.tech Service - name: blue-service Service - name: green-service ࢼͨ͜͠ͱ Ingress - rules - host:blue.goodoo.tech - http.paths.backend - serviceName: green-service - host:green.goodoo.tech - http.paths.backend - serviceName: green-service green.goodoo.tech *OHSFTTΛߋ৽

Slide 46

Slide 46 text

Ͳ͏ͳΔ͔ʁ https://youtu.be/4NSf-F4VYsY

Slide 47

Slide 47 text

݁Ռɿ-#͔ͩΒͶ w͸Ͱͳ͍Α͏ʹͰ͖ͨ wMJWFOFTT1SPCFɺSFBEMJOFTT1SPCF͸ઃఆࡁΈ wશϦΫΤετ͕ಉ࣌ʹ͸੾ΓସΘΒͳ͔ͬͨ ˞σϞͰ͸࠶ݱͰ͖·ͤΜͰͨ͠ http://bit.ly/2c4tVlS

Slide 48

Slide 48 text

ɾ4FSWJDFͰͷ੾ସ ࢼͨ͜͠ͱ blue.goodoo.tech Deployment - labels: - app:nginx-blue Deployment - labels: - app:nginx-green Service - selector - app: nginx-blue Service - selector: - app: nginx-blue

Slide 49

Slide 49 text

ɾ4FSWJDFͰͷ੾ସ ࢼͨ͜͠ͱ blue.goodoo.tech Deployment - labels: - app:nginx-blue Deployment - labels: - app:nginx-green 4FSWJDFΛߋ৽ Service - selector - app: nginx-green Service - selector: - app: nginx-blue

Slide 50

Slide 50 text

Ͳ͏ͳΔ͔ʁ https://youtu.be/3ry2auMejKE

Slide 51

Slide 51 text

݁Ռɿεϐʔυ͸ૣ͍ w͸Ͱͳ͍ w੾ΓସΘΔ଎౓͸Ұ൪͸΍͔ͬͨ wͨͩ͠ɺશϦΫΤετ͕ಉ࣌ʹ͸੾ΓସΘΒͳ͔ͬͨ ʢ੾ΓସΘͬͨޙ΋લͷόʔδϣϯ͕දࣔ͞ΕΔ͕࣌ؒ௕͍ʣ http://bit.ly/2bTwRU4

Slide 52

Slide 52 text

औΓ૊Μͩ͜ͱ

Slide 53

Slide 53 text

ຊ൪؀ڥͱ ։ൃ؀ڥͷಉҰੑͷ୲อ ͦͷ̍

Slide 54

Slide 54 text

ಉ͡ίϯςφΛ࢖͏͜ͱͰ ؀ڥͷಉҰੑͷ୲อ

Slide 55

Slide 55 text

ϩʔΧϧͷ։ൃ؀ڥ͸ LVCFSOFUFTNJOJLVCFͰ࣮ݱ yaml ެࣜαΠτͰ Φεεϝ͞Ε͍ͯΔ ϩʔΧϧ

Slide 56

Slide 56 text

ϩʔΧϧͷ։ൃ؀ڥ minikube ϩʔΧϧ1$ ϗετ Service Service - name: mysql-service - type: NodePort - ports - nodePort: 31101 192.168.99.100 192.168.99.100:31101 ϩʔΧϧ1$͔Β͸ /PEF1PSUͰࢦఆ͞ΕͨϙʔτͰ઀ଓՄೳ ˎ7JSUVBM#PY͔Βׂ౰ΒΕΔ mysql -h 192.168.99.100 --port 31101

Slide 57

Slide 57 text

ίϯςφ͸ΦϦδφϧͰ͸ͭ͘Βͳ͍ ެࣜΠϝʔδ͔Βͭ͘Δ ίϯςφ࡞੒ͷઓུ FROM nginx:1.10.1 RUN rm /etc/nginx/conf.d/default.conf ADD ./conf.d/ /etc/nginx/conf.d ADD ./ssl/ /etc/ssl Dockerfile wDPOGΛॻ͖׵͑Δఔ౓ wϕʔεͷίϯςφͷ࡞੒ʹίετ Λ͔͚ͳ͍ wϕʔεͷίϯςφͷόʔδϣϯΞ οϓ͕༰қ

Slide 58

Slide 58 text

*OHSFTTΛ࢖͍౗͢ ͦͷ

Slide 59

Slide 59 text

੩తΞυϨεͱυϝΠϯΛ݁ͼ͚ͭͨ͋ͱ ੩తΞυϨεͰ*OHSFTTΛϧʔςΟϯά͍ͨ͠ *OHSFTTͱυϝΠϯ ˞ී௨ͷ͜ͱͰ͕͢ɺ͸·ͬͨͷͰɾɾɾ λΠϓΛάϩʔόϧʹͯ͠ ੩తΞυϨεΛ༧໿͢Δ apiVersion: extensions/v1beta1 kind: Ingress metadata: name: static-ip annotations: kubernetes.io/ingress.global-static-ip-name: gke-phpcon-lb Ingress.yaml BOOPUBUJPOTͰ੩తΞυϨεͷ໊લΛ ࢦఆ͢Δ

Slide 60

Slide 60 text

ΞϓϦͷόʔδϣϯຖʹαʔόΛΘ͚Δ Service - name: app-v2 Service - name: app-v1 *OHSFTTͰϧʔςΟϯά goodoo.tech/v1 goodoo.tech/v2 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: routing spec: rules: - host: goodoo.tech http: paths: - path: /v1 backend: serviceName: app-v1 - path: /v2 backend: serviceName: app-v2 Ingress.yaml ϓϩάϥϜ಺ʹόʔδϣϯ෼͚ͷJGจ͕͍Βͳ͍

Slide 61

Slide 61 text

ແఀࢭ ͦͷ

Slide 62

Slide 62 text

LVCFSOFUFTࣗମසൟʹ όʔδϣϯ͕͕͋Δ ϲ݄ʹ̍ճϚΠφʔόʔδϣϯ͕͕͋Δʣ όʔδϣϯΞοϓ࣌ μ΢ϯλΠϜ͕ൃੜ͢ΔՄೳੑ͕͋Δʂ

Slide 63

Slide 63 text

/PEF1PPMΛ࢖͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3 ࢀߟURLɿhttp://qiita.com/superbrothers/items/d9766ebaff15d6954d03

Slide 64

Slide 64 text

/PEF1PPMΛ࢖͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3 ৽ن/PEF1PPMΛ࡞੒ gcloud container node-pools create --num-nodes=2 ˞৽ن/PEF1PPM͸࠷৽ͷόʔδϣϯͰ࡞੒͞ΕΔ Node Pool v1.4

Slide 65

Slide 65 text

/PEF1PPMΛ࢖͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3 ݹ͍όʔδϣϯͷ/PEF1PPMͰ ৽ن1PE͕࡞੒͞Εͳ͍Α͏ʹ͢Δ DPSEPO kubectl cordon node-pool-v1.3-node1 kubectl cordon node-pool-v1.3-node2 ˞/PEFຖʹࢦఆ͢Δ Node Pool v1.4

Slide 66

Slide 66 text

/PEF1PPMΛ࢖͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3 /PEF্ͷ1PEΛҠಈͤ͞Δ ESBJO kubectl drain node-pool-v1.3-node1 ˞/PEF୆ͣͭ Node Pool v1.4 drain

Slide 67

Slide 67 text

/PEF1PPMΛ࢖͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3 /PEF্ͷ1PEΛҠಈͤ͞Δ ESBJO kubectl drain node-pool-v1.3-node2 ˞/PEF୆ͣͭ Node Pool v1.4 drain drain

Slide 68

Slide 68 text

/PEF1PPMΛ࢖͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ Node Pool v1.3 ࠷ޙʹݹ͍όʔδϣϯͷ /PEF1PPMΛ࡟আ͢Δ gcloud container node-pools delete node-pool-v1.3 Node Pool v1.4

Slide 69

Slide 69 text

/PEF1PPMΛ࢖͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ όʔδϣϯΞοϓ׬ྃ Node Pool v1.4

Slide 70

Slide 70 text

ϋʔυ΢ΣΞϦιʔεͷ ࠷దԽ ͦͷ

Slide 71

Slide 71 text

͍͘ΒίϯςφΛ࢖͏ͱ͍ͬͯ΋ /PEFΛීஈ༨ΒͤΔͷ͸΋͍ͬͨͳ͍ goodoo.tech Service - name: app-v1 ࢖ͬͯͳͯ͘༨͍ͬͯΔ

Slide 72

Slide 72 text

1PEͰඞཁͳ͚ͩͷ/PEF਺Ͱӡ༻͢Δ 1PEʹඞཁͳ෼͚ͩͷ/PEF਺ʹ͢Δͱ ৽͍͠ίϯςφΛσϓϩΠ࣌ʹ /PEF਺͕ͨΒͳͯ͘ࠔΔ goodoo.tech Service - name: app-v1

Slide 73

Slide 73 text

σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ NUM_NODES=4 NUM_NODES=4 goodoo.tech Service - name: app-v1 gcloud container clusters resize cluster-name --size 4

Slide 74

Slide 74 text

৽͍͠ίϯςφΛσϓϩΠ NUM_NODES=4 goodoo.tech Service - name: app-v1 Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏

Slide 75

Slide 75 text

*OHSFTTͰ੾ସ ϒϧʔάϦʔϯ NUM_NODES=4 goodoo.tech Service - name: app-v1 Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏

Slide 76

Slide 76 text

ݹ͍όʔδϣϯͷίϯςφΛ࡟আ NUM_NODES=4 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏

Slide 77

Slide 77 text

NUM_NODES=2 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ ࠷ޙʹ/PEF਺Λ΋Ͳ͢ gcloud container clusters resize cluster-name --size 2

Slide 78

Slide 78 text

NUM_NODES=2 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ ͋ʂ 502

Slide 79

Slide 79 text

NUM_NODES=2 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ 1PEͷ࠶࡞੒͕͸͠Δ

Slide 80

Slide 80 text

NUM_NODES=2 goodoo.tech Service - name: app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ SFTJ[Fʹফ͢/PEF͕ࢦఆͰ͖ͳ͍

Slide 81

Slide 81 text

Ͳ͏͢Ε͹͍͍ͷʁ http://bit.ly/2bNDdqc

Slide 82

Slide 82 text

/PEF1PPMΛ࢖͏ Node Pool app-v1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service - name: app-v1

Slide 83

Slide 83 text

Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ ৽͍͠ίϯςφ༻ͷ /PEF1PPMΛ࡞੒͢Δ goodoo.tech Service - name: app-v1 gcloud container node-pools create --num-nodes=2 --node-labels=app-v1.1

Slide 84

Slide 84 text

Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service - name: app-v1 ৽͍͠ίϯςφΛσϓϩΠ Service - name: app-v1.1

Slide 85

Slide 85 text

Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service - name: app-v1 Service - name: app-v1.1 *OHSFTTͰ੾ସ ϒϧʔάϦʔϯ

Slide 86

Slide 86 text

Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service - name: app-v1.1 ݹ͍όʔδϣϯͷίϯςφΛ࡟আ

Slide 87

Slide 87 text

Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service - name: app-v1.1 /PEF1PPMΛ࡟আ gcloud container node-pools delete node-pool-app-v1

Slide 88

Slide 88 text

Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏ goodoo.tech Service - name: app-v1.1 ׬ྃʂ

Slide 89

Slide 89 text

؅ཧମܥ ͦͷ

Slide 90

Slide 90 text

cluster production.goodoo.tech Service - name: staging DMVTUFS͸؀ڥຖʹΘ͚Δ EFW TUBHJOH QSPEVDUJPO Service - name: production production staging staging.goodoo.tech dev.goodoo.tech dev Service - name: dev ˞/BNFTQBDF΋࢖͑Δ͕ࠓճ͸͔ͭΘͳ͍

Slide 91

Slide 91 text

ΞϓϦͷόʔδϣϯຖʹΘ͚Δ Service - name: app-v2 Service - name: app-v1 NodePool goodoo.tech/v1 goodoo.tech/v2 Node Pool app-v2 Node Pool app-v1 ϒϧʔάϦʔϯσϓϩΠ࣌ ͷϚΠφʔόʔδϣϯ͕ ͕͋Δͱ͖΋ಉ༷

Slide 92

Slide 92 text

·ͱΊ

Slide 93

Slide 93 text

wϚΠΫϩαʔϏεԽ͸͖͋ΒΊͨ wͦΕͰ΋LVCFSOFUFTͷϝϦοτ ΛڗडͰ͖Δ ຊ൪؀ڥͱ։ൃ؀ڥͷಉҰੑͷ୲อ ແఀࢭӡ༻ ϋʔυ΢ΣΞͷ࠷దԽ wLVCFSOFUFT͍͍Α

Slide 94

Slide 94 text

w 4FSWFSMFTT"SDIJUFDUVSF - https://speakerdeck.com/naoya/serverless-architecture w "CFNB57ͷಈը഑৴Λࢧ͑ΔαʔόʔαΠυγεςϜ - http://www.slideshare.net/yuichironakazawa2/abematv w XFCσβΠφʔϓϩάϥϚͷͨΊͷ%PDLFS௒ೖ໳ - https://docs.com/asashiho/4719/web-docker w (,&!"CFNB57 - https://speakerdeck.com/strsk8/gke-at-abematv w Google Container Engine Ͱ৽͍͠ϊʔυʹμ΢ϯλΠϜθϩͰҠߦ͢Δ - http://qiita.com/superbrothers/items/d9766ebaff15d6954d03 ࢀߟจݙ XFC

Slide 95

Slide 95 text

w (,&Ͱ൒೥ӡ༻ͯ͠Έͨ - http://www.slideshare.net/katsutoshinagaoka/gke-57322091 w ,VCFSOFUFT5IF-BUFTUBOE(SFBUFTU - https://speakerdeck.com/ianlewis/kubernetes-the-latest-and-greatest w ,VCFSOFUFT6QEBUF!($16('VLVPLB - https://speakerdeck.com/ianlewis/kubernetes-1-dot-4-update-at- gcpug-fukuoka-number-4 ࢀߟจݙ XFC

Slide 96

Slide 96 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

Slide 97

Slide 97 text

No content