Slide 1

Slide 1 text

いまこそNewSQLを使ってみよう! @makocchi HACKERS CHAMPLOO 2023

Slide 2

Slide 2 text

2 Makoto Hasegawa Working at // CIU, CyberAgent, Inc Currently // Develop and maintain private OpenStack cloud. Develop and maintain Kubernetes as a Service platform. Kubernetes organization member (sig-docs-ja) CKA / CKAD / CKS Job Title // Technical Lead Infrastructure Engineer WHO am I X // @makocchi Facebook // makocchi0923 Hobby // Playing bass

Slide 3

Slide 3 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 3 本日のアジェンダ NewSQL について知る 💪 NewSQL にはどのようなソフトウェアがあるかを知る 💪 実際に NewSQL を動かしてみよう 💪

Slide 4

Slide 4 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 4 NewSQL について知る LEARN ABOUT NEWSQL

Slide 5

Slide 5 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 5 NewSQL について知る ⭐ NewSQLとは・・・ NoSQL(Not Only SQL)の拡張性を持ちつつ、データベースソフトウェアでサポートされている ACID トランザクション処理が可能なソフトウェアです。 NewSQL というワードの普及を後押ししたのが、Google が2012年に発表した「Spanner: Google’s Globally-Distributed Database」という論文です。 この発表後、Spannerのアーキテクチャを参考にいろいろなソフトウェアが世の中に出てきまし た。

Slide 6

Slide 6 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 6 NewSQL について知る 3%# /P42- /FX42- $"1ͷߟ͑ํ $" "1 $1ʴ)" 2VFSZ 42- 42-"1* 42- τϥϯβΫγϣϯ+0*/ ✔ ✘ ✔ 3FBEεέʔϥϏϦςΟ ✔ 3FBEϨϓϦΧ ✔ ෼ࢄΞʔΩςΫνϟ ✔ ෼ࢄΞʔΩςΫνϟ 8SJUFεέʔϥϏϦςΟ 💦 ཁγϟʔσΟϯά ✔ ෼ࢄΞʔΩςΫνϟ ✔ ෼ࢄΞʔΩςΫνϟ ⭐ NewSQLとは・・・   表にまとめるとこんな感じになります

Slide 7

Slide 7 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 7 NewSQL について知る ⭐ NewSQL だと何が嬉しいの? 従来のデータベース運用の課題が解決する(かもしれない) 個人的に思っている従来のデータベース運用にありがちな課題 効率よくスケールすることができない データが増えてくるとシャーディングしないとパフォーマンスが劣化してくる マルチマスター構成を組んだり運用したりするのがめんどくさい などなど。。。

Slide 8

Slide 8 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 8 NewSQL について知る ⭐ NewSQL のアーキテクチャについて知ろう NewSQL は SQL を処理するコンポーネントと、データを保持するコンポーネントに分かれて構成されてい るケースがほとんどです。 例えば処理性能は必要ないけれどディスク容量だけを拡張させたい、というシナリオの場合はデータを 保持するコンポーネントだけを拡張させるといったことが可能です。 もちろん、ディスク容量はそのままで処理性能だけがほしいといったシナリオにも対応できます。 このように、データベースのノード単位ではなく、コンポーネント単位で拡張することで必要なリソース のみを拡張することが可能で、効率よくデータベースを拡張することが可能な点が特徴です。

Slide 9

Slide 9 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 9 NewSQL について知る ⭐ NewSQL のアーキテクチャについて知ろう 図にしてみるとこんな感じ 👈 従来のデータベースの構成 NewSQL ではそれぞれが独立してスケールできる 👉

Slide 10

Slide 10 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 10 NewSQL について知る ⭐ NewSQL のアーキテクチャについて知ろう 2 シャーディングが必要ないといった点も NewSQL を使う利点として挙げられます。 データの肥大化に伴うシャーディングの運用は手間がかかりますし、何よりデータベースを参照するアプリ ケーション側にもロジックが必要になります。 NewSQL ではデータは自動的に分散して配置され、シャーディングしなくてもよいケースがほとんどです。 また、スケールアウト/インさせた場合にも自動でリシャーディングしてくれます。これも NewSQL を使う 上でのメリットでしょう。

Slide 11

Slide 11 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 11 NewSQL にはどのようなソフトウェアがあるかを知る FIND OUT WHAT SOFTWARE IS AVAILABLE FOR NEWSQL

Slide 12

Slide 12 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 12 NewSQL にはどのようなソフトウェアがあるかを知る ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介

Slide 13

Slide 13 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 13 NewSQL にはどのようなソフトウェアがあるかを知る ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介

Slide 14

Slide 14 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 14 NewSQL にはどのようなソフトウェアがあるかを知る ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介 TiDB は主に PingCAP 社によって開発されているオープンソースの NewSQL ソフトウェアです。 MySQL との高い互換性を持っており、従来のリレーショナル構造 に加えて列志向のデータも同時に保持(※)できる点が特徴です。 ※ HTAP(Hybrid Transaction Analytical Processing)

