SlideShare a Scribd company logo
1 of 30
Download to read offline
Steering the Sea Monster:
Integrating Scylla with
Kubernetes
Jesse Haber-Kucharsky, Software engineer, ScyllaDB
Moreno Garcia, Solutions architect, ScyllaDB
WEBINAR
2
Speakers
Jesse Haber-Kucharsky has a strong interest in systems
programming and applying math to solve engineering
problems. He has worked on the software platform for
self-driving cars, NFC drivers for smartphones, and large-scale
distributed storage systems.
Moreno Garcia is a problem solver by talent and trade. He has
worked in IT for 15 years, the last five as a solution architect.
An open source software enthusiast, Moreno loves applying
new technology to solve old problems, and hates acronyms
with a passion.
3
+ Next-generation NoSQL database
+ Drop-in replacement for Cassandra
+ 10X the performance & low tail latency
+ Open source and enterprise editions
+ Founded by the creators of KVM hypervisor
+ HQs: Palo Alto, CA; Herzelia, Israel
About ScyllaDB
What is Kubernetes,
and why?
4
Containers
Isolate application’s resources and its environment in self-contained units.
5
Kubernetes
Automates deploying, scaling, and managing collections of containers
comprising applications.
Formerly an internal service at Google, now open-source and widely
supported.
6
Declarative structure
+ Resources (like Pods and StatefulSets) are described declaratively in YAML
+ The system adjusts itself dynamically to match the specification
7
Pod
+ A logical host
+ Executes (usually) a single container
+ Dynamically bound to a single (virtual) machine in the cluster
+ Ephemeral
8
StatefulSet
+ A specification of many Pods and their PersistentVolumeClaims
+ Assigns Pods dynamically to a static set of persistent identifiers (scylla-0, scylla-1, …)
9
Kubernetes and Scylla
* We’re cool like tha
10
PersistentVolumes
+ Describes storage resources
+ Pods request use of volumes through PersistentVolumeClaims
+ Can be created statically or dynamically based on claims
11
Allocating storage
+ A StorageClass specifies the type of physical storage and the provisioner
+ The built-in Google Kubernetes Engine provisioner can dynamically provision
PersistentVolumes
+ Volumes outlive any particular Pod
12
Checking for readiness
+ A ConfigMap can be used to distribute individual files to Pods
+ ready-probe.sh is invoked by K8s and uses nodetool to check the status
+ lifecycle: preStop: uses nodetool to decommission a node and stream the data back to
the cluster
13
Seeding the cluster
+ New Scylla nodes need to know where to connect to join the cluster
+ DNS records are automatically created for the static names of a StatefulSet
+ No custom code (SeedProvider) in Scylla required!
14
Demo
15
16
Grouping manifests with Helm
+ Helm uses a packaging format called charts. A chart is a collection of files that describe
a related set of Kubernetes resources. A single chart might be used to deploy something
simple, like a memcached pod, or something complex, like a full web app stack with
HTTP servers, databases, caches, and so on.
+ Helm Charts deploy all the kubernetes entities in an ordered fashion wrapping them
together in a RELEASE. In addition to that, you also get versioning control allowing you to
upgrade your release and roll back changes.
Goal
+ Easily spin-up a Scylla cluster on K8s in Google Kubernetes Engine using Helm
+ Dynamically scale the size of the Scylla cluster with new nodes joining automatically
(through DNS)
17
Creating a cluster
+ The K8s install scripts work seamlessly with Google Kubernetes Engine
+ Install the Google Cloud SDK, kubectl and Helm
+ helm install scylladb
18
Getting a Scylla image
+ K8s can pull Docker images from the public Docker Hub
+ We can use the public scylladb/scylla:2.1.3 image unmodified
19
Demo
+ Preview some of the resource YAML files
+ Show the Scylla cluster status
+ Add a new node to the cluster dynamically with Helm upgrade
+ Observe the larger Scylla cluster
+ Remove a node from the cluster dynamically with Helm upgrade
+ Observe the smaller Scylla cluster
+ Remove a node from the cluster dynamically with Helm rollback
+ Observe the smaller Scylla cluster
20
21
helm install scylladb
helm status <releaseName> #Show nodetool status, compare with helm status
helm upgrade --set replicaCount=5, <releaseName> #Show nodetool status
helm upgrade --set replicaCount=4, <releaseName> #Show nodetool status
helm rollback <releaseName> <revision-1>
Demo - commands
Performance
22
23
Scylla AMI vs Docker, Max Write
Throughput
24
Scylla AMI vs Docker Latencies
Targeting 50% of Max Throughput
25
Scylla AMI vs Docker - shards 100% load
Conclusion
26
More details
+ See the full K8s and Helm specification and walk-through at
https://github.com/scylladb/scylla-code-samples
+ A blog post at https://www.scylladb.com/2018/03/29/scylla-kubernetes-overview/
describes some aspects of the code above
27
References
+ Scalable-multi-node Cassandra deployment on Kubernetes
(https://github.com/IBM/Scalable-Cassandra-deployment-on-Kubernetes/blob/master/README.md)
+ Running Kubernetes on Google Compute Engine
(https://kubernetes.io/docs/getting-started-guides/gce/)
+ Example: Deploying Cassandra with Stateful Sets
(https://kubernetes.io/docs/tutorials/stateful-application/cassandra/)
+ Strategies for Running Stateful Workloads in Kubernetes: Pet Sets
(https://thenewstack.io/strategies-running-stateful-applications-kubernetes-pet-sets/)
+ Nice Introduction to Helm by Amy Chen: (https://youtu.be/vQX5nokoqr/)
28
29
Q&A
Stay in touch
Learn more
jhaberku@scylladb.com
@jhaberku
scylladb.com/blog
scylladb-users.slack.com
moreno@scylladb.com
United States
1900 Embarcadero Road
Palo Alto, CA 94303
Israel
11 Galgalei Haplada
Herzelia, Israel
www.scylladb.com
@scylladb
THANK YOU

More Related Content

What's hot

Introducing Project Alternator - Scylla’s Open-Source DynamoDB-compatible API
Introducing Project Alternator - Scylla’s Open-Source DynamoDB-compatible APIIntroducing Project Alternator - Scylla’s Open-Source DynamoDB-compatible API
Introducing Project Alternator - Scylla’s Open-Source DynamoDB-compatible API
ScyllaDB
 

What's hot (20)

Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...
Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...
Numberly on Joining Billions of Rows in Seconds: Replacing MongoDB and Hive w...
 
Wide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data ModelingWide Column Store NoSQL vs SQL Data Modeling
Wide Column Store NoSQL vs SQL Data Modeling
 
Keeping your application’s latency SLAs no matter what
Keeping your application’s latency SLAs no matter whatKeeping your application’s latency SLAs no matter what
Keeping your application’s latency SLAs no matter what
 
WEBINAR - Introducing Scylla Open Source 3.0: Materialized Views, Secondary I...
WEBINAR - Introducing Scylla Open Source 3.0: Materialized Views, Secondary I...WEBINAR - Introducing Scylla Open Source 3.0: Materialized Views, Secondary I...
WEBINAR - Introducing Scylla Open Source 3.0: Materialized Views, Secondary I...
 
Database Jiu Jitsu: How ScyllaDB Open Sourced a DynamoDB-compatible API
Database Jiu Jitsu: How ScyllaDB Open Sourced a DynamoDB-compatible APIDatabase Jiu Jitsu: How ScyllaDB Open Sourced a DynamoDB-compatible API
Database Jiu Jitsu: How ScyllaDB Open Sourced a DynamoDB-compatible API
 
Scylla Virtual Workshop 2020
Scylla Virtual Workshop 2020Scylla Virtual Workshop 2020
Scylla Virtual Workshop 2020
 
Introducing Project Alternator - Scylla’s Open-Source DynamoDB-compatible API
Introducing Project Alternator - Scylla’s Open-Source DynamoDB-compatible APIIntroducing Project Alternator - Scylla’s Open-Source DynamoDB-compatible API
Introducing Project Alternator - Scylla’s Open-Source DynamoDB-compatible API
 
Demystifying the Distributed Database Landscape
Demystifying the Distributed Database LandscapeDemystifying the Distributed Database Landscape
Demystifying the Distributed Database Landscape
 
How to Build a Scylla Database Cluster that Fits Your Needs
How to Build a Scylla Database Cluster that Fits Your NeedsHow to Build a Scylla Database Cluster that Fits Your Needs
How to Build a Scylla Database Cluster that Fits Your Needs
 
Scylla Summit 2018: Keynote - 4 Years of Scylla
Scylla Summit 2018: Keynote - 4 Years of ScyllaScylla Summit 2018: Keynote - 4 Years of Scylla
Scylla Summit 2018: Keynote - 4 Years of Scylla
 
Critical Attributes for a High-Performance, Low-Latency Database
Critical Attributes for a High-Performance, Low-Latency DatabaseCritical Attributes for a High-Performance, Low-Latency Database
Critical Attributes for a High-Performance, Low-Latency Database
 
Scylla Summit 2018: Getting the Most Out of Scylla on Kubernetes
Scylla Summit 2018: Getting the Most Out of Scylla on KubernetesScylla Summit 2018: Getting the Most Out of Scylla on Kubernetes
Scylla Summit 2018: Getting the Most Out of Scylla on Kubernetes
 
Workshop - How to benchmark your database
Workshop - How to benchmark your databaseWorkshop - How to benchmark your database
Workshop - How to benchmark your database
 
Scylla Summit 2018: Adventures in AdTech: Processing 50 Billion User Profiles...
Scylla Summit 2018: Adventures in AdTech: Processing 50 Billion User Profiles...Scylla Summit 2018: Adventures in AdTech: Processing 50 Billion User Profiles...
Scylla Summit 2018: Adventures in AdTech: Processing 50 Billion User Profiles...
 
Running Scylla on Kubernetes with Scylla Operator
Running Scylla on Kubernetes with Scylla OperatorRunning Scylla on Kubernetes with Scylla Operator
Running Scylla on Kubernetes with Scylla Operator
 
The True Cost of NoSQL DBaaS Options
The True Cost of NoSQL DBaaS OptionsThe True Cost of NoSQL DBaaS Options
The True Cost of NoSQL DBaaS Options
 
Measuring Database Performance on Bare Metal AWS Instances
Measuring Database Performance on Bare Metal AWS InstancesMeasuring Database Performance on Bare Metal AWS Instances
Measuring Database Performance on Bare Metal AWS Instances
 
Lightweight Transactions in Scylla versus Apache Cassandra
Lightweight Transactions in Scylla versus Apache CassandraLightweight Transactions in Scylla versus Apache Cassandra
Lightweight Transactions in Scylla versus Apache Cassandra
 
Cassandra vs. ScyllaDB: Evolutionary Differences
Cassandra vs. ScyllaDB: Evolutionary DifferencesCassandra vs. ScyllaDB: Evolutionary Differences
Cassandra vs. ScyllaDB: Evolutionary Differences
 
GPS Insight on Using Presto with Scylla for Data Analytics and Data Archival
GPS Insight on Using Presto with Scylla for Data Analytics and Data ArchivalGPS Insight on Using Presto with Scylla for Data Analytics and Data Archival
GPS Insight on Using Presto with Scylla for Data Analytics and Data Archival
 

Similar to Steering the Sea Monster - Integrating Scylla with Kubernetes

Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Michael Hofmann
 

Similar to Steering the Sea Monster - Integrating Scylla with Kubernetes (20)

Running a Cost-Effective DynamoDB-Compatible Database on Managed Kubernetes S...
Running a Cost-Effective DynamoDB-Compatible Database on Managed Kubernetes S...Running a Cost-Effective DynamoDB-Compatible Database on Managed Kubernetes S...
Running a Cost-Effective DynamoDB-Compatible Database on Managed Kubernetes S...
 
Practical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environmentsPractical guide to Oracle Virtual environments
Practical guide to Oracle Virtual environments
 
Running a DynamoDB-compatible Database on Managed Kubernetes Services
Running a DynamoDB-compatible Database on Managed Kubernetes ServicesRunning a DynamoDB-compatible Database on Managed Kubernetes Services
Running a DynamoDB-compatible Database on Managed Kubernetes Services
 
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
Salvatore Incandela, Fabio Marinelli - Using Spinnaker to Create a Developmen...
 
Kubernetes extensibility
Kubernetes extensibilityKubernetes extensibility
Kubernetes extensibility
 
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
Developer Experience Cloud Native - From Code Gen to Git Commit without a CI/...
 
K8s from Zero to ~Hero~ Seasoned Beginner
K8s from Zero to ~Hero~ Seasoned BeginnerK8s from Zero to ~Hero~ Seasoned Beginner
K8s from Zero to ~Hero~ Seasoned Beginner
 
Deploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and HelmDeploying Windows Apps to Kubernetes with Draft and Helm
Deploying Windows Apps to Kubernetes with Draft and Helm
 
Webinar: How to build a highly available time series solution with KairosDB
Webinar: How to build a highly available time series solution with KairosDBWebinar: How to build a highly available time series solution with KairosDB
Webinar: How to build a highly available time series solution with KairosDB
 
Getting started with google kubernetes engine
Getting started with google kubernetes engineGetting started with google kubernetes engine
Getting started with google kubernetes engine
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Cloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit KubernetesCloud-native .NET Microservices mit Kubernetes
Cloud-native .NET Microservices mit Kubernetes
 
Successful K8S Platforms in Airgapped Environments
Successful K8S Platforms in Airgapped EnvironmentsSuccessful K8S Platforms in Airgapped Environments
Successful K8S Platforms in Airgapped Environments
 
Kubernetes
KubernetesKubernetes
Kubernetes
 
MySQL on Docker and Kubernetes
MySQL on Docker and KubernetesMySQL on Docker and Kubernetes
MySQL on Docker and Kubernetes
 
Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple Effective Building your Platform with Kubernetes == Keep it Simple
Effective Building your Platform with Kubernetes == Keep it Simple
 
Data relay introduction to big data clusters
Data relay introduction to big data clustersData relay introduction to big data clusters
Data relay introduction to big data clusters
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
 
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes MeetupMetal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
Metal-k8s presentation by Julien Girardin @ Paris Kubernetes Meetup
 
Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...Mattia Gandolfi - Improving utilization and portability with Containers and C...
Mattia Gandolfi - Improving utilization and portability with Containers and C...
 

More from ScyllaDB

More from ScyllaDB (20)

Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What Developers Need to Unlearn for High Performance NoSQL
What Developers Need to Unlearn for High Performance NoSQLWhat Developers Need to Unlearn for High Performance NoSQL
What Developers Need to Unlearn for High Performance NoSQL
 
Low Latency at Extreme Scale: Proven Practices & Pitfalls
Low Latency at Extreme Scale: Proven Practices & PitfallsLow Latency at Extreme Scale: Proven Practices & Pitfalls
Low Latency at Extreme Scale: Proven Practices & Pitfalls
 
Dissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance DilemmasDissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance Dilemmas
 
Beyond Linear Scaling: A New Path for Performance with ScyllaDB
Beyond Linear Scaling: A New Path for Performance with ScyllaDBBeyond Linear Scaling: A New Path for Performance with ScyllaDB
Beyond Linear Scaling: A New Path for Performance with ScyllaDB
 
Dissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance DilemmasDissecting Real-World Database Performance Dilemmas
Dissecting Real-World Database Performance Dilemmas
 
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
Database Performance at Scale Masterclass: Workload Characteristics by Felipe...
 
Database Performance at Scale Masterclass: Database Internals by Pavel Emelya...
Database Performance at Scale Masterclass: Database Internals by Pavel Emelya...Database Performance at Scale Masterclass: Database Internals by Pavel Emelya...
Database Performance at Scale Masterclass: Database Internals by Pavel Emelya...
 
Database Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
Database Performance at Scale Masterclass: Driver Strategies by Piotr SarnaDatabase Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
Database Performance at Scale Masterclass: Driver Strategies by Piotr Sarna
 
Replacing Your Cache with ScyllaDB
Replacing Your Cache with ScyllaDBReplacing Your Cache with ScyllaDB
Replacing Your Cache with ScyllaDB
 
Powering Real-Time Apps with ScyllaDB_ Low Latency & Linear Scalability
Powering Real-Time Apps with ScyllaDB_ Low Latency & Linear ScalabilityPowering Real-Time Apps with ScyllaDB_ Low Latency & Linear Scalability
Powering Real-Time Apps with ScyllaDB_ Low Latency & Linear Scalability
 
7 Reasons Not to Put an External Cache in Front of Your Database.pptx
7 Reasons Not to Put an External Cache in Front of Your Database.pptx7 Reasons Not to Put an External Cache in Front of Your Database.pptx
7 Reasons Not to Put an External Cache in Front of Your Database.pptx
 
Getting the most out of ScyllaDB
Getting the most out of ScyllaDBGetting the most out of ScyllaDB
Getting the most out of ScyllaDB
 
NoSQL Database Migration Masterclass - Session 2: The Anatomy of a Migration
NoSQL Database Migration Masterclass - Session 2: The Anatomy of a MigrationNoSQL Database Migration Masterclass - Session 2: The Anatomy of a Migration
NoSQL Database Migration Masterclass - Session 2: The Anatomy of a Migration
 
NoSQL Database Migration Masterclass - Session 3: Migration Logistics
NoSQL Database Migration Masterclass - Session 3: Migration LogisticsNoSQL Database Migration Masterclass - Session 3: Migration Logistics
NoSQL Database Migration Masterclass - Session 3: Migration Logistics
 
NoSQL Data Migration Masterclass - Session 1 Migration Strategies and Challenges
NoSQL Data Migration Masterclass - Session 1 Migration Strategies and ChallengesNoSQL Data Migration Masterclass - Session 1 Migration Strategies and Challenges
NoSQL Data Migration Masterclass - Session 1 Migration Strategies and Challenges
 
ScyllaDB Virtual Workshop
ScyllaDB Virtual WorkshopScyllaDB Virtual Workshop
ScyllaDB Virtual Workshop
 
DBaaS in the Real World: Risks, Rewards & Tradeoffs
DBaaS in the Real World: Risks, Rewards & TradeoffsDBaaS in the Real World: Risks, Rewards & Tradeoffs
DBaaS in the Real World: Risks, Rewards & Tradeoffs
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDB
 
NoSQL Data Modeling 101
NoSQL Data Modeling 101NoSQL Data Modeling 101
NoSQL Data Modeling 101
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Recently uploaded (20)

Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 

Steering the Sea Monster - Integrating Scylla with Kubernetes

  • 1. Steering the Sea Monster: Integrating Scylla with Kubernetes Jesse Haber-Kucharsky, Software engineer, ScyllaDB Moreno Garcia, Solutions architect, ScyllaDB WEBINAR
  • 2. 2 Speakers Jesse Haber-Kucharsky has a strong interest in systems programming and applying math to solve engineering problems. He has worked on the software platform for self-driving cars, NFC drivers for smartphones, and large-scale distributed storage systems. Moreno Garcia is a problem solver by talent and trade. He has worked in IT for 15 years, the last five as a solution architect. An open source software enthusiast, Moreno loves applying new technology to solve old problems, and hates acronyms with a passion.
  • 3. 3 + Next-generation NoSQL database + Drop-in replacement for Cassandra + 10X the performance & low tail latency + Open source and enterprise editions + Founded by the creators of KVM hypervisor + HQs: Palo Alto, CA; Herzelia, Israel About ScyllaDB
  • 5. Containers Isolate application’s resources and its environment in self-contained units. 5
  • 6. Kubernetes Automates deploying, scaling, and managing collections of containers comprising applications. Formerly an internal service at Google, now open-source and widely supported. 6
  • 7. Declarative structure + Resources (like Pods and StatefulSets) are described declaratively in YAML + The system adjusts itself dynamically to match the specification 7
  • 8. Pod + A logical host + Executes (usually) a single container + Dynamically bound to a single (virtual) machine in the cluster + Ephemeral 8
  • 9. StatefulSet + A specification of many Pods and their PersistentVolumeClaims + Assigns Pods dynamically to a static set of persistent identifiers (scylla-0, scylla-1, …) 9
  • 10. Kubernetes and Scylla * We’re cool like tha 10
  • 11. PersistentVolumes + Describes storage resources + Pods request use of volumes through PersistentVolumeClaims + Can be created statically or dynamically based on claims 11
  • 12. Allocating storage + A StorageClass specifies the type of physical storage and the provisioner + The built-in Google Kubernetes Engine provisioner can dynamically provision PersistentVolumes + Volumes outlive any particular Pod 12
  • 13. Checking for readiness + A ConfigMap can be used to distribute individual files to Pods + ready-probe.sh is invoked by K8s and uses nodetool to check the status + lifecycle: preStop: uses nodetool to decommission a node and stream the data back to the cluster 13
  • 14. Seeding the cluster + New Scylla nodes need to know where to connect to join the cluster + DNS records are automatically created for the static names of a StatefulSet + No custom code (SeedProvider) in Scylla required! 14
  • 16. 16 Grouping manifests with Helm + Helm uses a packaging format called charts. A chart is a collection of files that describe a related set of Kubernetes resources. A single chart might be used to deploy something simple, like a memcached pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on. + Helm Charts deploy all the kubernetes entities in an ordered fashion wrapping them together in a RELEASE. In addition to that, you also get versioning control allowing you to upgrade your release and roll back changes.
  • 17. Goal + Easily spin-up a Scylla cluster on K8s in Google Kubernetes Engine using Helm + Dynamically scale the size of the Scylla cluster with new nodes joining automatically (through DNS) 17
  • 18. Creating a cluster + The K8s install scripts work seamlessly with Google Kubernetes Engine + Install the Google Cloud SDK, kubectl and Helm + helm install scylladb 18
  • 19. Getting a Scylla image + K8s can pull Docker images from the public Docker Hub + We can use the public scylladb/scylla:2.1.3 image unmodified 19
  • 20. Demo + Preview some of the resource YAML files + Show the Scylla cluster status + Add a new node to the cluster dynamically with Helm upgrade + Observe the larger Scylla cluster + Remove a node from the cluster dynamically with Helm upgrade + Observe the smaller Scylla cluster + Remove a node from the cluster dynamically with Helm rollback + Observe the smaller Scylla cluster 20
  • 21. 21 helm install scylladb helm status <releaseName> #Show nodetool status, compare with helm status helm upgrade --set replicaCount=5, <releaseName> #Show nodetool status helm upgrade --set replicaCount=4, <releaseName> #Show nodetool status helm rollback <releaseName> <revision-1> Demo - commands
  • 23. 23 Scylla AMI vs Docker, Max Write Throughput
  • 24. 24 Scylla AMI vs Docker Latencies Targeting 50% of Max Throughput
  • 25. 25 Scylla AMI vs Docker - shards 100% load
  • 27. More details + See the full K8s and Helm specification and walk-through at https://github.com/scylladb/scylla-code-samples + A blog post at https://www.scylladb.com/2018/03/29/scylla-kubernetes-overview/ describes some aspects of the code above 27
  • 28. References + Scalable-multi-node Cassandra deployment on Kubernetes (https://github.com/IBM/Scalable-Cassandra-deployment-on-Kubernetes/blob/master/README.md) + Running Kubernetes on Google Compute Engine (https://kubernetes.io/docs/getting-started-guides/gce/) + Example: Deploying Cassandra with Stateful Sets (https://kubernetes.io/docs/tutorials/stateful-application/cassandra/) + Strategies for Running Stateful Workloads in Kubernetes: Pet Sets (https://thenewstack.io/strategies-running-stateful-applications-kubernetes-pet-sets/) + Nice Introduction to Helm by Amy Chen: (https://youtu.be/vQX5nokoqr/) 28
  • 29. 29 Q&A Stay in touch Learn more jhaberku@scylladb.com @jhaberku scylladb.com/blog scylladb-users.slack.com moreno@scylladb.com
  • 30. United States 1900 Embarcadero Road Palo Alto, CA 94303 Israel 11 Galgalei Haplada Herzelia, Israel www.scylladb.com @scylladb THANK YOU