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. 2 ⾃⼰紹介 Yuuki Tsubouchi / ゆううき https://yuuk.io/ ܦྺ 株式会社はてな Webオペレーションエンジニア・SRE

    さくらインターネット株式会社 さくらインターネット研究所 研究員 Webサービスの 開発・運⽤ インターネット 基盤技術研究 5年 現在 Site Reliability Engineering(SRE) Researcher @yuuk1t 情報処理学会 インターネットと運⽤技術研究会 運営委員 セキュリティ・キャンプ全国⼤会講師 id:y_uuki
  2. 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. ⼈間と計算機をあわせた制御系の設計が必要となる
  3. 10 いかに失敗のリスクを⼩さくできるか? リスクの事前予測 ・キャパシティプランニング ・サブシステム間の依存関係 の把握 (後述の研究2) ・… リスクの事後最⼩化 ・⾃動回復(フェイルオーバー)

    ・アラーティング ・因果関係の特定(分散トレー シングなど) ・インシデント対応体制の構築 ・⾼速なデプロイメント ・… リスクを⼩さくできると 恐怖が⼩さくなり変更速度が⾼まり 結果的に信頼性も⾼くなる
  4. 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を占める
  5. 22 研究の⽬的 ・⼤⽬的: 地理的に分散したアプリケーションの信頼性向上 ・制約: 既存のアプリケーションやミドルウェアのコードを変更せず, 性能影響をあたえない ・3つの⽬的 1. 時間軸の可観測性:

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

    時系列データベースの性能と拡張性の両⽴ 2. 空間軸の可観測性: 依存関係を低負荷かつ網羅的に追跡 3. データの⼀貫性を保証しつつ,応答性能を最⼤化できるように制御
  8. αʔόʔϨεϓϥοτϑΥʔϜʹΑΔ࣮૷ 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
  9. 29 ஍ཧ෼ࢄ؀ڥ΁ͷల։ͷߏ૝ தԝͷΫϥ΢υσʔληϯλʔ΁ͷॻ͖ࠐΈෛՙ௿ݮ Cloud Edge On-Disk KVS In-memory KVS In-memory

    KVS ①Write ①Write ①Read ②古くなったら移動 直近のデータ 直近のデータ ② ②
  10. 31 研究の⽬的(再掲) ・⼤⽬的: 地理的に分散したアプリケーションの信頼性向上 ・制約: 既存のアプリケーションやミドルウェアのコードを変更せず, 性能影響をあたえない ・3つの⽬的 1. 時間軸の可観測性:

    時系列データベースの性能と拡張性の両⽴ 2. 空間軸の可観測性: 依存関係を低負荷かつ網羅的に追跡 3. データの⼀貫性を保証しつつ,応答性能を最⼤化できるように制御
  11. 33 ネットワークソケットモニタリング Linux OS Kernel Process Process TCP Flows …

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

    Tracer Tracer Systems Administrator ・ホスト上にTracerプロセスを配置 ・各Tracerプロセスは取得した接続情 報をCMDB(接続情報管理DB)に保存 ・システム管理者はCMDBにアクセス し,複数のホストにまたがり依存関 係を取得
  13. 35 地理分散環境への展開の構想 CMDBのホスト単位の⾃律分散配置 Host Tracer Tracer DB Tracer Tracer Host

    Host Systems Administrator Host 1.各ホスト上のローカルに DBを配置 2.Tracerは⾃⾝のDBに⾃ ⾝の依存関係を書きこみ 3.読み出し時は問い合わ せたのあったホストを起 点に依存先/元のTracer に再帰問い合わせ ᶃ ᶄ ᶄ DB DB DB
  14. 37 研究の⽬的(再掲) ・⼤⽬的: 地理的に分散したアプリケーションの信頼性向上 ・制約: 既存のアプリケーションやミドルウェアのコードを変更せず, 性能影響をあたえない ・3つの⽬的 1. 時間軸の可観測性:

    時系列データベースの性能と拡張性の両⽴ 2. 空間軸の可観測性: 依存関係を低負荷かつ網羅的に追跡 3. データの⼀貫性を保証しつつ,応答性能を最⼤化できるように制御
  15. 38 システム要件1: 分散データセンターへの透過性 スコープ: 動的コンテンツの配信の⾼速化のために読み込み性能を向上 Replica Replica Replica Origin Central

    Datacenter 全データセンターに キャッシュの複製を配置 することで 透過的にデータを⾼速参 照可能 中央データセンターへ書 き込みを向けて キャッシュを伝搬
  16. 39 システム要件2: 既存のアプリケーションを無変更 スコープ: 動的コンテンツの配信の⾼速化のために読み込み性能を向上 Central Datacenter App DB Proxy

    DataBase HTTP Request Caching Query Edge Datacenter アプリケーションとデータベースの間にプロキシを介してクエリ をキャッシュ 書き込みに対して同期的にキャッシュとデータベースを更新し, 強い⼀貫性を担保
  17. 42 QuorumCacheの動作フロー Central Datacenter Origin Replica Replica Replica Replica d:

    近傍ネットワーク距離 Edge Datacenter Replica Replica d (1) 書き込み要求 (2) 書き込み要求 転送 (3) 同期更新 (i) 読み込み要求 (ii) d以内のデータ センターから 読み込み Replica (4) ⾮同期更新
  18. 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層のネットワーク遅延を 計測
  19. 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