Slide 15

Slide 15 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 15 NewSQL にはどのようなソフトウェアがあるかを知る ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介 YugabyteDB は主に Yugabyte 社によって開発されているオープン ソースの NewSQL ソフトウェアです。 PostgreSQL との互換性を持っており、それに加えて Cassandra と も互換性を持っているのが特徴です。

Slide 16

Slide 16 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 16 NewSQL にはどのようなソフトウェアがあるかを知る ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介 CockroachDB は主に Cockroach Labs によって開発されている オープンソースの NewSQL ソフトウェアです。 YugabyteDB と同じく PostgreSQL との互換性を持っています。 名前の由来はもちろん、しぶとく生きるアレです

Slide 17

Slide 17 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 17 NewSQL にはどのようなソフトウェアがあるかを知る ⭐ 個人的に成熟度が高いと思っている NewSQL を紹介 TiDB YugabyteDB CockroachDB 主な開発元 PingCAP 社 Yugabyte 社 Cockroach Labs GitHub Starの数 34900 8100 27900 Contributorの数 841 378 598 互換性 MySQL PostgreSQL / Cassandra PostgreSQL ストレージレイヤー TiKV(RocksDB) DocDB(RocksDBを改良) Pebble(RocksDBを改良) Kubernetes 対応 tidb-operator Helm Chart yugabyte-operator Helm Chart cockroach-operator Helm Chart マネージドサービス TiDB Cloud YugabyteDB Managed CockroachDB Cloud ※各種数字は資料作成時点での数字です

Slide 18

Slide 18 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 18 実際に NewSQL を動かしてみよう! LET'S RUN NEWSQL

Slide 19

Slide 19 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 19 実際に NewSQL を動かしてみよう! ⭐ 便利なツール tiup を使おう TiDB は tiup というクライアントがあり、tiup を使うことで TiDB のクラス ターを簡単に構築することができます。 簡単な動作確認やちょっと動かしてみたい、そんな場合は「tiup playground」を入力することで手元で動かすことができます。 # tiup ͷΠϯετʔϧ $ curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh # playground ͷىಈ $ tiup playground

Slide 20

Slide 20 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 20 実際に NewSQL を動かしてみよう! ⭐ yugabyted start で起動 YugabyteDB は「yugabyted start」で起動することができます。バイナリ は downloads.yugabyte.com で配布されています。 手元で動かしてみたい、そんな場合は docker で動かすと便利です。 # docker Ͱىಈ͕ศར $ docker run -d --name yugabyte \ -p7000:7000 -p9000:9000 -p5433:5433 -p9042:9042 \ -v ~/yb_data:/home/yugabyte/yb_data \ yugabytedb/yugabyte:latest bin/yugabyted start \ --base_dir=/home/yugabyte/yb_data --daemon=false

Slide 21

Slide 21 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 21 実際に NewSQL を動かしてみよう! ⭐ ブラウザの playground が便利 CockroachDB はブラウザで実行できる playground があるので、動作を見て みたい場合は便利です。 👉 https://www.cockroachlabs.com/docs/interactive-tutorials/sql-playground また、有志が作成した goki を使うことでもお手軽に試す事ができます 👉 https://github.com/kota2and3kan/goki # 5ඖࣂ͍࢝ΊΔ $ goki create -n 5 # 1ඖࡴ͢ $ goki jet -g

Slide 22

Slide 22 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 22 本日のまとめ CONCLUSION

Slide 23

Slide 23 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 23 いまこそ NewSQL を使ってみよう! 本日のまとめ ⭐ NewSQL はイイゾ! データベース運用の時に頭を悩ませる様々な問題は NewSQL を採用することで解決する(かもしれ ない) Cloud Spanner が登場して以来、最近はいろいろな NewSQL が開発されています。MySQL や PostgreSQL との互換性を持っており、置き換えがしやすくなっています。 NewSQL は各ノードが Write と Read をハンドリングできるので、冗長化も簡単 本日紹介したソフトウェアはクラウドネイティブ志向で開発されており、耐障害性に優れていて Kubernetes との相性も良い製品です。是非触ってみてください。 NewSQL を採用してデータベース運用を改善💪してみてはいかがでしょうか

Slide 24

Slide 24 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 24 最後に一言だけ! FINAL WORD!

Slide 25

Slide 25 text

HACKERS CHAMPLOO 2023 | 2023.10.07 | ͍·ͦ͜ NewSQL Λ࢖ͬͯΈΑ͏ʂ | @makocchi !"#$%&'( 25 株式会社サイバーエージェントでは 共に働く人を募集しています 「サイバーエージェント CIU」で今すぐ検索!

Slide 26

Slide 26 text

いまこそNewSQLを使ってみよう! @makocchi HACKERS CHAMPLOO 2023 ご清聴ありがとうございました!