© 2020 - All Rights Reserved 1
Cloud-Native Spring
Microservices with
Distributed SQL Backend
on Kubernetes
Nikhil Chandrappa
Lead Software Engineer
Yugabyte
Tony Vetter
Sr. Product Marketing Manager
VMware
Disclaimer
● This presentation may contain product features or functionality that are currently under
development.
● This overview of new technology represents no commitment from Yugabyte to deliver these
features in any generally available product.
● Features are subject to change, and must not be included in contracts, purchase orders, or sales
agreements of any kind.
● Technical feasibility and market demand will affect final delivery.
● Pricing and packaging for any new features/functionality/technology discussed or presented, have
not been determined.
● The information in this presentation is for informational purposes only and may not be incorporated
into any contract. There is no commitment or obligation to deliver any items presented herein.
Cloud-Native era: Database decisions
NoSQL or SQL?
How do I Scale? More Apps
(Microservices)
Move to Private/Public Cloud
Traditional DBs
3
Databases for Cloud – the hard problem!
Cloud-Native era: Scale and Resiliency
●
●
●
●
What is Distributed SQL?
SQL &
Transactions
SQL
Massive
Scalability
Geo
Distribution
Ultra Resilience
A Revolutionary Database Architecture
Popular Distributed SQL DBs in Public Cloud
Aurora much more popular than Spanner
bit.ly/distributed-sql-deconstructed
Amazon Aurora Google Spanner
A highly available MySQL
and PostgreSQL-compatible
relational database service
Not scalable but HA
All RDBMS features
PostgreSQL & MySQL
The first horizontally scalable,
strongly consistent, relational
database service
Scalable and HA
Missing RDBMS features
New SQL syntax
Google Spanner - Paxos
Ref: https://cloud.google.com/spanner/docs/whitepapers
YugabyteDB - Raft Consensus
node1 node2 node3 node4 … Scale to as many nodes as needed
Raft group leader (serves writes & strong reads)
Raft group follower (serves timeline-consistent reads & ready for leader election)
syscatalog
yb-admin1
YB-Admin Service
Manage shard metadata &
coordinate config changessyscatalog
yb-admin2
syscatalog
yb-admin3
Cluster Administration
Admin clients
…
yb-tserver1
tablet3
tablet2
tablet1
YB-TServer Service
Store & serve app data
in/from tablets (aka shards)
yb-tserver2 yb-tserver3 yb-tserver4
…
tablet4
tablet2
tablet1
…
tablet4
tablet3
tablet1
…
tablet4
tablet3
tablet2
App clients
Distributed SQL API
Distributed
Txn Mgr
Distributed
Txn Mgr
Distributed
Txn Mgr
Distributed
Txn Mgr
Scaling out PostgreSQL for multi region
Client
Apps
Client
Apps
All Data Nodes are Identical
……
SQL
Query Layer
SQL
Query Layer
SQL
Query Layer
DocDB
Storage Layer
DocDB
Storage Layer
DocDB
Storage Layer
Can connect to ANY node
Add/remove nodes anytime
YugabyteDB Node YugabyteDB Node YugabyteDB Node
API
SQL
Query
Spring Framework Support
for distributed SQL
workloads
Spring support for Data Ecosystem
Ref: https://spring.io/projects/spring-data
Cluster Aware JDBC Driver
Cluster Aware JDBC Driver: Scale Up
Cluster Scale Up
DEMO: Cluster aware
driver
Questions?
Join Slack Discussions

Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes

  • 1.
    © 2020 -All Rights Reserved 1 Cloud-Native Spring Microservices with Distributed SQL Backend on Kubernetes Nikhil Chandrappa Lead Software Engineer Yugabyte Tony Vetter Sr. Product Marketing Manager VMware
  • 2.
    Disclaimer ● This presentationmay contain product features or functionality that are currently under development. ● This overview of new technology represents no commitment from Yugabyte to deliver these features in any generally available product. ● Features are subject to change, and must not be included in contracts, purchase orders, or sales agreements of any kind. ● Technical feasibility and market demand will affect final delivery. ● Pricing and packaging for any new features/functionality/technology discussed or presented, have not been determined. ● The information in this presentation is for informational purposes only and may not be incorporated into any contract. There is no commitment or obligation to deliver any items presented herein.
  • 3.
    Cloud-Native era: Databasedecisions NoSQL or SQL? How do I Scale? More Apps (Microservices) Move to Private/Public Cloud Traditional DBs 3
  • 4.
    Databases for Cloud– the hard problem!
  • 5.
    Cloud-Native era: Scaleand Resiliency ● ● ● ●
  • 6.
    What is DistributedSQL? SQL & Transactions SQL Massive Scalability Geo Distribution Ultra Resilience A Revolutionary Database Architecture
  • 7.
    Popular Distributed SQLDBs in Public Cloud Aurora much more popular than Spanner bit.ly/distributed-sql-deconstructed Amazon Aurora Google Spanner A highly available MySQL and PostgreSQL-compatible relational database service Not scalable but HA All RDBMS features PostgreSQL & MySQL The first horizontally scalable, strongly consistent, relational database service Scalable and HA Missing RDBMS features New SQL syntax
  • 8.
    Google Spanner -Paxos Ref: https://cloud.google.com/spanner/docs/whitepapers
  • 9.
    YugabyteDB - RaftConsensus node1 node2 node3 node4 … Scale to as many nodes as needed Raft group leader (serves writes & strong reads) Raft group follower (serves timeline-consistent reads & ready for leader election) syscatalog yb-admin1 YB-Admin Service Manage shard metadata & coordinate config changessyscatalog yb-admin2 syscatalog yb-admin3 Cluster Administration Admin clients … yb-tserver1 tablet3 tablet2 tablet1 YB-TServer Service Store & serve app data in/from tablets (aka shards) yb-tserver2 yb-tserver3 yb-tserver4 … tablet4 tablet2 tablet1 … tablet4 tablet3 tablet1 … tablet4 tablet3 tablet2 App clients Distributed SQL API Distributed Txn Mgr Distributed Txn Mgr Distributed Txn Mgr Distributed Txn Mgr
  • 10.
    Scaling out PostgreSQLfor multi region Client Apps Client Apps
  • 11.
    All Data Nodesare Identical …… SQL Query Layer SQL Query Layer SQL Query Layer DocDB Storage Layer DocDB Storage Layer DocDB Storage Layer Can connect to ANY node Add/remove nodes anytime YugabyteDB Node YugabyteDB Node YugabyteDB Node API SQL Query
  • 12.
    Spring Framework Support fordistributed SQL workloads
  • 13.
    Spring support forData Ecosystem Ref: https://spring.io/projects/spring-data
  • 14.
  • 15.
    Cluster Aware JDBCDriver: Scale Up
  • 16.
  • 17.
  • 18.