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

Envoy externals and ideas (builderscon 2018)

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for Yosuke Tomita Yosuke Tomita
September 06, 2018

Envoy externals and ideas (builderscon 2018)

builderscon 2018での発表資料になります。
資料からのリンクは以下にまとまっています。
https://qiita.com/seikoudoku2000/items/62aabc1dc28062d195ad

Avatar for Yosuke Tomita

Yosuke Tomita

September 06, 2018
Tweet

Other Decks in Technology

Transcript

  1. © ChatWork ࣗݾ঺հ ▸ ෌ాཅհ (@seikoudoku2000) ▸ “Dev”͔Β”Ops” ΁ (྆ํͷؾ͕࣋ͪ෼͔Δͭ΋Γ)

    ▸ Navitime (ϩάղੳνʔϜ / ࣾ಺ڞ௨APIͷ։ൃ) ▸ Gengo (όοΫΤϯυ։ൃ / AWS, chef, Postgresql) ▸ ChatWork (ΠϯϑϥϚωδϝϯτ෦ → SRE෦) ▸ ࠷ۙͷςʔϚɿ૊৫ͰγεςϜΛ”͍͍ײ͡”ʹ։ൃɾӡ༻͍ͨ͠
  2. © ChatWork ౓؊Λൈ͔Εͨ ▸ Microservices ͷ՝୊ʹιϑτ΢ΣΞΛॻ͍ͯਅͬ޲͔Βཱͪ޲͔͏ ▸ ୯ͳΔPoCͰ͸ͳ͘ɺ͕ͬͭΓಋೖ͢Δॴ·Ͱ΍Γ੾Δ ▸ >

    100 service / > 10,000 hosts / All service to service traffic ▸ ൃ૝͕ҧ͍͗͢Δ / ΋ͷੌ͍Ϩϕϧࠩ… ▸ e.g. ELB/ALB ࢖ΘͣɺόϥϯαʔΛࣗલͰ࣮૷ʂʁ ▸ ϨϕϧࠩΛײ͡ΕΔΑ͏ʹͳͬͨ…? / ϛυϧ΢ΣΞ։ൃ΁ͷڵຯ
  3. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ ▸ Envoyͱ͍͏”ΞΠσΞ” ▸

    ChatWorkͷະདྷ༧૝ਤ ▸ Microservices ͷπϥϛ ͦͷ̎ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  4. © ChatWork ࠓ೔࿩͞(ͤ)ͳ͍͜ͱ ▸ Envoy deep dive / ࡉ͔ͳ༻ޠఆٛ ▸

    Matt͞ΜͷൃදΛฉ͜͏ ▸ ChatWorkʹ͓͚Δಋೖࣄྫ ▸ It’s a loooong way… ▸ ຊ৔LyftͷൃදɺcookpadͷൃදΛฉ͜͏
  5. © ChatWork “͍͍ײ͡”ʁ ▸ ੹೚ͱݖݶ͕ద੾ʹ෼ׂ͞Ε͍ͯΔ / ద੾ͳڥքઢ͕͋Δ ▸ ࣗ෼ͷέπΛࣗ෼Ͱ࣋ͬͯνϟϨϯδͰ͖Δ /

    εϐʔυײ ▸ ਓͷέπΛ࣋ͭͷ΋ҧ͏ / ݖҖతʹͳΒͳ͍(ͳΓͨ͘ͳ͍) ▸ ໎ͬͨΒ݈શͳํ by mirakui͞Μ ▸ devops, 2 pizza rule, microservices
  6. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ ▸

    Envoyͱ͍͏”ΞΠσΞ” ▸ ChatWorkͷະདྷ༧૝ਤ ▸ Microservices ͷπϥϛ / ϜζΧγϛ ͦͷ̎ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  7. ▸ $MPVE5SFOETCZ"ESJBO$PDLDSPGU ▸ l*U`TTUJMMBQSPCMFNCVUBOFBTJFS QSPCMFNUPTPMWFz ▸ &BTJFSQSPCMFNʹͳΒͳ͍ͳΒߟ͑ͳͯ͘ ྑ͍ ʁ 

    ▸ αʔϏε͕ͲΜͲΜେ͖͘ͳ͍ͬͯ͘ͳΒɺ ͍ͣΕඞཁʹͳΔɺͱ͍͏લఏͰ࿩ΛਐΊ ͍͖ͯ·͢ © ChatWork Microservicesඞཁʁ
  8. © ChatWork Microservicesͷಛ௃ ▸ Fault Tolerant / Resilient ▸ Ͳ͔͜མͪͯ΋શ෦͸མͪͳ͍Αʂ

    ▸ Կ͔͋ͬͯ΋͍͍ײ͡ʹճ෮͍ͯ͘͠Αʂ ▸ Autonomy ▸ ֤αʔϏε͸খ͍͞ͷͰࣗ཯తʹͲΜͲΜಈ͚ΔΑʂ
  9. © ChatWork MicroservicesͬΆ͍΍ͭ ▸ Vulnerable (Distributed SPOF by Sam Newman)

    ▸ Ͳ͔͜མͪΔͱશ෦མͪΔʂ ▸ ऑ఺͋ͬͨΒΨϯΨϯ߈ΊࠐΜͰඃ֐֦େʂ ▸ Unhealthy dependency ▸ “ͳ͔ͥ”ܨ͕Βͳ͍ ▸ Կ͕ى͖ͯΔ͔Α͘෼͔Βͣʹٙ৺҉َʹɻɻ
  10. © ChatWork Unhealthy dependency ▸ શମΛ೺ѲͰ͖ͳ͍ / ϒϥοΫϘοΫεͷ෦෼͕͋Δ ▸ શମ͕ݟ౉ͤΔΑ͏ͳϩάج൫/μογϡϘʔυ͕͋Δͱ͍͍͕ɺɺ

    ▸ ͓ޓ͍ͷڥքͰकΔ΂͖ϧʔϧ͕ᐆດ ▸ શͯΛ਺஋ԽͰ͖ͳ͍ͱఆٛͰ͖ͳ͍ ▸ 1ݸͷΤϥʔͰ΋ௐ΂Δʁ 5ݸʁ10ݸʁ
  11. © ChatWork Microservices࣮૷/ӡ༻keyword ▸ timeout ▸ ઃఆͳ͠/௕͗ͩ͢ͱɺ͙͢ʹThread pool৯͍ͭͿ͢ͷͰઃఆ͢Δ ▸ (࠷ద஋͸৬ਓͷצ…ʁ)

    ▸ circuit breakers ▸ ͓͔͘͠ͳͬͨαʔϏε΁ͷΞΫηε͸Ұ୴ࢭΊΔ ▸ ෮چޙɺաෛՙঢ়ଶʹ͍ؕΔ͜ͱͰͷඃ֐ͷ֦େΛ๷͙
  12. © ChatWork Microservices࣮૷/ӡ༻keyword ▸ bulkheads ▸ Thread poolΛݺͼग़͠αʔϏε͝ͱʹ෼͚Δ ▸ ̍ͭͷαʔϏεݺͼग़͠ͰThread

    poolΛ࢖͍੾ΔͷΛ๷͙ ▸ monitoring / obserbavility ▸ Կ͕ى͖ͯΔ͔ͪΌΜͱ෼͔ΔΑ͏ʹ͢Δ
  13. © ChatWork Microservicesͷπϥϛ ▸ ֤ϊ΢ϋ΢ͷ1ͭ1ͭ͸೉͍֓͠೦Ͱ͸ͳ͍͕ɺશͯͷ࣮૷ݴޠ / ϥΠϒϥ ϦͰશͯͷ௨৴ʹڧ੍͠ɺߋ৽͠ଓ͚Δͷ͸૬౰ʹେม ▸ ো֐͕ى͖ͯॳΊͯؾͮ͘͜ͱ͕ଟ͍

    ▸ ڥքઢͷ໰୊ ▸ શମͱͯ͠ͷ҆ఆੑ (Ops) ͕ɺ֤αʔϏεͷ࣮૷(Dev)ʹڧ͘ґଘ ▸ Dev͕ػೳ։ൃͷεϐʔυΛ஗Ίͯ·Ͱίετ͔͚ͯରԠʁ ▸ OpsͰશαʔϏε΍ΕͬͯݴΘΕͯ΋ݫ͍͠
  14. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ (ࡁ)

    ▸ Envoyͱ͍͏”ΞΠσΞ” ▸ ChatWorkͷະདྷ༧૝ਤ ▸ Microservices ͷπϥϛ ͦͷ̎ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  15. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ ▸

    Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν ▸ ChatWorkͷະདྷ༧૝ਤ ▸ Microservices ͷπϥϛ ͦͷ̎ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  16. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ ▸

    Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν ▸ ChatWorkͷະདྷ༧૝ਤ ▸ Microservices ͷπϥϛ / ϜζΧγϛ ͦͷ̎ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  17. © ChatWork Envoy The network should be transparent to applications.

    When network and application problems do occur , it should be easy to determine the source of the problem.
  18. © ChatWork Envoyͷkeyword ▸ Service Mesh ▸ Sidecar ύλʔϯ ▸

    Control plane ͱ Data plane ▸ Service mesh data plane vs. control plane ▸ ݴ༿͕ࠞಉ͞Ε͍ͯΔهࣄ౳΋ଟ͍
  19. ▸ ڞ௨͢ΔपลλεΫΛಠཱͨ͠ίϯϙʔωϯτ ʹू໿͠ɺΞϓϦέʔγϣϯͱซઃͯ͠ಈ͔͢ ▸ Α͋͘ΔྫɿSFWFSTFQSPYZͱͯ͠ͷ/(*/9 ▸ ΞϓϦέʔγϣϯ 1)1 QZUIPOFUD Λ·

    ͍ͨͰ࢖͑ΔQSPYZػೳΛ/HJOYʹ࣋ͨͤΔ ▸ &OWPZ.JDSPTFSWJDFTӡ༻ʹඞཁͳػೳΛू ΊͨQSPYZ © ChatWork Sidecarύλʔϯ Ұॹʹಈ͘ΞϓϦέʔγϣϯͷ͜ͱ͸ ؾʹ͠ͳͯ͘ྑ͍
  20. © ChatWork Data Plane ▸ Sidecar proxy = data planeͦͷ΋ͷ

    ▸ Envoy, NGINX, HAProxyͳͲ (LinkerdͰ͸Controle Plane͕౷߹͞Εͨ) ▸ microservices ͰඞཁͳػೳΛఏڙ ▸ service discovery ▸ health checking ▸ routing (timeout, circuit breaking) ▸ distributed tracing
  21. © ChatWork Control Plane ▸ εςʔτϨεͳdata planeͷू·ΓΛ෼ࢄγεςϜ΁ͱมԽͤ͞Δଘࡏ ▸ ಈతͳઃఆ৘ใͷఏڙ (e.g.

    service discovery) ▸ Envoyͷ৔߹͸ɺxDS ͱݺ͹ΕΔAPI͕ఆٛ͞Ε͍ͯΔ (ޙड़) ▸ ਓ͕ؒͦͷ໾ׂΛ͢Δ৔߹΋͋Δ (ਓྗ Controle Plane) ▸ Istio, Nelson, Envoy Manager (Lyft಺੡), cookpad΍booking.com΋ࣗ࡞ ▸ (Linkerd͸Control planeΛ಺แ)
  22. © ChatWork Envoyͷઃఆ֓ཁ ▸ ੩తͳconfigurationͱɺAPIʹΑΔಈతͳconfiguration ▸ API͸xDS (LDS, RDS, CDS,

    EDS) ͱݺ͹Ε͍ͯΔ ▸ v1(deprecated) ͔Β v2΁ (ωοτ্ͷ৘ใ͕ࠞࡏɻɻ) ▸ Protcol BufferͰఆٛ͞Εͯͯ໌֬ͩ͠ɺAPIυΩϡϝϯτ΋ॆ࣮͍ͯ͠ Δ͕ɺશମͷ֓೦Λઆ໌ͨ͠υΩϡϝϯτݟ͚ͭΒΕͣɻɻ (͜ΕΛ·ͱΊΔ ͱਓؾऀʹͳΕΔ͔΋͠Εͳ͍)
  23. © ChatWork EnvoyͷػೳΛԿݸ͔ ▸ Timeout / Retry ▸ Circuit Breaking

    ▸ Fault Injection ▸ Observability / Distributed Tracing
  24. © ChatWork Timeout / Retry clusters: - name: service2 connect_timeout:

    1s "routes": [ { "cluster": "service2", "prefix": "/", "timeout_ms": 3000 "retry_policy" { "retry_on": 5xx, "num_retries": 3 "per_try_timeout_ms": 300, } },
  25. © ChatWork Circuit breaking clusters: - name: service2 connect_timeout: 1s

    circuit_breakers: thresholds: max_connections: 100 max_pending_requests: 100 ᮢ஋Ͱͷopen/closeͷΈɻhalf-openͳ ঢ়ଶ͸ଘࡏ͠ͳ͍
  26. © ChatWork Fault Injection clusters: - name: service2 connect_timeout: 1s

    http_filters: - name: envoy.fault config: delay: {fixed_delay: 20s, percent: 50} upstream_cluster: service2 abort: {percent: 20, http_status: 503} upstream_cluster: service2 ଱ো֐ςετɺো֐࠶ݱࢼݧ͕ ༰қʹߦ͑Δʂ
  27. © ChatWork Envoy͕΋ͨΒ͢΋ͷ ▸ sidecarͱ͍͏৽͍͠ڥքઢ ▸ ௨৴ΛѲΔ͜ͱͰɺmicroservicesʹඞཁͳ༷ʑͳػೳΛ౷Ұతʹఏڙ ▸ Timeout /

    retry / circuit breaking etc… ▸ Distributed Tracing ▸ Dev ͸serviceͷػೳ։ൃʹ஫ྗ ▸ ͨͩ͠ɺద੾ͳΤϥʔϋϯυϦϯά͸ඞਢʂ ▸ Ops͸sidecarΛ௨ͯ͠Microservicesͱͯ͠ͷ҆ఆੑʹ஫ྗ
  28. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ (ࡁ)

    ▸ Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν (ࡁ) ▸ ChatWorkͷະདྷ༧૝ਤ ▸ Microservices ͷπϥϛ / ϜζΧγϛ ͦͷ̎ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  29. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ ▸

    Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν ▸ ChatWorkͷະདྷ༧૝ਤ → ݱঢ়ͱಋೖ΁ͷΞϓϩʔν ▸ Microservices ͷπϥϛ / ϜζΧγϛ ͦͷ̎ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  30. © ChatWork ͬ͘͟Γ·ͱΊΔͱ ▸ ݱঢ় ▸ EC2্ͷPHPΞϓϦέʔγϣϯ + k8s্ͷscalaΞϓϦέʔγϣϯ ▸

    ਐߦத ▸ PHPΞϓϦέʔγϣϯͷk8sԽ / ΞϓϦͷ࣮ߦج൫Λk8sʹ౷Ұ ▸ ͦͷ࣍ ▸ service mesh(Envoy) ಋೖ
  31. © ChatWork ݱঢ় ▸ Kubernetes(scala)ͱɺEC2ʹ௚઀provisioning(PHP)ͷซ༻ ▸ ChatWorkͷ৽ϝοηʔδϯάγεςϜΛࢧ͑Δٕज़ ▸ 2016೥ͷ೥຤͔Βซ༻͕࢝·ͬͨ ▸

    Ҏޙͷ৽نΞϓϦ͸k8s্Ͱಈ͍͍ͯΔ ▸ ChatWorkʹ͓͚ΔKubernetes on AWS ▸ Kubernetesӡ༻վળ / ϊ΢ϋ΢஝ੵ
  32. © ChatWork ͦͷ࣍ ▸ Envoy / Istio (Service mesh) ಋೖ

    ▸ ͞ΒͳΔαʔϏεͷ҆ఆੑ ▸ ػೳ։ൃεϐʔυ޲্ ▸ ࠓޙͷαʔϏε૿ʹ଱͑͏Δج൫
  33. © ChatWork ઌʹEnvoy΍Μͳ͍ͷʁ ▸ ݱঢ়ͷΞϓϦέʔγϣϯΠϯϑϥͷ̎ॏ؅ཧ͕େม ▸ k8sʹ౷Ұͯ͠ӡ༻ίετ࡟ݮ / service meshಋೖίετ࡟ݮ

    ▸ ͳͥkubernetesʹدͤΔʁ ▸ kubernetes΋։ൃ/ӡ༻Λ”͍͍ײ͡” ʹͯ͘͠ΕΔπʔϧͰ͋Δ ▸ ৄࡉ͸࣍ͷΞδΣϯμʹͯ ▸ Istioͱ͍͏kubernetesͱͷ૬ੑͷ͍͍control plane͕ઈࢍਐԽத
  34. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ (ࡁ)

    ▸ Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν (ࡁ) ▸ ChatWorkͷະདྷ༧૝ਤ → ݱঢ়ͱಋೖ΁ͷΞϓϩʔν (ࡁ) ▸ Microservices ͷπϥϛ / ϜζΧγϛ ͦͷ̎ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  35. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ (ࡁ)

    ▸ Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν (ࡁ) ▸ ChatWorkͷະདྷ༧૝ਤ → ݱঢ়ͱಋೖ΁ͷΞϓϩʔν (ࡁ) ▸ Microservices ͷπϥϛ ͦͷ̎ → Kubernetes͕ඞཁͱͳΔഎܠ ▸ Kubernetesͱ͍͏”ΞΠσΞ” ▸ ·ͱΊ
  36. © ChatWork Infrastructure as code ▸ ཧ૝ → શͯίʔυԽ͞Ε͍ͯΔͷͰɺDev /

    OpsڞʹมߋՄೳ ▸ devops࣮ݱʂ ▸ ݱ࣮ → Infrastructure as codeͷ؅ཧ͕Opsʹूத ▸ Ansible / Chef ౳ͷprovisioning toolͷֶशίετ΍؀ڥߏஙίετ ▸ ϞχλϦϯά / ؂ࢹ / ϩάసૹ౳ɺશମͷӨڹൣғͷ೺Ѳ͕೉͍͠ (஫ɿ͋͘·Ͱࢲͷܦݧ/஌͍ͬͯΔൣғͷ࿩Ͱ͢ʣ
  37. © ChatWork Dev / Opsͷڥքઢʁ ▸ Dev : ৽͍͠ͷ࢖͍͍ͨɺɺ/ αοͱόʔδϣϯΞοϓ͍ͨ͠ɺɺ

    ▸ ΍Γ͍ͨ͜ͱʹରͯ͠ͷίετ͕͔ͳΓߴ͍ ▸ Ops: ݴޠɺϑϨʔϜϫʔΫ૿͑ΔΜ͔ʙɺɺ / ҆ఆͯ͠ಈ͘ͷʁ ▸ ਓͷέπΛ࣋ͨ͞ΕͯΔײ ▸ ୭Ͱ΋৮ΕΔΑ͏ʹ͢Δॴ·Ͱͷίετ΋தʑʹେ͖͍
  38. © ChatWork αʔόӡ༻ͬͯ͜ΕͰϕετʁ ▸ ΞϓϦέʔγϣϯͷ૬৐Γ͕೉͍͠ ▸ ̍instance = 1ΞϓϦέʔγϣϯ ▸

    ෳ਺ͷΞϓϦέʔγϣϯ༻ͷprovisioningΛ1 instanceʹྲྀͯ͠ɺશͯ ਖ਼ৗʹಈ͘͜ͱΛอূ͢Δͷ͕೉͍͠ ▸ αʔϏε૿͑Δͱ૊Έ߹Θͤ਺͕രൃ͠ɺ؅ཧͰ͖ͳ͍ ▸ ΍ͬͨͱ͢Δͱɺ·͢·͢Dev͔Β͸৮ΓͮΒ͍΋ͷʹɻɻ
  39. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ (ࡁ)

    ▸ Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν (ࡁ) ▸ ChatWorkͷະདྷ༧૝ਤ → ݱঢ়ͱಋೖ΁ͷΞϓϩʔν (ࡁ) ▸ Microservices ͷπϥϛ ͦͷ̎ → Kubernetes͕ඞཁͱͳΔഎܠ (ࡁ) ▸ Kubernetesͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔKubernetesͷར఺ ▸ ·ͱΊ
  40. © ChatWork ڥքઢ͕͍͍ײ͡ʂ ▸ ΞϓϦέʔγϣϯ༻ͷ؀ڥߏங͕׬શʹDevͷकඋൣғʹ ▸ Dockerfileͷֶशίετ͸͋Δ͕ɺؾʹ͢Δ͜ͱ͕͙ͬͱগͳ͘ͳͬͨ ▸ Ops͸clusterͷ؅ཧɺmonitoring /

    loggingసૹ౳ͷڞ௨ج൫ʹूத ▸ 12 factor app ͱ͍͏ΞϓϦέʔγϣϯͷڞ௨ϧʔϧ ▸ pod਺ͷҡ࣋΍ɺϦιʔεঢ়گʹԠͨ͡ίϯςφ഑ஔ͸kubernetes͕ ΍ͬͯ͘ΕΔ
  41. © ChatWork αʔόӡ༻͕͍͍ײ͡ʂ ▸ Pet ͔Β Cattle (PHPαʔόɺPythonαʔό…. → k8s

    Worker) ▸ Ϧιʔεͷ༗ޮ׆༻ ▸ ̍αʔό্Ͱͷෳ਺ΞϓϦέʔγϣϯͷ૬৐Γ
  42. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ (ࡁ)

    ▸ Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν (ࡁ) ▸ ChatWorkͷະདྷ༧૝ਤ → ݱঢ়ͱಋೖ΁ͷΞϓϩʔν (ࡁ) ▸ Microservices ͷπϥϛ ͦͷ̎ → Kubernetes͕ඞཁͱͳΔഎܠ (ࡁ) ▸ Kubernetesͱ͍͏”ΞΠσΞ” → πϥϛʹର͢Δkubernetesͷར఺(ࡁ) ▸ ·ͱΊ
  43. © ChatWork ΞδΣϯμ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ (ࡁ)

    ▸ Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν (ࡁ) ▸ ChatWorkͷະདྷ༧૝ਤ → ݱঢ়ͱಋೖ΁ͷΞϓϩʔν (ࡁ) ▸ Microservices ͷπϥϛ ͦͷ̎ → Kubernetes͕ඞཁͱͳΔഎܠ (ࡁ) ▸ Kubernetesͱ͍͏”ΞΠσΞ” → πϥϛʹର͢Δkubernetesͷར఺(ࡁ) ▸ ·ͱΊ
  44. © ChatWork ࠓ೔࿩ͨ͜͠ͱ ▸ Microservices ͷπϥϛ ͦͷ̍ → Envoy͕ඞཁͱͳΔഎܠ ▸

    Envoyͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔEnvoyͷΞϓϩʔν ▸ ChatWorkͷະདྷ༧૝ਤ → ݱঢ়ͱಋೖ΁ͷΞϓϩʔν ▸ Microservices ͷπϥϛ ͦͷ̎ → Kubernetes͕ඞཁͱͳΔഎܠ ▸ Kubernetesͱ͍͏”ΞΠσΞ” → πϥϛʹର͢ΔKubernetesͷར఺