Kubernetes es mas conocido por hacer despliegues de contenedores no dependientes del estado, pero tambien es capaz de manejar cargas de trabajo que dependen del estado, como las bases de datos. Con Kubernetes es muy facil tener aplicaciones que tengan alta disponibilidad y que los cambios se hagan de una forma transparente. Pero, ¿Podemos/Queremos tener estos beneficios para las bases de datos? ¿Que pasa con los servicios gestionados como Azure SQL? En esta sesion mi objetivo es introducirte al mundo de Kubernetes respecto al manejo de aplicaciones dependientes del estado y cuales son las opciones junto a los conceptos que existen en el ecosistema. Luego, a travez de una demostracion podras ver si te vale desplegar tu base de datos en Kubernetes, o no.
1. #SQLSatMadrid
¿Bases de Datos
en Kubernetes?
Si ... No … ¿Cuando? ¿Como?
Christian Melendez
Cloud Architect | Equinix
https://cmelendeztech.com
https://www.infoq.com/profile/Christian-Melendez/
@Christianhxc
6. # 904
@Christianhxc | Sigue #SQLSatMadrid
¿Por que Kubernetes?
Service discovery y balanceo
Distribuir y desplegar contenedores
Orquestrar almacenamiento
Sanar (recuperarse) por si mismo
Despliegues de a pocos, automaticamente (rollout)
Revertir cambios facilmente
Manejo de secretos y configuraciones
Ejecucion de tareas en batch
Escalamiento horizontal
7. # 904
@Christianhxc | Sigue #SQLSatMadrid
Arquitectura
https://docs.microsoft.com/en-us/azure/aks/concepts-clusters-workloads
8. # 904
@Christianhxc | Sigue #SQLSatMadrid
Arquitectura
https://docs.microsoft.com/en-us/azure/aks/concepts-clusters-workloads
11. @Christianhxc | Sigue #SQLSatMadrid
Almacenamiento en Kubernetes
Persistent Volume
Se crean previamente (admin)
Recurso en el cluster
Distinto ciclo de vida a pods
NFS, iSCSI, Azure Disks
Persistent Volume Claim
Pod solicita volumen
¿Cuanto espacio quieres?
¿Tipo de acceso? R, RW, W.
No tiene idea que hay debajo
28. # 904
@Christianhxc | Sigue #SQLSatMadrid
¿Por que NO?
Almacenamiento es complicado
Kubernetes soluciona parte del problema (computo)
Necesitas conocimiento y experiencia en Kubernetes
Tu te tienes que encargar de muchas cosas aun
Backups
Parches
Corrupcion de datos (posible)
Podria llegar a ser una capa innecesaria
Si sigues usando un solo pod
Si tratas a un pod como una maquina virtual
29. # 904
@Christianhxc | Sigue #SQLSatMadrid
¿Por que SI?
Desacoplamiento de Recursos (CPU y Almacenamiento)
Alta Disponibilidad y Tolerancia a Fallos
Ambientes No Productivos (pruebas automatizadas, migraciones, etc.)
Escalamiento Horizontal (en el futuro)
Hay empresas usando Kubernetes para BDs
YouTube (MySQL) – Vitess.io
Luminis Technologies (MySQL)
Zalandro (PostgreSQL)
Ya hay Operators para otros engines (Couchbase)
Herramientas y servicios
kubedb.com
Portworx (Weaveworks) – GitOps
Diamanti
30. # 904
@Christianhxc | Sigue #SQLSatMadrid
Arbol de Decision (Google)
https://cloud.google.com/blog/products/databases/to-run-or-not-to-run-a-database-on-kubernetes-what-to-consider