Slide 1

Slide 1 text

Cloud Native Meetup Tokyo #11 KubeCon + CloudNativeCon Recap 2019.12.10 @CyberAgent © cyberblack28 KUBECON + CLOUDNATIVECON 2019 SAN DIEGO RECAP ~ VITESS ~

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

Let’s Start Cloud Native AP Communications Co., Ltd

Slide 4

Slide 4 text

Information http://bit.ly/kubecon2018na_recap

Slide 5

Slide 5 text

1. Overview 2. What’s Vitess 3. Case Studies & Maintainer Track & Storage Sessions 4. Summary Agenda

Slide 6

Slide 6 text

Overview

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Overview Keynote Sessions Keynote: CNCF Project Updates - Bryan Liles, KubeCon + CloudNativeCon North America 2019 Co-Chair & Senior Staff Engineer, VMware

Slide 12

Slide 12 text

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 “健全なプロジェクトの適切性を判断”

Slide 13

Slide 13 text

Overview 2019 San Diego 2018 Seattle

Slide 14

Slide 14 text

Overview GitHub Investigate (As of December 2019)

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

Overview “Nozzleというスタートアップ企業がVitessを導⼊。アプリケーションはすべてKubernetesで実⾏、 AKSからGKEに移⾏し、KubernetesとVitessで「No Vendor lock-in」を実現。”

Slide 19

Slide 19 text

Overview Keynote Sessions Sponsored Keynote: Network, Please Evolve – Chapter 2 - Vijoy Pandey, Vice President/CTO Cloud, Cisco

Slide 20

Slide 20 text

Overview 2/L3ネットワークの部分を抽象化してKubernetesの機能を利⽤して通信機能を実現

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

What’s Vitess

Slide 24

Slide 24 text

What’s Vitess

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

What’s Vitess Architecture

Slide 27

Slide 27 text

What’s Vitess Vitess on Kubernetes

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

What’s Vitess Sharding • 2個以上のデータベースに分割してデータを格納 • Shardを追加することによってスケールアウト、パフォーマンス向上を実現 Sharding of Vitess • VerticVertical Sharding(垂直) テーブル毎に複数データベースに分けて格納 • Horizontal Sharding(⽔平) 1個のテーブルを複数のShardに分割して、複数データベースに分けて格納

Slide 30

Slide 30 text

What’s Vitess Table Sharding VSchemaは Sharding定義、 ルーティング情報 VTworkerVSchemaを参照してShardingの分割処理を実⾏ VSchemaを参照し て適切なShardに ルーティング Keyspaceは、 複数Shardを まとめた論理 データベース。 applicationか らは1個の データベース と認識。

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

Case Studies & Maintainer Track & Storage Sessions

Slide 33

Slide 33 text

Case Study Slack

Slide 34

Slide 34 text

Case Studies & Maintainer Track & Storage Sessions この講演では、RafaelとGuidoが、Slackがどのように設計、構築、スケーリング、および反復して、 現在CNCFプロジェクトであるVitessに基づいて分散データベースサービスを改善することについて 概要を共有します。Slackのデータベースチームは、Vitessクラスターを0から1秒あたり270万クエ リのスパイクまでスケールしました。2000以上のノードを持つデータベースクラスターの運⽤⽅法 や今後12か⽉で3500以上の成⻑を⽬指しています。

Slide 35

Slide 35 text

Case Studies & Maintainer Track & Storage Sessions

Slide 36

Slide 36 text

Case Studies & Maintainer Track & Storage Sessions

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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.

Slide 39

Slide 39 text

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) 詳細については、スライドのプレゼンテーションをご覧ください。

Slide 40

Slide 40 text

Case Studies & Maintainer Track & Storage Sessions tl;dr; shard size limits, inefficient resource distribution, operational overhead, single sharding model “Slackユーザーは増加していますが、迅速かつ柔軟に拡張することができず、ビジ ネスニーズを満たすことができない” Why are we migrating?

Slide 41

Slide 41 text

Case Studies & Maintainer Track & Storage Sessions • SQLを変更せずに柔軟にスケーリングとシャーディングできる • MySQLにコアなメンテナーや開発者のノウハウが充実 • YouTubeや他の企業における⼤規模利⽤の実績 • アクティブな開発者コミュニティと親しみやすいコードベース Why Vitess?

Slide 42

Slide 42 text

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への移⾏を完了することを⽬指す!!

Slide 43

