kubernetesで変わる開発スタイル 〜マイクロサービスじゃなくてもいいじゃない〜

kubernetesで変わる開発スタイル 〜マイクロサービスじゃなくてもいいじゃない〜

PHP Conference 2016の発表資料です
kubernetesをつかってゲーム開発の
開発スタイルを変えたお話です

Ec2fcdc4ea7905b289967a2c4c43e154?s=128

CyberAgent SGE Engineer

November 02, 2016
Tweet

Transcript

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

  2. • גࣜձࣾαΠόʔΤʔδΣϯτ • 4(&౷ׅຊ෦ٕज़౷ׅࣨ$50 • നҪɹӳ • ΤϯδχΞ • 5XJUUFS

    !HPPEPP • #MPH IUUQBNFCMPKQHPPEPP • %2 ͙ͪ͢Ή '# ϓΫϦϙ ཱྀܳਓ ͓લɺ୭Α
  3. "HFOEB wϚΠΫϩαʔϏεͷ࿩ wLVCFSOFUFTʹ͍ͭͯ w͖͋ΒΊͨ͜ͱ wऔΓ૊Μͩ͜ͱ w·ͱΊ

  4. ϚΠΫϩαʔϏεͷ࿩

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

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

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

  9. (PPHMF$POUBJOFS&OHJOF

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

    ɾܰྔɿىಈ͕͸΍͍ ɾޮ཰ੑɿίϯϐϡʔλϦιʔεΛޮ཰తʹར༻ ΞϓϦέʔγϣϯίʔυ ࣮ߦ؀ڥ ίϯςφΠϝʔδ
  11. http://bit.ly/2bNDdqc ίϯςφͷ؅ཧ ɾίϯςφؒͷ௨৴͸ʁ ɾϗετͷαʔό͕མͪͨΒʁ ɾίϯςφͷεέʔϧ͸ʁ ɾίϯςφͷো֐͸Ͳ͏͢Δʁ ɾΞϓϦέʔγϣϯͷσϓϩΠ͸ʁ ΦʔέετϨʔγϣϯπʔϧ

  12. LVCFSOFUFTʹ͍ͭͯ

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

  14. LVCFSOFUFTͷ༻ޠղઆ  ɾ/PEF ϫʔΧʔϚγϯ Ծ૝Ϛγϯ DMVTUFS഑ԼͰ؅ཧ͞ΕΔ ɾ/PEF1PPM /PEFͷάϧʔϓ /PEF1PPMຖʹҟͳΔϚγϯλΠϓΛར༻Մೳ ɾDMVTUFS

    /PEF /PEF1PPM ΛଋͶͨ؅ཧ୯Ґ DMPVE͸·ͨ͛ͳ͍ Node Node Pool cluster Node Pool Node Pool
  15. LVCFSOFUFTͷ༻ޠղઆ  ɾ1PE ίϯςφͷάϧʔϓ ࠷খ؅ཧ୯Ґ ɾ%FQMPZNFOU 1PE਺΍؀ڥม਺Λ؅ཧ ঢ়ଶΛఆٛ͢Δ ɾ4FSWJDF 1PEͷΤϯυϙΠϯτ

    1PEͷΞΫηεϙϦγʔΛ؅ཧ Pod Deployment Service
  16. LVCFSOFUFTͷ༻ޠղઆ  ɾ*OHSFTT ͍ΘΏΔϩʔυόϥϯαʔ -ͷϩʔυόϥϯαʔΛಁաతʹѻ͏ Πϯλʔωοτ͔Βͷ௨৴Λ ɹ4FSWJDF΁ྲྀ͢ϧʔϧΛهड़ ϗετ໊ɺ63-ύε౳Ͱ ɹৼΓ෼͚Δ͜ͱ͕Մೳ Ingress

    B.example.com A.example.com
  17. ؓ࿩ٳ୊ɿ&$4ͱͷ༻ޠൺֱ ECS kubernetes Task Pod Task Definition Deployment Service Service

    Instance Node cluster cluster
  18. LVCFSOFUFTͷಛ௃  ɾ1PEͷ଱ো֐ੑ Deployment - replicas: 2

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

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

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

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

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

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

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

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

    /PEF΋࠶࡞੒͞ΕΔ
  27. LVCFSOFUFTͷಛ௃  ɾ3PMMJOH6QEBUF Deployment - replicas: 2 - strategy -

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

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

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

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

    type: RollingUpdate Ұ౓ʹ࡞੒͞ΕΔ1PEͷ਺͸ Ͱௐ੔Մೳ ˞ࠓճ͸૝ఆ .spec.strategy.rollingUpdate.maxSurge
  32. 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
  33. ։ൃελΠϧ

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

  35. ͖͋ΒΊͨ͜ͱ

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

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

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

  39. ࢼͨ͜͠ͱ  ɾ*OHSFTTͰͷ੾ସ blue.example.com Ingress - rules - host:blue.example.com -

    http.paths.backend - serviceName: blue-service Service - name: blue-service
  40. ɾ*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
  41. ɾ*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Λߋ৽
  42. Ͳ͏ͳΔ͔ʁ  https://youtu.be/Mk-sKSp_oPU

  43. ݁Ռɿࣦഊ 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 ˞ઃఆ্͸͏·͍͖ͦ͘͏Ͱ͕͢ɺͲ͔ؒ͜ҧ͍ͬͯΔͷ͔΋
  44. ɾ*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
  45. ɾ*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Λߋ৽
  46. Ͳ͏ͳΔ͔ʁ  https://youtu.be/4NSf-F4VYsY

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

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

    - labels: - app:nginx-green Service - selector - app: nginx-blue Service - selector: - app: nginx-blue
  49. ɾ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
  50. Ͳ͏ͳΔ͔ʁ  https://youtu.be/3ry2auMejKE

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

  52. औΓ૊Μͩ͜ͱ

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

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

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

  56. ϩʔΧϧͷ։ൃ؀ڥ 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
  57. ίϯςφ͸ΦϦδφϧͰ͸ͭ͘Βͳ͍ ެࣜΠϝʔδ͔Βͭ͘Δ ίϯςφ࡞੒ͷઓུ 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ϕʔεͷίϯςφͷόʔδϣϯΞ οϓ͕༰қ
  58. *OHSFTTΛ࢖͍౗͢ ͦͷ

  59. ੩తΞυϨεͱυϝΠϯΛ݁ͼ͚ͭͨ͋ͱ ੩తΞυϨεͰ*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Ͱ੩తΞυϨεͷ໊લΛ ࢦఆ͢Δ
  60. ΞϓϦͷόʔδϣϯຖʹαʔόΛΘ͚Δ 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จ͕͍Βͳ͍
  61. ແఀࢭ ͦͷ

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

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

    ࢀߟURLɿhttp://qiita.com/superbrothers/items/d9766ebaff15d6954d03
  64. /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
  65. /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
  66. /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
  67. /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
  68. /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
  69. /PEF1PPMΛ࢖͏ blue.example.com Service - name: blue-service ແఀࢭͰͷόʔδϣϯΞοϓ όʔδϣϯΞοϓ׬ྃ Node Pool

    v1.4
  70. ϋʔυ΢ΣΞϦιʔεͷ ࠷దԽ ͦͷ

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

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

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

    container clusters resize cluster-name --size 4
  74. ৽͍͠ίϯςφΛσϓϩΠ NUM_NODES=4 goodoo.tech Service - name: app-v1 Service - name:

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

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

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

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

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

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

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

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

    app-v1
  83. 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
  84. Node Pool app-v1 Node Pool app-v1.1 σϓϩΠ͚࣌ͩ/PEFΛεέʔϧͤ͞Α͏  goodoo.tech Service

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

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

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

    ׬ྃʂ
  89. ؅ཧମܥ ͦͷ

  90. 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΋࢖͑Δ͕ࠓճ͸͔ͭΘͳ͍
  91. ΞϓϦͷόʔδϣϯຖʹΘ͚Δ Service - name: app-v2 Service - name: app-v1 NodePool

    goodoo.tech/v1 goodoo.tech/v2 Node Pool app-v2 Node Pool app-v1 ϒϧʔάϦʔϯσϓϩΠ࣌ ͷϚΠφʔόʔδϣϯ͕ ͕͋Δͱ͖΋ಉ༷
  92. ·ͱΊ

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

  94. 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
  95. 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
  96. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

  97. None