SlideShare a Scribd company logo
1 of 40
Cassandra @ T-Mobile
Josh Turner, October 9th, 2019
©2019, T-MobileUSA, Inc.
22 ©2019, T-MobileUSA, Inc.
The views and opinion expressed during this presentation are those
of the presenter, Josh Turner, as a private individual, and do not
necessarily reflect the official policy or position of T-Mobile USA, Inc.
CASQUATCH is open-sourced under the terms of the Apache 2.0
license and is released AS-IS WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND pursuant to Section 7 of the Apache 2.0
license.
T-Mobile USA, Inc. makes no representations or warranties of any
kind concerning the suitability and compatibility of CASQUATCH with
end user equipment.
Disclaimer
3
 Setting The Stage
 Story Time
 Break It Down
 Let’s Talk
Our Talk Today
©2019, T-MobileUSA, Inc.
4
Setting The Stage
©2019, T-MobileUSA, Inc.
©2019, T-Mobile USA, Inc.
66 ©2019, T-MobileUSA, Inc.
77 ©2019, T-MobileUSA, Inc.
8©2019, T-MobileUSA, Inc.
/turnerjosh /tdl-
jturner
9
Story Time
©2019, T-MobileUSA, Inc.
1010 ©2019, T-MobileUSA, Inc.
1111 ©2019, T-MobileUSA, Inc.This Photo by Unknown Author is licensed
1212 ©2019, T-MobileUSA, Inc.
1313 ©2019, T-MobileUSA, Inc.
1414 ©2019, T-MobileUSA, Inc.
1515 ©2019, T-MobileUSA, Inc.
1616 ©2019, T-MobileUSA, Inc.This Photo by Unknown Author is licensed under CC BY-SA
1717 ©2019, T-MobileUSA, Inc.This Photo by Unknown Author is licensed under CC BY-SA
1818 ©2019, T-MobileUSA, Inc.This Photo by Unknown Author is licensed under CC BY-ND
1919 ©2019, T-MobileUSA, Inc.
2020 ©2019, T-MobileUSA, Inc.This Photo by Unknown Author is licensed under CC BY-SA-NC
2121 ©2019, T-MobileUSA, Inc.
22©2019, T-MobileUSA, Inc.
23©2019, T-MobileUSA, Inc.
+ =
ThisPhoto by Unknown Authorislicensedunder CC BY-NC
24©2019, T-MobileUSA, Inc.
+ =
ThisPhoto by Unknown Authorislicensedunder CC BY-NC
2525 ©2019, T-MobileUSA, Inc.
26
Break It Down
©2019, T-MobileUSA, Inc.
2727 ©2019, T-MobileUSA, Inc.
Cassandra
SparkSolr
Components
28©2019, T-MobileUSA, Inc.
Cassandra
SparkSolr
DataCenters
Cassandra
SparkSolr
2929 ©2019, T-MobileUSA, Inc.
Replication Factor
1
23
3030 ©2019, T-MobileUSA, Inc.
Availability
Consistency
Availability vs Consistency
3131 ©2019, T-MobileUSA, Inc.
App1
App2
App3
Multitenant
3232 ©2019, T-MobileUSA, Inc.
Customer
Best
Practices
Data
Models
Cassandra
Training
33©2019, T-MobileUSA, Inc.
Configuration
Management
Monitoring
Deployment
Alarming
34©2019, T-MobileUSA, Inc.
Schema
Changes
Data Fixes
CQL
New
Keyspaces
3535 ©2019, T-MobileUSA, Inc.
C*
DAO
Service
A
Service
B
Service
N
Load
Balance
r
Architecture
3636 ©2019, T-MobileUSA, Inc.
Casquatch
github.com/tmobile/casquatch
This Photo by Jim Fischer is licensed under CC-BY
3737 ©2019, T-MobileUSA, Inc.
CasquatchArchitecture
Java Application
DSE
Drive
r
Cassandra
Casquatch
POJ
Os
Query
Mapping
38
Demo Time
©2019, T-MobileUSA, Inc.
ClosingSlides
LET’S
TALK
40
We’re Hiring!
Josh.Turner131@t-mobile.com
©2019, T-MobileUSA, Inc.

More Related Content

Similar to Cassandra @ T-Mobile

Omni.Pro - eCommerce Day Panamá 2019
Omni.Pro - eCommerce Day Panamá 2019Omni.Pro - eCommerce Day Panamá 2019
Omni.Pro - eCommerce Day Panamá 2019eCommerce Institute
 
