$30 off During Our Annual Pro Sale. View Details »

What is service mesh?

threetreeslight
September 22, 2018
13

What is service mesh?

What is service mesh? on shinjuku-mokumoku vol.15

threetreeslight

September 22, 2018
Tweet

Transcript

  1. What is service mesh?
    @threetreeslight
    on shinjuku mokumoku programming #15
    1 / 24

    View Slide

  2. Who
    VP of Engineering at
    Event Organizer
    おじさん
    Repro
    2 / 24

    View Slide

  3. ネットワーク上の異なるコンピュータ上にコンポー
    ネントが配置されているシステム
    e.g. cloud
    系のmanaged service
    を使ったsystem
    Distributed System?
    3 / 24

    View Slide

  4. 牧歌的な分散システム
    シンプルなサービスであればこんなイメージで⾏け
    るが、考えるべきことは多い
    4 / 24

    View Slide

  5. 1.
    ネットワークは落ちない
    2.
    遅延はゼロ
    3.
    無限の帯域
    4.
    セキュア
    5.
    変更されないトポロジ
    6.
    ⼀⼈の管理者
    7.
    転送コストはゼロ
    8.
    均⼀なネットワーク
    Fallacies of distributed
    computing
    5 / 24

    View Slide

  6. 誤った考えに
    は対策しなき
    ゃいかん
    6 / 24

    View Slide

  7. さらに求められること
    Rapid provisioning of compute resources
    Basic monitoring
    Rapid deployment
    Easy to provision storage
    Easy access to the edge
    Authentication/Authorisation
    Standardised RPC
    etc...
    7 / 24

    View Slide

  8. これはやばい
    8 / 24

    View Slide

  9. 対策としての
    1. service discovery
    2. circuit breakers
    9 / 24

    View Slide

  10. Service
    Discovery
    10 / 24

    View Slide

  11. What's Service
    Discovery
    特定の要求を満たすサービスのインスタンスやコン
    テナを⾃動的に⾒つけるプロセスのこと
    11 / 24

    View Slide

  12. Typically Service
    Discovery
    以下のhealth check
    によって実現される事が多い
    1. DNS
    2. load balancer
    12 / 24

    View Slide

  13. more complex
    requirement
    1. client
    の負荷分散
    2. staging, production
    などの異なる環境
    3.
    別リージョン、クラウドに散らばる
    となると典型的な⽅法では苦しい、、、
    13 / 24

    View Slide

  14. circuit
    brakers
    14 / 24

    View Slide

  15. concern of remote
    request
    Remote Request
    は、timeout
    になるまでhang
    する
    その状態で多数のrequest
    がくるとresource
    を⾷いつぶ
    して死ぬかもしれない
    ref Martin Fowler - CircuitBreaker
    15 / 24

    View Slide

  16. 何度も同じことをする
    すべてのサービスにおいて同じようなコードを同じ
    ように書きまくる必要がある
    16 / 24

    View Slide

  17. こんな感じ
    開発者はこれを意識しなければいけない
    17 / 24

    View Slide

  18. 上記を踏まえ
    た昨今
    18 / 24

    View Slide

  19. サービス規模・⼈員規模がそれなりになってくると
    出てくること
    マイクロサービスいっぱい
    AWS, GCP
    の楽しいマルチクラウド
    いわゆる distributed microservice architecture
    19 / 24

    View Slide

  20. 開発者もDevOps
    も死ぬ
    可搬性・スケーラビリティを考えたマイクロサービス設

    必要とされている知識は利⽤するクラウドとサービス数
    だけある
    監視のための各種サービスのlog, metrics
    の収集、そのフ
    ォーマットの共通化
    サービス間の認証・認可によるアクセス制御
    20 / 24

    View Slide

  21. 特に認証認可は、、、
    上記の問題を解決するために⾔語向けSDK
    を提供して
    いた。が
    サービスごとにリリースサイクルは異なる
    SDK
    提供する⾔語でしか効果がない
    結果、SDK
    が揃わない。開発者はこれを意識しなけれ
    ばいけない
    21 / 24

    View Slide

  22. しょうがないから、、、
    service
    と分離し、sidecar
    でいく
    22 / 24

    View Slide

  23. そこでIstio
    1.
    勝⼿にサイドカー⽴てる
    2.
    上記の問題を解決するための設定を外部から注⼊
    provides a uniform way to secure, connect, and
    monitor microservices.
    23 / 24

    View Slide

  24. ref
    SOTA - Service mesh
    とは何か
    Phil Calçado - Pattern: Service Mesh
    The mechanics of deploying Envoy at Lyft
    Orilly - seeking SRE
    Introducing Istio Service Mesh for Microservices
    Martin Fowler - CircuitBreaker
    24 / 24

    View Slide