This talk was given at Cassandra London meetup: https://www.meetup.com/Cassandra-London/events/267271963/ . The talk is about orchestration of Cassandra with our Kubernetes Operator and Yelp PaaSTA. We also outline some of the opportunities and challenges associated with this architecture.
Youtube link: https://www.youtube.com/watch?v=JqAILFkkibA
7. Distributed systems fallacies
● The network is reliable
● Latency is zero
● Bandwidth is infinite
● The network is secure
● Topology doesn't change
● One administrator
● Zero Transport cost
● Homogeneous network
8. Overview
● Introduction
● Cassandra and Cassandra at Yelp
● Orchestration and Abstractions
● Cassandra Operator
● Opportunities and Challenges
● Conclusion
12. C* at Yelp
● Both primary and derived data
● Use cases
● Deployed on Amazon Web Services (AWS)
● Network-attached storage
● Smartstack-based seed provider
● Backups into S3
● ZooKeeper-based cluster coordination
22. Kubernetes / k8s
● Popular Open Source Container-based orchestration
● Actively developed
● Organizes containers into pods
● Stateful and stateless applications
● Well-defined building blocks for distributed systems
● Integrates into our PaaS
○ k8s: generic but extensible
24. ● Yelp PaaSTA: Microservices and Stateful Clusters
● Few thousand microservices deployed and growing
● Hundreds of deployments every day
● Handles compute, storage and network abstractions
● Why PaaSTA
○ Clusterman
○ Spot and statically-reserved fleet
○ Consistent interface
PaaSTA: Kubernetes/Mesos at Yelp
25. Overview
● Introduction
● Cassandra and Cassandra at Yelp
● Orchestration and Abstractions
● Cassandra Operator
● Opportunities and Challenges
● Conclusion
28. C* Operator: Intro
● Developed by DRE team
● Defines a custom resource for k8s
○ Statefulset, Container spec, Storage and more
● operator-sdk and controller-runtime
○ Ideal for non-trivial clustered services
● Extended control plane of our C* clusters
● Written in Golang and deployed in k8s itself
29. C* Operator: Responsibilities
● Reconciling cluster from specs
● Scaling the cluster up and down
● Safe and Reliable Change Deployments
● Lifecycle Management
● Multi-region coordination
● Credential management
● Optimizing resource usage