Digital transformation for local news - SVC220 - New York AWS Summit
Digital transformation for local news - SVC220 - New York AWS SummitDigital transformation for local news - SVC220 - New York AWS Summit
Digital transformation for local news - SVC220 - New York AWS SummitAmazon Web Services
 
Introduction to SHAKEN/STIR
Introduction to SHAKEN/STIRIntroduction to SHAKEN/STIR
Introduction to SHAKEN/STIRKelley Robinson
 
Mobile App Security Predictions 2019
Mobile App Security Predictions 2019Mobile App Security Predictions 2019
Mobile App Security Predictions 2019NowSecure
 
Final hh - 18.10.4 - johnstown 5 g evo release
Final   hh - 18.10.4 - johnstown 5 g evo releaseFinal   hh - 18.10.4 - johnstown 5 g evo release
Final hh - 18.10.4 - johnstown 5 g evo releaseHollyHworth
 
Final hh - 18.10.4 - dayton hamilton springfield 5 g evo release
Final   hh - 18.10.4 - dayton hamilton springfield 5 g evo releaseFinal   hh - 18.10.4 - dayton hamilton springfield 5 g evo release
Final hh - 18.10.4 - dayton hamilton springfield 5 g evo releaseHollyHworth
 
Incubeta Ignite: Am I a Bad Person?
Incubeta Ignite: Am I a Bad Person?Incubeta Ignite: Am I a Bad Person?
Incubeta Ignite: Am I a Bad Person?Incubeta NMPi
 
Blackhat - Do you trust your Threat Intelligence
Blackhat - Do you trust your Threat IntelligenceBlackhat - Do you trust your Threat Intelligence
Blackhat - Do you trust your Threat IntelligenceChristopher Doman
 
Expert tips for successful Kubernetes deployments on AWS - MAD305 - São Paulo...
Expert tips for successful Kubernetes deployments on AWS - MAD305 - São Paulo...Expert tips for successful Kubernetes deployments on AWS - MAD305 - São Paulo...
Expert tips for successful Kubernetes deployments on AWS - MAD305 - São Paulo...Amazon Web Services
 
Final hh - 16.2.5 - youngstown area 2015 enhancements release
Final   hh - 16.2.5 - youngstown area 2015 enhancements releaseFinal   hh - 16.2.5 - youngstown area 2015 enhancements release
Final hh - 16.2.5 - youngstown area 2015 enhancements releasehmhollingsworth
 
Autopilot workshop for Brazil Hackathon 4/2020
Autopilot workshop for Brazil Hackathon 4/2020Autopilot workshop for Brazil Hackathon 4/2020
Autopilot workshop for Brazil Hackathon 4/2020Elizabeth (Lizzie) Siegle
 
Final hh - 16.2.3 - cuyahoga county 2015 enhancements release
Final   hh - 16.2.3 - cuyahoga county 2015 enhancements releaseFinal   hh - 16.2.3 - cuyahoga county 2015 enhancements release
Final hh - 16.2.3 - cuyahoga county 2015 enhancements releasehmhollingsworth
 
Final hh - 16.2.3 - revision2 summit county 2015 enhancements release
Final   hh - 16.2.3 - revision2 summit county 2015 enhancements releaseFinal   hh - 16.2.3 - revision2 summit county 2015 enhancements release
Final hh - 16.2.3 - revision2 summit county 2015 enhancements releasehmhollingsworth
 
Final hh - 16.2.2 - revision2 warren county 2015 enhancements release
Final   hh - 16.2.2 - revision2 warren county 2015 enhancements releaseFinal   hh - 16.2.2 - revision2 warren county 2015 enhancements release
Final hh - 16.2.2 - revision2 warren county 2015 enhancements releasehmhollingsworth
 
Final hh - 16.2.2 - revised hamilton county 2015 enhancements release
Final   hh - 16.2.2 - revised hamilton county 2015 enhancements releaseFinal   hh - 16.2.2 - revised hamilton county 2015 enhancements release
Final hh - 16.2.2 - revised hamilton county 2015 enhancements releasehmhollingsworth
 
Final hh - 17.1.23 - erie lorain medina counties 2016 enhancements release
Final   hh - 17.1.23 - erie lorain medina counties 2016 enhancements releaseFinal   hh - 17.1.23 - erie lorain medina counties 2016 enhancements release
Final hh - 17.1.23 - erie lorain medina counties 2016 enhancements releasehmhollingsworth
 

