KubeCon CloudNativeCon 2019 SanDiego Recap 〜Vitess〜

7bcf6f29a0b9a348fe422a31a4f44752?s=47 cyberblack28
December 10, 2019

KubeCon CloudNativeCon 2019 SanDiego Recap 〜Vitess〜

Cloud Native Meetup Tokyo #11 KubeCon Recap

7bcf6f29a0b9a348fe422a31a4f44752?s=128

cyberblack28

December 10, 2019
Tweet

Transcript

  1. Cloud Native Meetup Tokyo #11 KubeCon + CloudNativeCon Recap 2019.12.10

    @CyberAgent © cyberblack28 KUBECON + CLOUDNATIVECON 2019 SAN DIEGO RECAP ~ VITESS ~
  2. Profile Name : Yutaka Ichikawa Twitter : cyberblack28 Hatena Blog

    : https://cyberblack28.hatenablog.com/ SpeakerDeck : https://speakerdeck.com/cyberblack28 Job Educational Solution Architect Developer Advocate / Technical Evangelist Infrastructure Engineer Frontend Engineer Community & Certification Publications #deepcn #rancherjp CKA KCM100 CKAD 2018 2019
  3. Let’s Start Cloud Native AP Communications Co., Ltd

  4. Information http://bit.ly/kubecon2018na_recap

  5. 1. Overview 2. What’s Vitess 3. Case Studies & Maintainer

    Track & Storage Sessions 4. Summary Agenda
  6. Overview

  7. Overview KubeCon + CloudNativeCon NA 2019 Vitess Sessions 1.Keynote Sessions

    Tuesday, November 19 • 9:20am - 9:45am Keynote: CNCF Project Updates - Bryan Liles, KubeCon + CloudNativeCon North America 2019 Co-Chair & Senior Staff Engineer, VMware http://bit.ly/kubecon2019na_vitess1 http://bit.ly/kubecon2019na_vitess_m1 Wednesday, November 20 • 9:27am - 9:32am Sponsored Keynote: Network, Please Evolve – Chapter 2 - Vijoy Pandey, Vice President/CTO Cloud, Cisco http://bit.ly/kubecon2019na_vitess1_2 http://bit.ly/kubecon2019na_vitess_m1_2
  8. Overview KubeCon + CloudNativeCon NA 2019 Vitess Sessions 2.Case Studies

    Tuesday, November 19 • 11:50am - 12:25pm Scaling Resilient Systems: A Journey into Slack's Database Service - Rafael Chacon & Guido Iaquinti, Slack Thursday, November 21 • 2:25pm - 3:00pm Gone in 60 Minutes: Migrating 20 TB from AKS to GKE in an Hour with Vitess - Derek Perkins, Nozzle http://bit.ly/kubecon2019na_vitess2 http://bit.ly/kubecon2019na_vitess_m2 http://bit.ly/kubecon2019na_vitess_m3
  9. Overview KubeCon + CloudNativeCon NA 2019 Vitess Sessions 3.Maintainer Track

    Sessions Tuesday, November 19 • 11:50am - 12:25pm How to Migrate a MySQL Database to Vitess - Sugu Sougoumarane & Morgan Tocker, PlanetScale Wednesday, November 20 • 2:25pm - 3:00pm Geo-partitioning with Vitess - Deepthi Sigireddi & Jitendra Vaidya, PlanetScale http://bit.ly/kubecon2019na_vitess3 http://bit.ly/kubecon2019na_vitess_m4 http://bit.ly/kubecon2019na_vitess4 http://bit.ly/kubecon2019na_vitess_m5
  10. Overview KubeCon + CloudNativeCon NA 2019 Vitess Sessions 4.Storage Sessions

    Tuesday, November 19 • 3:20pm - 3:55pm Vitess: Stateless Storage in the Cloud - Sugu Sougoumarane, PlanetScale http://bit.ly/kubecon2019na_vitess5 http://bit.ly/kubecon2019na_vitess_m6
  11. Overview Keynote Sessions Keynote: CNCF Project Updates - Bryan Liles,

    KubeCon + CloudNativeCon North America 2019 Co-Chair & Senior Staff Engineer, VMware
  12. Overview November 5, 2019 Cloud Native Computing Foundation Announces Vitess

    Graduation VitessはKubernetes、Prometheus、Envoy、CoreDNS、containted、 Fluentd、Jaegerに続いて、8番⽬に卒業したプロジェクトです。 現在のバージョンはVitess 4.0.1。 Announcement : http://bit.ly/vitess_graduation Vitessは、2018年2⽉にCNCFインキュベーションプロジェクトになってか ら1年9か⽉で卒業しました。 1.Adoption “実際の企業におけるミッションクリティカルなプロダクションワーク ロードでの採⽤実績” 2.Maintainer Diversity “複数組織からの⻑期的な貢献を⾒極めて、プロジェクトの詳細を掘り 下げ、戦略を設計する⽅法を確認する” 3.Project Health “健全なプロジェクトの適切性を判断”
  13. Overview 2019 San Diego 2018 Seattle

  14. Overview GitHub Investigate (As of December 2019)

  15. Overview “SlackのVitessの導⼊は、⾮常に急速に変化するビジネスニーズとその変化に対応できる⼗分な柔 軟性を備えてシステム” “Slackは現在、Vitessへの移⾏を約35%、来年は100%にすることを⽬標としている”

  16. Overview “JD.comは中国最⼤のオンラインショッピングサイト。中国のブラックフライデーセールでは、約 4,000のキースペース、30,000を超えるポッド、および3500万(ピーク)のQPSという巨⼤なス ケールを達成”

  17. Overview KubeCon + CloudNativeCon China 2019 Vitess Sessions Tuesday, June

    25 • 11:00 - 11:35 Two Years with Vitess: How JD.com Runs the World's Largest Vitess - Xuhaihua & Jin Ke Xie , JD.com http://bit.ly/kubecon2019china_vitess1 http://bit.ly/kubecon2019china_vitess_m1
  18. Overview “Nozzleというスタートアップ企業がVitessを導⼊。アプリケーションはすべてKubernetesで実⾏、 AKSからGKEに移⾏し、KubernetesとVitessで「No Vendor lock-in」を実現。”

  19. Overview Keynote Sessions Sponsored Keynote: Network, Please Evolve – Chapter

    2 - Vijoy Pandey, Vice President/CTO Cloud, Cisco
  20. Overview 2/L3ネットワークの部分を抽象化してKubernetesの機能を利⽤して通信機能を実現

  21. Overview “これまで、技術的な複雑さと組織的な複雑さ とプロセスの複雑さが発⽣しました。” “これらのDB PodがDBシャーディングとレプ リケーションのために安全に通信できるように する必要があります。

  22. Overview “NSM駆動のDBシャーディングとレプリケーションにより、 包括的で効率的な通信、セキュリティ、および可観測性を実現します。”

  23. What’s Vitess

  24. What’s Vitess

  25. What’s Vitess MySQLをShardingによって⾼可⽤で⼤規模 にスケール(⽔平)を実現するクラウドネイ ティブなデータベースクラスタシステム

  26. What’s Vitess Architecture

  27. What’s Vitess Vitess on Kubernetes

  28. What’s Vitess vtgate applicationからのクエリをvttabletにルーティング、結果をクライアントに返すプロキシサーバ tablet mysqldとvttabletのセット vttablet MySQL(mysqld)の前に配置されるプロキシサーバ、クエリの書換、重複除去、有害なクエリから MySQLを保護する役割もある vtctld

    Vitessクラスタの管理操作(GUI)の窓⼝となるHTTPサーバ vtctl Vitessクラスタの管理操作(CLI)するためのコマンドラインツール Topology Vitessクラスタの構成情報を管理するメタデータストア、Kubernetesではetcd、etcd以外では ZooKeeperをサポート Technical Terms
  29. What’s Vitess Sharding • 2個以上のデータベースに分割してデータを格納 • Shardを追加することによってスケールアウト、パフォーマンス向上を実現 Sharding of Vitess

    • VerticVertical Sharding(垂直) テーブル毎に複数データベースに分けて格納 • Horizontal Sharding(⽔平) 1個のテーブルを複数のShardに分割して、複数データベースに分けて格納
  30. What’s Vitess Table Sharding VSchemaは Sharding定義、 ルーティング情報 VTworkerVSchemaを参照してShardingの分割処理を実⾏ VSchemaを参照し て適切なShardに

    ルーティング Keyspaceは、 複数Shardを まとめた論理 データベース。 applicationか らは1個の データベース と認識。
  31. What’s Vitess Reference Docs • Vitess is a database clustering

    system for horizontal scaling of MySQL https://vitess.io/ • Vitess Twitter https://twitter.com/vitessio • CrashAcademy 「CNDJP 勉強会 #8 Vitessのパフォーマンスと運⽤性を検証してみた」 https://crash.academy/ng/video/412/1736 • Vitess Slack https://vitess.slack.com/ • Vitess Github https://github.com/vitessio/vitess
  32. Case Studies & Maintainer Track & Storage Sessions

  33. Case Study Slack

  34. Case Studies & Maintainer Track & Storage Sessions この講演では、RafaelとGuidoが、Slackがどのように設計、構築、スケーリング、および反復して、 現在CNCFプロジェクトであるVitessに基づいて分散データベースサービスを改善することについて

    概要を共有します。Slackのデータベースチームは、Vitessクラスターを0から1秒あたり270万クエ リのスパイクまでスケールしました。2000以上のノードを持つデータベースクラスターの運⽤⽅法 や今後12か⽉で3500以上の成⻑を⽬指しています。
  35. Case Studies & Maintainer Track & Storage Sessions

  36. Case Studies & Maintainer Track & Storage Sessions

  37. Case Studies & Maintainer Track & Storage Sessions 1.Databases at

    Slack Current status Legacy Shards Vitess Shards データセット全体をVitessに移⾏中です。
  38. Case Studies & Maintainer Track & Storage Sessions Legacy Shards

    Vitess Shards Application level team-sharded active master-master MySQL setup. Master-replica MySQL setup fully managed by Vitess.
  39. Case Studies & Maintainer Track & Storage Sessions Why are

    we migrating? • “Migrating to Vitess at (Slack) Scale” - Mike Demmer (https://www.percona.com/live/18/sessions/migrating-to-vitess-at-slack-scale) • “Designing and launching the next-generation database system at Slack: from whiteboard to production” - Guido Iaquinti (https://www.percona.com/live/18/sessions/designing-and-launching-the-next-generation-database-system-slack-from-whiteboard-to-production) • “Smooth scaling: Slack’s journey toward a new database” - Ameet Kotian (https://conferences.oreilly.com/velocity/vl-ny/public/schedule/detail/69885) 詳細については、スライドのプレゼンテーションをご覧ください。
  40. Case Studies & Maintainer Track & Storage Sessions tl;dr; shard

    size limits, inefficient resource distribution, operational overhead, single sharding model “Slackユーザーは増加していますが、迅速かつ柔軟に拡張することができず、ビジ ネスニーズを満たすことができない” Why are we migrating?
  41. Case Studies & Maintainer Track & Storage Sessions • SQLを変更せずに柔軟にスケーリングとシャーディングできる

    • MySQLにコアなメンテナーや開発者のノウハウが充実 • YouTubeや他の企業における⼤規模利⽤の実績 • アクティブな開発者コミュニティと親しみやすいコードベース Why Vitess?
  42. Case Studies & Maintainer Track & Storage Sessions Stats •

    Queries per day: 53+ billion • Storage provisioned: 7.5+ PB • Served by legacy infrastructure: ~60% • Served by Vitess: ~40% • Target: 70% served by Vitess by EOY 2020年以内にVitessへの移⾏を完了することを⽬指す!!
  43. Case Studies & Maintainer Track & Storage Sessions

  44. Case Studies & Maintainer Track & Storage Sessions 2.Running databases

    in the cloud Immutable infrastructure Instance failure Durability through replication
  45. Case Studies & Maintainer Track & Storage Sessions How we

    run Vitess EC2 Percona MySQL5.7 ASG for stateless components Ephemeral NVMe (no EBS)
  46. Case Studies & Maintainer Track & Storage Sessions Not Kubernetes

  47. Case Studies & Maintainer Track & Storage Sessions

  48. Case Studies & Maintainer Track & Storage Sessions 3.Fault tolerance

    & isolation Slack cloud infrastructure • Amazon EC2は、世界中の複数のロケーションでホストされています。 • ロケーションは、リージョンとアベイラビリティーゾーン(AZ’s)で 構成されています。 • 各リージョンは個別の地理的領域です。 • リージョン内のAZは、低遅延リンクを介して接続されています。
  49. Case Studies & Maintainer Track & Storage Sessions Vitess initial

    deployment • 複数のAZにわたる単⼀Cell • 同じConsulクラスターを使⽤するGlobal TopologyとLocal Topology • Cell︓サーバーとネットワークインフラストラクチャのグ ループ • Topology︓VitessのKey-Valueストア • Consul︓サービスディスカバリー
  50. Case Studies & Maintainer Track & Storage Sessions Vitessが気に⼊らないなら、そうするべきです。

  51. Case Studies & Maintainer Track & Storage Sessions Resilient systems

    • 障害影響の最⼩化 • 分離が重要. • 依存関係を理解
  52. Case Studies & Maintainer Track & Storage Sessions Current deployment

    • 分離されたトポロジ(各AZにLocal Toplogy、dcにGlobal Topology )。 • 影響範囲は、物理インフラストラクチャにマッピングされま す。
  53. Case Studies & Maintainer Track & Storage Sessions We have

    benefited already • バックアップ時のAZ障害 • 単⼀のCellが影響を受けました︕
  54. Case Studies & Maintainer Track & Storage Sessions Performance wins

  55. Case Studies & Maintainer Track & Storage Sessions

  56. Case Studies & Maintainer Track & Storage Sessions 4.Key Lessons

    Complex system failures • 複雑なシステムは本質的に危険なシステムです。 • 複雑なシステムは、障害に対して⼗分に守られています。 • ⼤災害は常にすぐそこにあります。 • 複雑なシステムには、潜在的な障害の変化する混合物が含まれています。 How Complex Systems Fail – MIT (https://web.mit.edu/2.75/resources/random/How%20Complex%20Systems%20Fail.pdf)
  57. Case Studies & Maintainer Track & Storage Sessions Complex system

    failures 複雑さに対する謙虚さ。 他の分野に⼿を伸ばし、その経験から学びます。
  58. Case Studies & Maintainer Track & Storage Sessions

  59. Case Study Nozzle

  60. Case Studies & Maintainer Track & Storage Sessions Gone in

    60 Minutes: Migrating 20 TB from AKS to GKE in an Hour with Vitess - Derek Perkins, Nozzle • Cloud Native技術の究極の⽬標は、ベンダーロックインをゼロにすること • 20TBの⾼スループット実稼働ワークロードを1時間以内にAzure(AKS)からGoogle(GKE)に移⾏
  61. Case Studies & Maintainer Track & Storage Sessions ベンダーのロックインはゼロであることが望ましいが、 良い場合もあります。

    しかし、正しい⾒極めが重要です。
  62. Case Studies & Maintainer Track & Storage Sessions

  63. Case Studies & Maintainer Track & Storage Sessions Provisioning /

    Autoscaling Database
  64. Case Studies & Maintainer Track & Storage Sessions Queues

  65. Case Studies & Maintainer Track & Storage Sessions Network Egress

  66. Case Studies & Maintainer Track & Storage Sessions

  67. Case Studies & Maintainer Track & Storage Sessions

  68. Case Studies & Maintainer Track & Storage Sessions

  69. Case Studies & Maintainer Track & Storage Sessions • クラスターあたり100ノードの制限(おそらく400になりましたか︖ドキュメントに⼀貫性がない)

    • 単⼀ノードタイプ/プール(追加されたばかり) • ディスクのマウントには最⼤30分かかります • マスターが抑制されたため、2⽇間の停⽌ • オンデマンドの価格が⼤幅に⾼い(クレジット後) 1.継続使⽤割引 2.プリエンティブルノードプール
  70. Case Studies & Maintainer Track & Storage Sessions

  71. Case Studies & Maintainer Track & Storage Sessions

  72. Case Studies & Maintainer Track & Storage Sessions

  73. Case Studies & Maintainer Track & Storage Sessions • ベンダー⾮依存

    • データと同じスケール • 単⼀のトランザクションでキュー/ ACK /データ作業に追加 • SQLステートメントを使⽤した再キューイング • SQLステートメントでキューの内容を確認 • SQLステートメントを使⽤してキューデータを変更
  74. Case Studies & Maintainer Track & Storage Sessions

  75. Case Studies & Maintainer Track & Storage Sessions AKS GKE

    GCS バックアップ リストア ゼロダウンタイムのためのクロスクラスターネットワーキング
  76. Case Studies & Maintainer Track & Storage Sessions

  77. Case Studies & Maintainer Track & Storage Sessions AKS GCS

    Node Pool Internal App すべての内部アプリケーションを展開する GKE cert-manager/external-dns/nginx-ingressをデプロイする 専⽤のVitessタブレットのノードプールをセットアップする
  78. Case Studies & Maintainer Track & Storage Sessions

  79. Case Studies & Maintainer Track & Storage Sessions AKS GCS

    Internal App スケールダウン Node Pool Internal App GKE 停⽌ バックアップ開始
  80. Case Studies & Maintainer Track & Storage Sessions

  81. Case Studies & Maintainer Track & Storage Sessions HelmチャートでVitessデプロイ シャードごとに1回、TableExternallyReparentedを実⾏します

    ⾃動結合するタブレットのレプリカをスケールアップする Node Pool Internal App GKE AKS Internal App GCS ⾃動リストア
  82. Case Studies & Maintainer Track & Storage Sessions

  83. Case Studies & Maintainer Track & Storage Sessions

  84. Case Studies & Maintainer Track & Storage Sessions "Google Cloud

    Platform drives our analytics and machine learning needs. With BigQuery and Cloud Machine Learning Engine on Google Kubernetes Engine, we have an insights platform that's customized for our performance, IT, and cost requirements." —Derek Perkins, Founder & CEO, Nozzle https://cloud.google.com/customers/nozzle/ Cloud Tasks GKE Bigquery
  85. Mantainer Track

  86. Case Studies & Maintainer Track & Storage Sessions How to

    Migrate a MySQL Database to Vitess - Sugu Sougoumarane & Morgan Tocker, PlanetScale • Vitessの基本 • 既存のMySQLインストールをVitessにライブ移⾏するデモ。 → デモなし︕ 1 2 3 4 5 0
  87. Case Studies & Maintainer Track & Storage Sessions Geo-partitioning with

    Vitess - Deepthi Sigireddi & Jitendra Vaidya, PlanetScale • GDPRの問題と解決策 • GDPRをベースにGeo-patitioningに対するVitessアプローチ • Vitess Custom Sharding Schemeのデモ
  88. Case Studies & Maintainer Track & Storage Sessions GDPR(General Data

    Protection Regulation︓⼀般データ保護規則) 欧州連合 (EU) 内の全ての個⼈のためにデータ保護を強化し統合することを意図している規則。 「データの保存場所をユーザーの居住国にローカライズせよ」というGDPRの要求に対する、Vitessでの対応⽅ 法の⼀つとして、 Custom Sharding Scheme。 こうした規則がEU以外にもある。
  89. Case Studies & Maintainer Track & Storage Sessions 4つの地域と8つの国でのCustom Sharding

    Schemeのデモ
  90. Storage Sessions

  91. Case Studies & Maintainer Track & Storage Sessions Vitess: Stateless

    Storage in the Cloud - Sugu Sougoumarane, PlanetScale • Vitessをクラウドネイティブにするための設計原則 1 2 3 4 0 0 5
  92. Bonus

  93. Bounus Vitess as a Service https://planetscale.com/

  94. Summary

  95. Summary • Vitessはv4でGraduation!! • この⼀年でVitess adopters が増加傾向 • Not Kubernetes

    + Vitess & Kubernetes + Vitess 事例が揃った • GDPRについても考える必要があるという知⾒を得た
  96. Thank you !!