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

KubeCon CloudNativeCon 2019 SanDiego Recap 〜Vitess〜

cyberblack28
December 10, 2019

KubeCon CloudNativeCon 2019 SanDiego Recap 〜Vitess〜

Cloud Native Meetup Tokyo #11 KubeCon Recap

cyberblack28

December 10, 2019
Tweet

More Decks by cyberblack28

Other Decks in Technology

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. 1. Overview 2. What’s Vitess 3. Case Studies & Maintainer

    Track & Storage Sessions 4. Summary Agenda
  4. 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
  5. 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
  6. 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
  7. 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
  8. Overview Keynote Sessions Keynote: CNCF Project Updates - Bryan Liles,

    KubeCon + CloudNativeCon North America 2019 Co-Chair & Senior Staff Engineer, VMware
  9. 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 “健全なプロジェクトの適切性を判断”
  10. 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
  11. 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
  12. What’s Vitess Sharding • 2個以上のデータベースに分割してデータを格納 • Shardを追加することによってスケールアウト、パフォーマンス向上を実現 Sharding of Vitess

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

    ルーティング Keyspaceは、 複数Shardを まとめた論理 データベース。 applicationか らは1個の データベース と認識。
  14. 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
  15. Case Studies & Maintainer Track & Storage Sessions この講演では、RafaelとGuidoが、Slackがどのように設計、構築、スケーリング、および反復して、 現在CNCFプロジェクトであるVitessに基づいて分散データベースサービスを改善することについて

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

    Slack Current status Legacy Shards Vitess Shards データセット全体をVitessに移⾏中です。
  17. 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.
  18. 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) 詳細については、スライドのプレゼンテーションをご覧ください。
  19. Case Studies & Maintainer Track & Storage Sessions tl;dr; shard

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

    • MySQLにコアなメンテナーや開発者のノウハウが充実 • YouTubeや他の企業における⼤規模利⽤の実績 • アクティブな開発者コミュニティと親しみやすいコードベース Why Vitess?
  21. 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への移⾏を完了することを⽬指す!!
  22. Case Studies & Maintainer Track & Storage Sessions 2.Running databases

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

    run Vitess EC2 Percona MySQL5.7 ASG for stateless components Ephemeral NVMe (no EBS)
  24. Case Studies & Maintainer Track & Storage Sessions 3.Fault tolerance

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

    deployment • 複数のAZにわたる単⼀Cell • 同じConsulクラスターを使⽤するGlobal TopologyとLocal Topology • Cell︓サーバーとネットワークインフラストラクチャのグ ループ • Topology︓VitessのKey-Valueストア • Consul︓サービスディスカバリー
  26. Case Studies & Maintainer Track & Storage Sessions Resilient systems

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

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

    benefited already • バックアップ時のAZ障害 • 単⼀のCellが影響を受けました︕
  29. 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)
  30. Case Studies & Maintainer Track & Storage Sessions Complex system

    failures 複雑さに対する謙虚さ。 他の分野に⼿を伸ばし、その経験から学びます。
  31. 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)に移⾏
  32. Case Studies & Maintainer Track & Storage Sessions • クラスターあたり100ノードの制限(おそらく400になりましたか︖ドキュメントに⼀貫性がない)

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

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

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

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

    Internal App スケールダウン Node Pool Internal App GKE 停⽌ バックアップ開始
  37. Case Studies & Maintainer Track & Storage Sessions HelmチャートでVitessデプロイ シャードごとに1回、TableExternallyReparentedを実⾏します

    ⾃動結合するタブレットのレプリカをスケールアップする Node Pool Internal App GKE AKS Internal App GCS ⾃動リストア
  38. 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
  39. 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
  40. Case Studies & Maintainer Track & Storage Sessions Geo-partitioning with

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

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

    Storage in the Cloud - Sugu Sougoumarane, PlanetScale • Vitessをクラウドネイティブにするための設計原則 1 2 3 4 0 0 5
  43. Summary • Vitessはv4でGraduation!! • この⼀年でVitess adopters が増加傾向 • Not Kubernetes

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