Silicon Valley Kubernetes and Cloud Native Meetup
November 15, 2018
Docker containers are great for running stateless microservices, but what about stateful applications such as databases and persistent queues? Kubernetes provides the StatefulSets controller for such applications that have to manage data in some form of persistent storage. While StatefulSets is a great start, a lot more goes into ensuring high performance, data durability and high availability for stateful apps in Kubernetes. Following are 5 best practices that developers and operations engineers should be aware of.
1. Ensure high performance with local persistent volumes and pod anti-affinity rules.
2. Achieve data resilience with auto-failover and multi-zone pod scheduling.
3. Integrate StatefulSet services with other application services through NodePorts & LoadBalancer services.
4. Run Day 2 operations such as monitoring, elastic scaling, capacity re-sizing, backups with caution.
5. Automate operations through Kubernetes Operators that extend the StatefulSets controller.
We will demonstrate how to run a complete E-Commerce application powered by YugaByte DB, when all services are deployed in Kubernetes.