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

分散アプリケーションの信頼性観測技術に関する研究 / A study of SRE

分散アプリケーションの信頼性観測技術に関する研究 / A study of SRE

SRE NEXT 2020 IN TOKYO https://sre-next.dev/

Yuuki Tsubouchi (yuuk1)

January 25, 2020
Tweet

More Decks by Yuuki Tsubouchi (yuuk1)

Other Decks in Research

Transcript

  1. 分散アプリケーションの信頼性観測技術
    に関する研究
    Yuuki Tsubouchi / @yuuk1t
    SRE NEXT IN TOKYO 2020
    基調講演
    2020.01.25

    View Slide

  2. 2
    ⾃⼰紹介
    Yuuki Tsubouchi / ゆううき
    https://yuuk.io/
    ܦྺ
    株式会社はてな
    Webオペレーションエンジニア・SRE
    さくらインターネット株式会社
    さくらインターネット研究所 研究員
    Webサービスの
    開発・運⽤
    インターネット
    基盤技術研究
    5年
    現在
    Site Reliability Engineering(SRE) Researcher
    @yuuk1t
    情報処理学会 インターネットと運⽤技術研究会 運営委員
    セキュリティ・キャンプ全国⼤会講師
    id:y_uuki

    View Slide

  3. 3
    講演の⽬的
    ・SREをテーマとした研究開発を通じて,SREの「NEXT」をみなさ
    んと⼀緒に考える
    1. SREの「基調」としてのSREが何であるかの解釈を整理
    2. 「NEXT」の⼀つとして,講演者が取り組んできたSREの各研究を1
    つのストーリーに統合
    ・所属するさくらインターネット研究所のビジョンを⽬指す形

    View Slide

  4. 4
    1. 研究の背景
    2. 研究の⽬的
    3. 互換性と性能を両⽴する時系列データベースの研究
    4. 分散アプリケーションの依存関係追跡技術の研究
    5. 地理分散協調クエリキャッシングの研究
    6. むすび
    ⽬次

    View Slide

  5. 1. 研究の背景

    View Slide

  6. SRE
    (Site Reliability Engineering)

    View Slide

  7. 7
    Ironies of Automation (1983)
    ⾃動化の⽪⾁
    1. ⾃動化により⼈間の作業負担(Toil)を低減できる
    2. しかし,⾃動化すればするほど⼈間の認知負荷が⾼まる
    3. 認知負荷に耐えられるように⾼度な訓練が必要となる
    • L. Bainbridge, "Ironies of automation,” Analysis, design and evaluation of man–machine systems, pp.129-135 1983.
    • G. Baxter, et al. "The ironies of automation: still going strong at 30?,” the 30th European Conference on Cognitive Ergonomics 2012.
    • B. Strauch, "Ironies of automation: Still unresolved after all these years," IEEE Transactions on Human-Machine Systems, vol. 48, no. 5,
    pp. 419-433 2017.
    • J. Paul Reed, “When /bin/sh Attacks: Revisiting "Automate All the Things”,” USENIX LISA19 2019.
    • Tanner Lund, “Ironies of Automation: A Comedy in Three Parts,”, USENIX SREcon19 Asia/Pacific 2019.
    ⼈間と計算機をあわせた制御系の設計が必要となる

    View Slide

  8. 8
    ⾃動化の⽪⾁に対するアプローチ
    ・認知範囲外のものを扱うとかえって信頼性が低下する可能性がある
    ・システムへ変更を加えることを恐れるようになる
    ・失敗を許容する前提で運⽤を設計をする
    ・信頼性を向上させるだけでなく,短期的には低下させる選択肢を持つ
    ・しかし,低下させるといっても程度が不明であれば,最低限要求され
    る信頼性を下回る可能性がある

    View Slide

  9. 9
    SREͱ͸ͳʹ͔
    ・信頼性低下のリスクを制御化に置くことで変更速度を最⼤化する
    ・信頼性という守りを制御することで,安⼼して変更速度という攻め
    に転ずることができる
    SREとは「サイト信頼性を制御するための⼯学」

    View Slide

  10. 10
    いかに失敗のリスクを⼩さくできるか?
    リスクの事前予測
    ・キャパシティプランニング
    ・サブシステム間の依存関係
    の把握 (後述の研究2)
    ・…
    リスクの事後最⼩化
    ・⾃動回復(フェイルオーバー)
    ・アラーティング
    ・因果関係の特定(分散トレー
    シングなど)
    ・インシデント対応体制の構築
    ・⾼速なデプロイメント
    ・…
    リスクを⼩さくできると
    恐怖が⼩さくなり変更速度が⾼まり
    結果的に信頼性も⾼くなる

    View Slide

  11. クラウド以外の領域への適⽤
    地理分散コンピューティング

    View Slide

  12. 12
    応答性能に占めるネットワーク転送遅延の問題
    S Choy, B Wong, G Simon and C Rosenberg, “The Brewing Storm in Cloud Gaming: A Measurement Study on Cloud to End-
    User Latency,” 11th Annual Workshop on Network and Systems Support for Games, Annual Workshop on Network and
    Systems Support for Games (NetGames), pp. 1-6 2012.
    (1)利⽤者の端末
    上での処理
    (2) ネットワーク遅延 (3) データセンター内の処理
    Cloud
    ・クラウドゲーミング環境で,(2)が⽀配的であるという研究がある
    ・100msのうち80msを占める

    View Slide

  13. 13
    さくらインターネット研究所のビジョン

    View Slide

  14. 14
    地理的に分散したコンピューティング
    ・複数リージョン構成
    ・災害回復や海外の利⽤者とのネットワーク遅延を短縮
    ・エッジコンピューティング,フォグコンピューティング
    ・利⽤者とクラウドのネットワークの間でコンピューティングを実
    ⾏し,ネットワーク遅延を短縮
    ・超個体型データセンター(さくらインターネット研究所提唱) ※
    ・⼩・中規模データセンターを全国の都市単位で配置
    ※࿯๺ݡ, ௒ݸମܕσʔληϯλʔΛ໨ࢦ͢౰ݚڀॴͷϏδϣϯ, 2019 https://research.sakura.ad.jp/2019/02/22/concept-vision-
    2019/.

    View Slide

  15. 15
    地理分散コンピューティングの問題意識
    システム構成要素の増加 システム内ネットワーク遅延
    の増加
    ・メトリック数の増加
    ・サブシステム間の依存関係
    の複雑化
    ・データセンター間のネット
    ワーク遅延はクラウド内の遅
    延よりも⼤きい
    ・各データセンター間でデー
    タを同期書き込みするときに
    性能が低下する
    可観測性(Observability)
    の重要性が増す

    View Slide

  16. 研究の背景まとめ

    View Slide

  17. 17
    研究の背景まとめ
    1. SREは信頼性を制御することを前提においた⼀つのアプローチであ
    ると解釈
    2. 地理分散環境の台頭と,構成要素数の増加とネットワーク遅延増⼤
    の課題を提⽰

    View Slide

  18. 2. 研究の⽬的

    View Slide

  19. 19
    構成要素数とネットワーク遅延がうむ問題
    ・システムの内部状態を把握しづらくなる
    ・リスクの事前予測と事後最⼩化が難しくなる
    ・時間軸⽅向と空間軸⽅向の両⽅の可観測性を⾼めて解決
    ・ネットワーク遅延が⼤きいと同期待ち時間が⼤きくなる
    ・データベース(DBMS)の性能と⼀貫性を両⽴させづらい

    View Slide

  20. 20
    先⾏研究と課題: 可観測性
    時間軸⽅向の可観測性 空間軸⽅向の可観測性
    ・性能を重視して実装を時系
    列データに最適化している
    ・既存のDBMSを利⽤した互
    換性や拡張性が失われる
    ・サブシステム間の依存関係
    を追跡すること
    ・既存のアプリケーション
    コードの変更をともなう,
    あるいはアプリケーション
    に与 える性能影響が⼤きい

    View Slide

  21. 21
    先⾏研究と課題: データ⼀貫性
    ・強⼀貫性の場合,同期待ち時間
    が⼤きくなる
    既存のアプリケーションや既存のDBMSのコード変更が必要
    アプリケーションの性能影響が⼤きい
    ・結果整合性モデルの場合,⼀貫
    性に対するアプリケーション開
    発者の責任範囲が⼤きくなる
    NoSQL
    遅延の⼤きな環境での性能とデータ⼀貫性の両⽴
    NewSQL

    View Slide

  22. 22
    研究の⽬的
    ・⼤⽬的: 地理的に分散したアプリケーションの信頼性向上
    ・制約: 既存のアプリケーションやミドルウェアのコードを変更せず,
    性能影響をあたえない
    ・3つの⽬的
    1. 時間軸の可観測性: 時系列データベースの性能と互換性の両⽴
    2. 空間軸の可観測性: 依存関係を低負荷かつ網羅的に追跡
    3. データの⼀貫性を保証しつつ,応答性能を最⼤化できるように制御

    View Slide

  23. 3. 互換性と性能を両⽴する
    時系列データベースの研究
    Yuuki Tsubouchi, Asato Wakisaka, Ken Hamada, Masayuki Matsuki, Hiroshi Abe, Ryosuke Matsumoto, “HeteroTSDB:
    An Extensible Time Series Database for Automatically Tiering on Heterogeneous Key-Value Stores”, Proceedings of
    The 43rd Annual IEEE International Computers, Software & Applications Conference (COMPSAC), pp. 264-269, July
    2019.

    View Slide

  24. 24
    研究の⽬的(再掲)
    ・⼤⽬的: 地理的に分散したアプリケーションの信頼性向上
    ・制約: 既存のアプリケーションやミドルウェアのコードを変更せず,
    性能影響をあたえない
    ・3つの⽬的
    1. 時間軸の可観測性: 時系列データベースの性能と拡張性の両⽴
    2. 空間軸の可観測性: 依存関係を低負荷かつ網羅的に追跡
    3. データの⼀貫性を保証しつつ,応答性能を最⼤化できるように制御

    View Slide

  25. 25
    ɾετϨʔδΤϯδϯΛ࣌ܥྻσʔλʹ࠷దԽ͢Δ͜ͱʹΑΓɼॻ͖ࠐ
    ΈɾಡΈࠐΈޮ཰ͱσʔλอଘޮ཰ΛߴΊ͍ͯΔ
    ɾPrometheus, InfluxDB, M3, Graphite, …
    ɾγεςϜ؅ཧऀ͸ͦΕҎ֎ͷ༻్͕গͳ͍࣌ܥྻσʔλϕʔε(TSDB)
    ͷͨΊͷӡ༻ίετΛࢧ෷Θͳ͚Ε͹ͳΒͳ͍
    ɾ࢖͍׳ΕͨDBMS΍ɼϚωʔδυͷDBMSΛ࢖͑ͳ͍
    ઌߦख๏ͱͦͷ՝୊

    View Slide

  26. 26
    HeteroTSDBΞʔΩςΫνϟ(1)
    1. ҟछࠞ߹DBMSʹΑΔૄ݁߹ΞʔΩςΫνϟ
    (1)୯ҰͷTSDBΞʔΩςΫνϟΛϩάɼΠϯσοΫεɼ࣌ܥྻσʔλ
    ߏ଄ͷΑ͏ͳෳ਺ͷ෦඼ʹ෼ׂ͢Δ
    (2)֤छσʔλߏ଄ʹରͯ͠ಠཱͨ͠DBMSΛ௥Ճ͢Δ
    (3)͜ΕΒͷ෦඼ΛҰͭͷૄ݁߹ΞʔΩςΫνϟͱͯ͠౷߹͢Δ
    DBMS
    Single
    TSDB
    DBMS
    Index
    DBMS
    Log
    HeteroTSDB
    Time series data

    View Slide

  27. 27
    HeteroTSDBΞʔΩςΫνϟ(2)
    2. ࣌ܥྻσʔλߏ଄Λ୲౰͢ΔDBMSΛަ׵Մೳʹ͢Δ
    ↪ ΩʔόϦϡʔʹجͮ࣌͘ܥྻσʔλߏ଄ʹΑΔޓ׵ੑ
    ΩʔόϦϡʔ͸ଟ͘ͷDBMSͰ࣮ݱՄೳͳσʔλߏ଄
    3. ॻ͖ࠐΈॲཧͱσʔλอଘޮ཰ͷ޲্
    ↪ ΠϯϝϞϦKVSͱΦϯσΟεΫKVSͷࣗಈ֊૚Խ
    In-Memory
    KVS
    On—Disk
    KVS
    Tiering
    Single
    TSDB
    DBMS
    Index
    DBMS
    Log
    Our TSDB architecture

    View Slide

  28. αʔόʔϨεϓϥοτϑΥʔϜʹΑΔ࣮૷
    In-Memory
    KVS
    Amazon Elasticache For Redis (Redis Cluster)
    On-Disk
    KVS
    Amazon DynamoDB
    On-Disk
    KVS2
    Amazon S3
    Write Ahead
    Log
    Amazon Kinesis Streams
    Index
    (Label or Tag)
    Elasticache or DynamoDB

    View Slide

  29. 29
    ஍ཧ෼ࢄ؀ڥ΁ͷల։ͷߏ૝
    தԝͷΫϥ΢υσʔληϯλʔ΁ͷॻ͖ࠐΈෛՙ௿ݮ
    Cloud
    Edge
    On-Disk KVS
    In-memory
    KVS
    In-memory
    KVS
    ①Write
    ①Write
    ①Read
    ②古くなったら移動
    直近のデータ
    直近のデータ


    View Slide

  30. 4. 分散アプリケーションの依存関係追跡
    の研究
    坪内佑樹, 古川雅⼤, 松本亮介, “Transtracer: 分散システムにおけるTCP/UDP通信の終端点の監視によるプロセス間依存関係の⾃動
    追跡”, インターネットと運⽤技術シンポジウム論⽂集, 2019, 64-71 (2019-11-28), 2019年12⽉.

    View Slide

  31. 31
    研究の⽬的(再掲)
    ・⼤⽬的: 地理的に分散したアプリケーションの信頼性向上
    ・制約: 既存のアプリケーションやミドルウェアのコードを変更せず,
    性能影響をあたえない
    ・3つの⽬的
    1. 時間軸の可観測性: 時系列データベースの性能と拡張性の両⽴
    2. 空間軸の可観測性: 依存関係を低負荷かつ網羅的に追跡
    3. データの⼀貫性を保証しつつ,応答性能を最⼤化できるように制御

    View Slide

  32. 32
    ・Linuxのパケットフィルタログを利⽤してL4接続の状態を取得
    ・Linuxカーネルの通信機構を利⽤する限り,プロセスに対して透過
    的に追跡可能
    ・遅延オーバヘッド: パケットフィルタ処理のオーバヘッド
    ・偽陰性: リソース消費を抑えるために,パケットを無作為にサンプ
    リングするため,検知漏れの可能性がある
    既存のパケットベースのトレーシング技術※
    ※J. K. Clawson, Service Dependency Analysis via TCP/UDP Port Tracing, Master’s thesis, Brigham Young University-Provo 2015.

    View Slide

  33. 33
    ネットワークソケットモニタリング
    Linux OS
    Kernel
    Process Process
    TCP
    Flows

    .
    .
    .
    User
    ソケット
    を監視
    TCP接続の終端点であるソケットを監視し接続を⾃動追跡
    1. 遅延オーバヘッドの解決
    ・ソケットの監視をプロセス
    の通信と独⽴させる
    2. 偽陰性の解決
    ・すべてのソケットを監視
    ・パケット数よりも接続数=ソ
    ケット数のほうが⼩さい
    ・接続を永続化していると顕
    著な差となる
    Tracer

    View Slide

  34. 34
    システム構成
    Host 1
    Host 2
    Host N
    CMDB
    Tracer
    Tracer
    Tracer
    Systems
    Administrator
    ・ホスト上にTracerプロセスを配置
    ・各Tracerプロセスは取得した接続情
    報をCMDB(接続情報管理DB)に保存
    ・システム管理者はCMDBにアクセス
    し,複数のホストにまたがり依存関
    係を取得

    View Slide

  35. 35
    地理分散環境への展開の構想
    CMDBのホスト単位の⾃律分散配置
    Host
    Tracer Tracer
    DB
    Tracer Tracer
    Host Host
    Systems
    Administrator
    Host
    1.各ホスト上のローカルに
    DBを配置
    2.Tracerは⾃⾝のDBに⾃
    ⾝の依存関係を書きこみ
    3.読み出し時は問い合わ
    せたのあったホストを起
    点に依存先/元のTracer
    に再帰問い合わせ



    DB
    DB
    DB

    View Slide

  36. 5. 地理分散協調クエリキャッシング
    の研究
    ௶಺༎थ, দຊ྄հ, “௒ݸମܕσʔληϯλʔʹ͓͚Δ෼ࢄڠௐΫΤϦΩϟογϡߏ૝”, ৘ใॲཧֶձݚڀใࠂΠϯλʔωοτͱ
    ӡ༻ٕज़ʢIOTʣ, No.2019-IOT-45, Vol.14, pp.1-7, 2019೥5݄.

    View Slide

  37. 37
    研究の⽬的(再掲)
    ・⼤⽬的: 地理的に分散したアプリケーションの信頼性向上
    ・制約: 既存のアプリケーションやミドルウェアのコードを変更せず,
    性能影響をあたえない
    ・3つの⽬的
    1. 時間軸の可観測性: 時系列データベースの性能と拡張性の両⽴
    2. 空間軸の可観測性: 依存関係を低負荷かつ網羅的に追跡
    3. データの⼀貫性を保証しつつ,応答性能を最⼤化できるように制御

    View Slide

  38. 38
    システム要件1: 分散データセンターへの透過性
    スコープ: 動的コンテンツの配信の⾼速化のために読み込み性能を向上
    Replica
    Replica
    Replica
    Origin
    Central
    Datacenter
    全データセンターに
    キャッシュの複製を配置
    することで
    透過的にデータを⾼速参
    照可能
    中央データセンターへ書
    き込みを向けて
    キャッシュを伝搬

    View Slide

  39. 39
    システム要件2: 既存のアプリケーションを無変更
    スコープ: 動的コンテンツの配信の⾼速化のために読み込み性能を向上
    Central
    Datacenter
    App
    DB
    Proxy
    DataBase
    HTTP
    Request
    Caching
    Query
    Edge Datacenter
    アプリケーションとデータベースの間にプロキシを介してクエリ
    をキャッシュ
    書き込みに対して同期的にキャッシュとデータベースを更新し,
    強い⼀貫性を担保

    View Slide

  40. 40
    ஍ཧ෼ࢄσʔληϯλʔ্Ͱͷෳ੡ͷ՝୊
    ɾಉظߋ৽࣌ʹωοτϫʔΫ஗Ԇͷେ͖͍σʔληϯλʔʹ཯଎͞Εͯ
    Ԡ౴ੑೳ͕௿Լ͢Δ͜ͱ
    Replica
    Origin
    (1) ॻ͖ࠐΈཁٻ
    (2) ಉظߋ৽
    ཯଎
    Edge Datacenter Central
    Datacenter
    Replica
    Replica

    View Slide

  41. 41
    提案: QuorumCacheアーキテクチャ
    1. 同期更新の範囲をネットワーク遅延に応じて調節可能
    2. アプリケーションの読み書き回数の⽐率に応じて同期更新の範囲を適
    応的に決定可能
    ネットワーク遅延とアクセス傾向の変動に応じて
    応答性能を適応的に最⼤化する基盤の提案
    同期更新時にネットワーク遅延の⼤きいデータセンターに律速される
    課題を解決

    View Slide

  42. 42
    QuorumCacheの動作フロー
    Central
    Datacenter
    Origin
    Replica
    Replica
    Replica
    Replica
    d: 近傍ネットワーク距離
    Edge
    Datacenter
    Replica
    Replica
    d
    (1) 書き込み要求
    (2) 書き込み要求
    転送
    (3) 同期更新
    (i) 読み込み要求
    (ii) d以内のデータ
    センターから
    読み込み
    Replica
    (4) ⾮同期更新

    View Slide

  43. 43
    QuorumCacheのシステム構成
    HTTP
    Proxy
    Central
    Datacenter
    Web
    App
    DB
    Proxy
    DataBase
    HTTP
    Request
    Caching
    読み書き⽐率の
    計測(HTTP)
    読み書き⽐率の
    計測(DBクエリ)
    応答性能の計測
    Query
    DB
    Proxy
    Web
    App
    HTTP
    Proxy
    ・制御ポイントとしてHTTPとDBの層にプロキシを配置
    Forward
    Edge Datacenter
    ・Transtracerによりクエリの
    TCP層のネットワーク遅延を
    計測

    View Slide

  44. 6. むすび

    View Slide

  45. 45
    まとめ
    ・SREは失敗を前提として信頼性を制御するアプローチであると解釈
    ・地理分散コンピューティングが今後台頭してくると予想
    ・構成要素数の増加と,システム内ネットワーク遅延の増加の問題
    ・問題を解決する研究の提⽰
    1. 時系列データベースにおいて,互換性と性能を両⽴
    2. リスクを事前予測するために,低負荷かつ網羅的な依存関係追跡
    3. データ⼀貫性を維持しつつ,読み込み性能を最⼤化

    View Slide

  46. 46
    SRE “NEXT”
    SRE
    地理分散
    High-Performance
    Computing(HPC)
    量⼦コンピュータ
    認知システム⼯学
    経営学 ⼈と組織
    ⼈と機械
    拡張
    導⼊
    ・クラウドコンピューティング以外のコン
    ピューティング領域への拡張
    ・計算機中⼼から⼈間中⼼のアプローチ
    ※1 ೖࢁষӫ, “ੈքඪ४ͷܦӦཧ࿦,” μΠϠϞϯυࣾ, 2019.
    ※2 ੁ໺ଠ࿠, “ೝ஌γεςϜ޻ֶతΞϓϩʔνʹΑΔࣾձσβΠϯ,” ԣװ, Vol. 4, No. 2, pp. 68-73 2010.
    ※3 ᑼ໦఩෉, “ਓͱػցͷڞ૑ʹΑΔ׆ྗ͋Δࣾձٕज़γεςϜͷσβΠϯ,” ܭଌͱ੍ޚ, Vol. 57, No. 2, pp. 79-84 2018.
    ※1
    ※2 ※3

    View Slide

  47. 分散アプリケーションの信頼性観測技術
    に関する研究
    Yuuki Tsubouchi / @yuuk1t
    SRE NEXT IN TOKYO 2020
    基調講演
    2020.01.25

    View Slide