Similar to Cassandra @ T-Mobile (20)

Omni.Pro - eCommerce Day Panamá 2019
Omni.Pro - eCommerce Day Panamá 2019Omni.Pro - eCommerce Day Panamá 2019
Omni.Pro - eCommerce Day Panamá 2019
 
Digital transformation for local news - SVC220 - New York AWS Summit
Digital transformation for local news - SVC220 - New York AWS SummitDigital transformation for local news - SVC220 - New York AWS Summit
Digital transformation for local news - SVC220 - New York AWS Summit
 
Introduction to SHAKEN/STIR
Introduction to SHAKEN/STIRIntroduction to SHAKEN/STIR
Introduction to SHAKEN/STIR
 
Upgrade kit
Upgrade kitUpgrade kit
Upgrade kit
 
Mobile App Security Predictions 2019
Mobile App Security Predictions 2019Mobile App Security Predictions 2019
Mobile App Security Predictions 2019
 
Final hh - 18.10.4 - johnstown 5 g evo release
Final   hh - 18.10.4 - johnstown 5 g evo releaseFinal   hh - 18.10.4 - johnstown 5 g evo release
Final hh - 18.10.4 - johnstown 5 g evo release
 
Final hh - 18.10.4 - dayton hamilton springfield 5 g evo release
Final   hh - 18.10.4 - dayton hamilton springfield 5 g evo releaseFinal   hh - 18.10.4 - dayton hamilton springfield 5 g evo release
Final hh - 18.10.4 - dayton hamilton springfield 5 g evo release
 
Incubeta Ignite: Am I a Bad Person?
Incubeta Ignite: Am I a Bad Person?Incubeta Ignite: Am I a Bad Person?
Incubeta Ignite: Am I a Bad Person?
 
Blackhat - Do you trust your Threat Intelligence
Blackhat - Do you trust your Threat IntelligenceBlackhat - Do you trust your Threat Intelligence
Blackhat - Do you trust your Threat Intelligence
 
Expert tips for successful Kubernetes deployments on AWS - MAD305 - São Paulo...
Expert tips for successful Kubernetes deployments on AWS - MAD305 - São Paulo...Expert tips for successful Kubernetes deployments on AWS - MAD305 - São Paulo...
Expert tips for successful Kubernetes deployments on AWS - MAD305 - São Paulo...
 
Final hh - 16.2.5 - youngstown area 2015 enhancements release
Final   hh - 16.2.5 - youngstown area 2015 enhancements releaseFinal   hh - 16.2.5 - youngstown area 2015 enhancements release
Final hh - 16.2.5 - youngstown area 2015 enhancements release
 
プロシージャル技法による背景の自動生成 『1,000の和室
プロシージャル技法による背景の自動生成 『1,000の和室プロシージャル技法による背景の自動生成 『1,000の和室
プロシージャル技法による背景の自動生成 『1,000の和室
 
Autopilot workshop for Brazil Hackathon 4/2020
Autopilot workshop for Brazil Hackathon 4/2020Autopilot workshop for Brazil Hackathon 4/2020
Autopilot workshop for Brazil Hackathon 4/2020
 
Final hh - 16.2.3 - cuyahoga county 2015 enhancements release
Final   hh - 16.2.3 - cuyahoga county 2015 enhancements releaseFinal   hh - 16.2.3 - cuyahoga county 2015 enhancements release
Final hh - 16.2.3 - cuyahoga county 2015 enhancements release
 
Cape cod evo
Cape cod evoCape cod evo
Cape cod evo
 
Final hh - 16.2.3 - revision2 summit county 2015 enhancements release
Final   hh - 16.2.3 - revision2 summit county 2015 enhancements releaseFinal   hh - 16.2.3 - revision2 summit county 2015 enhancements release
Final hh - 16.2.3 - revision2 summit county 2015 enhancements release
 
Final hh - 16.2.2 - revision2 warren county 2015 enhancements release
Final   hh - 16.2.2 - revision2 warren county 2015 enhancements releaseFinal   hh - 16.2.2 - revision2 warren county 2015 enhancements release
Final hh - 16.2.2 - revision2 warren county 2015 enhancements release
 
