Share
Embed
KubeCon CloudNativeCon 2019 SanDiego Recap 〜Vitess〜
Cloud Native Meetup Tokyo #11 KubeCon Recap
cyberblack28
December 10, 2019
Transcript
96 slides
-
Cloud Native Meetup Tokyo #11 KubeCon + CloudNativeCon Recap 2019.12.10
@CyberAgent © cyberblack28 KUBECON + CLOUDNATIVECON 2019 SAN DIEGO RECAP ~ VITESS ~ -
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 -
1. Overview 2. What’s Vitess 3. Case Studies & Maintainer
Track & Storage Sessions 4. Summary Agenda -
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 -
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 -
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 -
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 -
Overview Keynote Sessions Keynote: CNCF Project Updates - Bryan Liles,
KubeCon + CloudNativeCon North America 2019 Co-Chair & Senior Staff Engineer, VMware -
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 “健全なプロジェクトの適切性を判断” -
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 -
Overview Keynote Sessions Sponsored Keynote: Network, Please Evolve – Chapter
2 - Vijoy Pandey, Vice President/CTO Cloud, Cisco -
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 -
What’s Vitess Sharding • 2個以上のデータベースに分割してデータを格納 • Shardを追加することによってスケールアウト、パフォーマンス向上を実現 Sharding of Vitess
• VerticVertical Sharding(垂直) テーブル毎に複数データベースに分けて格納 • Horizontal Sharding(⽔平) 1個のテーブルを複数のShardに分割して、複数データベースに分けて格納 -
What’s Vitess Table Sharding VSchemaは Sharding定義、 ルーティング情報 VTworkerVSchemaを参照してShardingの分割処理を実⾏ VSchemaを参照し て適切なShardに
ルーティング Keyspaceは、 複数Shardを まとめた論理 データベース。 applicationか らは1個の データベース と認識。 -
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 -
Case Studies & Maintainer Track & Storage Sessions この講演では、RafaelとGuidoが、Slackがどのように設計、構築、スケーリング、および反復して、 現在CNCFプロジェクトであるVitessに基づいて分散データベースサービスを改善することについて
概要を共有します。Slackのデータベースチームは、Vitessクラスターを0から1秒あたり270万クエ リのスパイクまでスケールしました。2000以上のノードを持つデータベースクラスターの運⽤⽅法 や今後12か⽉で3500以上の成⻑を⽬指しています。 -
Case Studies & Maintainer Track & Storage Sessions 1.Databases at
Slack Current status Legacy Shards Vitess Shards データセット全体をVitessに移⾏中です。 -
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. -
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) 詳細については、スライドのプレゼンテーションをご覧ください。 -
Case Studies & Maintainer Track & Storage Sessions tl;dr; shard
size limits, inefficient resource distribution, operational overhead, single sharding model “Slackユーザーは増加していますが、迅速かつ柔軟に拡張することができず、ビジ ネスニーズを満たすことができない” Why are we migrating? -
Case Studies & Maintainer Track & Storage Sessions • SQLを変更せずに柔軟にスケーリングとシャーディングできる
• MySQLにコアなメンテナーや開発者のノウハウが充実 • YouTubeや他の企業における⼤規模利⽤の実績 • アクティブな開発者コミュニティと親しみやすいコードベース Why Vitess? -
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への移⾏を完了することを⽬指す!! -
Case Studies & Maintainer Track & Storage Sessions 2.Running databases
in the cloud Immutable infrastructure Instance failure Durability through replication -
Case Studies & Maintainer Track & Storage Sessions How we
run Vitess EC2 Percona MySQL5.7 ASG for stateless components Ephemeral NVMe (no EBS) -
Case Studies & Maintainer Track & Storage Sessions 3.Fault tolerance
& isolation Slack cloud infrastructure • Amazon EC2は、世界中の複数のロケーションでホストされています。 • ロケーションは、リージョンとアベイラビリティーゾーン(AZ’s)で 構成されています。 • 各リージョンは個別の地理的領域です。 • リージョン内のAZは、低遅延リンクを介して接続されています。 -
Case Studies & Maintainer Track & Storage Sessions Vitess initial
deployment • 複数のAZにわたる単⼀Cell • 同じConsulクラスターを使⽤するGlobal TopologyとLocal Topology • Cell︓サーバーとネットワークインフラストラクチャのグ ループ • Topology︓VitessのKey-Valueストア • Consul︓サービスディスカバリー -
Case Studies & Maintainer Track & Storage Sessions Resilient systems
• 障害影響の最⼩化 • 分離が重要. • 依存関係を理解 -
Case Studies & Maintainer Track & Storage Sessions Current deployment
• 分離されたトポロジ(各AZにLocal Toplogy、dcにGlobal Topology )。 • 影響範囲は、物理インフラストラクチャにマッピングされま す。 -
Case Studies & Maintainer Track & Storage Sessions We have
benefited already • バックアップ時のAZ障害 • 単⼀のCellが影響を受けました︕ -
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) -
Case Studies & Maintainer Track & Storage Sessions Complex system
failures 複雑さに対する謙虚さ。 他の分野に⼿を伸ばし、その経験から学びます。 -
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)に移⾏ -
Case Studies & Maintainer Track & Storage Sessions Provisioning /
Autoscaling Database -
Case Studies & Maintainer Track & Storage Sessions • クラスターあたり100ノードの制限(おそらく400になりましたか︖ドキュメントに⼀貫性がない)
• 単⼀ノードタイプ/プール(追加されたばかり) • ディスクのマウントには最⼤30分かかります • マスターが抑制されたため、2⽇間の停⽌ • オンデマンドの価格が⼤幅に⾼い(クレジット後) 1.継続使⽤割引 2.プリエンティブルノードプール -
Case Studies & Maintainer Track & Storage Sessions • ベンダー⾮依存
• データと同じスケール • 単⼀のトランザクションでキュー/ ACK /データ作業に追加 • SQLステートメントを使⽤した再キューイング • SQLステートメントでキューの内容を確認 • SQLステートメントを使⽤してキューデータを変更 -
Case Studies & Maintainer Track & Storage Sessions AKS GKE
GCS バックアップ リストア ゼロダウンタイムのためのクロスクラスターネットワーキング -
Case Studies & Maintainer Track & Storage Sessions AKS GCS
Node Pool Internal App すべての内部アプリケーションを展開する GKE cert-manager/external-dns/nginx-ingressをデプロイする 専⽤のVitessタブレットのノードプールをセットアップする -
Case Studies & Maintainer Track & Storage Sessions AKS GCS
Internal App スケールダウン Node Pool Internal App GKE 停⽌ バックアップ開始 -
Case Studies & Maintainer Track & Storage Sessions HelmチャートでVitessデプロイ シャードごとに1回、TableExternallyReparentedを実⾏します
⾃動結合するタブレットのレプリカをスケールアップする Node Pool Internal App GKE AKS Internal App GCS ⾃動リストア -
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 -
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 -
Case Studies & Maintainer Track & Storage Sessions Geo-partitioning with
Vitess - Deepthi Sigireddi & Jitendra Vaidya, PlanetScale • GDPRの問題と解決策 • GDPRをベースにGeo-patitioningに対するVitessアプローチ • Vitess Custom Sharding Schemeのデモ -
Case Studies & Maintainer Track & Storage Sessions GDPR(General Data
Protection Regulation︓⼀般データ保護規則) 欧州連合 (EU) 内の全ての個⼈のためにデータ保護を強化し統合することを意図している規則。 「データの保存場所をユーザーの居住国にローカライズせよ」というGDPRの要求に対する、Vitessでの対応⽅ 法の⼀つとして、 Custom Sharding Scheme。 こうした規則がEU以外にもある。 -
Case Studies & Maintainer Track & Storage Sessions Vitess: Stateless
Storage in the Cloud - Sugu Sougoumarane, PlanetScale • Vitessをクラウドネイティブにするための設計原則 1 2 3 4 0 0 5 -
Summary • Vitessはv4でGraduation!! • この⼀年でVitess adopters が増加傾向 • Not Kubernetes
+ Vitess & Kubernetes + Vitess 事例が揃った • GDPRについても考える必要があるという知⾒を得た