Slide 43 text

Case Studies & Maintainer Track & Storage Sessions

Slide 44

Slide 44 text

Case Studies & Maintainer Track & Storage Sessions 2.Running databases in the cloud Immutable infrastructure Instance failure Durability through replication

Slide 45

Slide 45 text

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

Slide 46

Slide 46 text

Case Studies & Maintainer Track & Storage Sessions Not Kubernetes

Slide 47

Slide 47 text

Case Studies & Maintainer Track & Storage Sessions

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

Case Studies & Maintainer Track & Storage Sessions Vitessが気に⼊らないなら、そうするべきです。

Slide 51

Slide 51 text

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

Slide 52

Slide 52 text

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

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

Case Studies & Maintainer Track & Storage Sessions Performance wins

Slide 55

Slide 55 text

Case Studies & Maintainer Track & Storage Sessions

Slide 56

Slide 56 text

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)

Slide 57

Slide 57 text

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

Slide 58

Slide 58 text

Case Studies & Maintainer Track & Storage Sessions

Slide 59

Slide 59 text

Case Study Nozzle

Slide 60

Slide 60 text

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)に移⾏

Slide 61

Slide 61 text

Case Studies & Maintainer Track & Storage Sessions ベンダーのロックインはゼロであることが望ましいが、 良い場合もあります。 しかし、正しい⾒極めが重要です。

Slide 62

Slide 62 text

Case Studies & Maintainer Track & Storage Sessions

Slide 63

Slide 63 text

Case Studies & Maintainer Track & Storage Sessions Provisioning / Autoscaling Database

Slide 64

Slide 64 text

Case Studies & Maintainer Track & Storage Sessions Queues

Slide 65

Slide 65 text

Case Studies & Maintainer Track & Storage Sessions Network Egress

Slide 66

Slide 66 text

Case Studies & Maintainer Track & Storage Sessions

Slide 67

Slide 67 text

Case Studies & Maintainer Track & Storage Sessions

Slide 68

Slide 68 text

Case Studies & Maintainer Track & Storage Sessions

Slide 69

Slide 69 text

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

Slide 70

Slide 70 text

Case Studies & Maintainer Track & Storage Sessions

Slide 71

Slide 71 text

Case Studies & Maintainer Track & Storage Sessions

Slide 72

Slide 72 text

Case Studies & Maintainer Track & Storage Sessions

Slide 73

Slide 73 text

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

Slide 74

Slide 74 text

Case Studies & Maintainer Track & Storage Sessions

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

Case Studies & Maintainer Track & Storage Sessions

Slide 77

Slide 77 text

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

Slide 78

Slide 78 text

Case Studies & Maintainer Track & Storage Sessions

Slide 79

Slide 79 text

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

Slide 80

Slide 80 text

Case Studies & Maintainer Track & Storage Sessions

Slide 81

Slide 81 text

Case Studies & Maintainer Track & Storage Sessions HelmチャートでVitessデプロイ シャードごとに1回、TableExternallyReparentedを実⾏します ⾃動結合するタブレットのレプリカをスケールアップする Node Pool Internal App GKE AKS Internal App GCS ⾃動リストア

Slide 82

Slide 82 text

Case Studies & Maintainer Track & Storage Sessions

Slide 83

Slide 83 text

Case Studies & Maintainer Track & Storage Sessions

Slide 84

Slide 84 text

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

Slide 85

Slide 85 text

Mantainer Track

Slide 86

Slide 86 text

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

Slide 87

Slide 87 text

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

Slide 88

Slide 88 text

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

Slide 89

Slide 89 text

Case Studies & Maintainer Track & Storage Sessions 4つの地域と8つの国でのCustom Sharding Schemeのデモ

Slide 90

Slide 90 text

Storage Sessions

Slide 91

Slide 91 text

Case Studies & Maintainer Track & Storage Sessions Vitess: Stateless Storage in the Cloud - Sugu Sougoumarane, PlanetScale • Vitessをクラウドネイティブにするための設計原則 1 2 3 4 0 0 5

Slide 92

Slide 92 text

Bonus

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

Summary

Slide 95

Slide 95 text

Summary • Vitessはv4でGraduation!! • この⼀年でVitess adopters が増加傾向 • Not Kubernetes + Vitess & Kubernetes + Vitess 事例が揃った • GDPRについても考える必要があるという知⾒を得た

Slide 96

Slide 96 text

Thank you !!