Final hh - 16.2.2 - revised hamilton county 2015 enhancements release
Final   hh - 16.2.2 - revised hamilton county 2015 enhancements releaseFinal   hh - 16.2.2 - revised hamilton county 2015 enhancements release
Final hh - 16.2.2 - revised hamilton county 2015 enhancements release
 
Worcester evo
Worcester evoWorcester evo
Worcester evo
 
Final hh - 17.1.23 - erie lorain medina counties 2016 enhancements release
Final   hh - 17.1.23 - erie lorain medina counties 2016 enhancements releaseFinal   hh - 17.1.23 - erie lorain medina counties 2016 enhancements release
Final hh - 17.1.23 - erie lorain medina counties 2016 enhancements release
 

Recently uploaded

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 

Cassandra @ T-Mobile

Editor's Notes

  1. We are going to start with a Story Time with some pictures and run through a high level of how we got to Cassandra.
  2. T-Mobile is the fastest growing US Wireless carrier. Based in Bellevue WA. Serving approximately 79.7 million customers. With approximately 52000 employees. (numbers from fact sheet - https://www.t-mobile.com/content/t-mobile/corporate/news/media-library/details.html/content/dam/t-mobile/corporate/media-library/© 2019, T-Mobile USA, Inc./documents/TMUS-Fact-Sheet-03282019.pdf?a=b) We are also Magenta and you will see much of this throughout the slide presentation.
  3. Apache Cassandra is a Distributed, wide column store, eventually consistent NoSQL Database. - Masterless Architecture - Tunable Consistency / AP Design Query Language : CQL Heavily redundant / resilient Near real time replication Linear scalability hardware and very high uptime.
  4. DataStax is the software company that delivers DataStax Enterprise on top of Apache Cassandra to provide enterprise support and some extra magic.
  5. Me! I’m a Principal Engineer at T-Mobile with the Distributed Data Systems team within T-Mobile Engineering T-Mobile Engineering builds many of the widgets on and behind the phones. Including things like Activations and eSim functionality.
  6. Now that the stage is set, let’s begin our story of how we got to Cassandra. Later we will get down to some more technical aspects of our environment.
  7. Running single instance oracle servers Using Goldengate and standby servers for some services Discuss a bit about our layout without feedback
  8. The teams got together. Studies were done. Decisions were made. Oracle DBs were slow to build, hard to maintain, and lacked redundancy Manual Failovers We needed an always on solution, distributed over multiple datacenters, near real time replication
  9. This is where Cassandra came in. On paper this was great and wonderful. Always on, real time replication, globally distributed. Scalable. Fast. Everything we wanted.
  10. Selected DataStax for Enterprise Support We will end up using advanced features but will come back to that
  11. Here is where we seem to differ from most customers Everyone is doing cloud these days Easy to spin up, Easy to deploy
  12. No Cloud Sorry not an option We have our own data centers and bare metal
  13. We need a huge pile of metal Note: Picture is from the internet and not even the same type. This is just an illustration.
  14. Make that multiple huge piles of metal as we have multiple physical data centers Capacity Planning was done Hardware specs defined Servers were acquired This step took some time… Eventually we had servers with operating systems and could start installing the databases Note: Picture is from the internet and not even the same type. This is just an illustration
  15. Let’s take a moment to talk about networking. This was our first big roadblock. At T-Mobile we have 3 networks that come in to play for these servers. © 2019, T-Mobile USA, Inc., Private, and Management. Cassandra works very well with a single IP and even supports 2 fairly well but 3 was a special mix. We needed application traffic on the © 2019, T-Mobile USA, Inc.. Nodes to talk to each other on the private. Admin CQL Access, Shell, and OpsCenter all on Management. In Cassandra terms this ended up taking a lot of fiddling with listen_address, broadcast_address, native_transport_address, rpc_address. OpsCenter was a little more painful and resulted in a bug that we reported and DataStax fixed as we do not allow Shell access from the broadcast address.
  16. I have a CQL Prompt! We have a database across multiple data centers and it is ready for our data.
  17. Submitted configuration for review by DataStax. … They had a few suggestions. One major change was adjusting the num_tokens parameter. This parameter controls the number of vnodes in the cluster but unfortunately can only be changed by rebuilding. So we burned it down and started over.
  18. I have a CQL Prompt Again!! Everything was running again but this won’t be the last.
  19. - Now that we have a DB, our developers can get to work - For this we selected Spring and specifically Spring Data – Spring is a framework for Java which simplifies much of the development flow. Spring boot is a layer on top of Spring which follows a Convention-Over-Configuration methodology meaning basically you only code the unique bits and leave the defaults where they apply. This leads to code being very abstracted but significantly simpler and faster to deploy.
  20. Cassandra + Spring = Happy developers
  21. - Not so happy. Out of the box Spring Data Cassandra has many issues as it is unconfigured and all based on defaults Problems… Excessive Tombstones Overuse of batches Wide partition scans Lead to development of Casquatch which I’ll come back to later
  22. Moving from Relational to Non Relational has a big learning curve especially when you have to abandon an old mindset for a new. Easy for new developers but harder for the experienced. Training. Lots of training. We were able to partner with DataStax to get some fantastic resources for workshops and office hours. More on these later. Our biggest success was by doing wide trainings but cultivating an expert in each group. Train the trainer if you will.
  23. Now we will talk a bit more details about our environment and tools used.
  24. There are 3 main components / Workloads Cassandra – Core Traffic Solr ™ – Search Traffic Spark ™ – Analytics We split these out into different logical datacenters to segregate the workloads
  25. Each Data Center has a complete set of each set of logical DCs to support failover
  26. Let’s talk about Replication Factor Best practice is 3 replicas with Local Quorum True for Cassandra There’s a catch when it comes to Solr and Spark. Both of these are going to be running as LOCAL_ONE
  27. Solr works by querying the lucene index(s) to get a list of document ids aka primary keys for the individual rows. It then queries for each row (one at a time) using local one. Originally we had this set as an RF 1 to align with this logic but then we had failures and learned that the driver did not have workload aware failover. At this point you have to run a balance between consistency and availability. Higher RF increases your availability while allowing for inconsistency due to LOCAL_ONE In the end we decided to make this a per application / keyspace decision.
  28. We use a multi tenant model (not multi instance) Each application is place in a single keyspace Many keyspaces are stored in a single cluster Reduces resource costs for small clients while allowing increased redundancy
  29. Let’s talk a bit more about training. I told you we’d come back to this. Training is the core central part of succeeding. When under deadline no one is going to use an unknown product that they are uncomfortable with. So train, train some more, then train again. When people stop coming keep holding the sessions just maybe not so often We started with frequent scheduled sessions covering all the fundamentals and then the advanced topics. We had many one on ones to answer questions and deep dive in to topics. Then we started a weekly Office Hours session to discuss any and all questions. This became popular even for teams not in our organization and became our Cassandra Center of Excellence. Today it is down to monthly but we are always available for anyone who wants to talk.
  30. Ansible ® is a simple open source, agentless, automation framework written in Python Based in repeatable playbooks backed by variables Deploy Cassandra to brand new systems without ever manually logging in to the node Manage configuration through templates Monitor by running local commands and storing metrics in a database Alarm when metrics cross a threshold
  31. Through Jenkins ® we have developed self service jobs to deploy changes and fixes to Cassandra. The jobs are submitted and trigger an approval. Results are stored and logged. Schema is versioned. Healthchecks before and after job
  32. The architecture of the apps follow a general pattern like the one on the slide. Every layer is going to have multiple instances for redundancy and capacity, of course. Load balancer is sitting out from, some cases this is software such as an API Gateway while other apps use hardware. Behind this are a number of microservices, these may each call services from other microservices to create layers as required. When writing to the database, they target a DAO microservice. There may of course be multiple DAOs for different entity flows. These DAOs are the microservices which interact with the Cassandra Database
  33. Casquatch is a Java Abstraction Framework for Cassandra. This is generally the software we have running on the DAOs in the earlier architecture slide. This results in the DB being fronted by a REST API with all database logic including Failovers, exception handling, retries, etc masked behind the DAO microservice. I recently released the 2.0 version of the software which takes advantage of the 4.x driver out of DataStax, has annotation processing, new failover policy, and will even generate the REST API logic for you. Check out the github
  34. Casquatch contains POJOs which you can write and annotate or generate from CQL. It then uses annotation processing to generate helper classes on compile time to bidirectionally map between the POJOs and relevant CQL queries. The queries then utilize the DSE Driver to interact with the underlying database.
  35. Run through a demo of Casquatch REST API tutorial.
  36. We are hiring! There is currently a mid-level engineer position for a large Cassandra environment on a peer team in T-Mobile Engineering and our group is hiring Java Devs of all levels. Please reach out if you want to discuss further or know anyone who might be interested.