Charla que di en nerdear.la 2017, explicando nuestra experiencia usando Kubernetes en Producción por un año en mi trabajo (invisionapp.com) Buenos Aires, Argentina
Hace 2 años ◦ ~20 personas en Ingeniería ◦ Teníamos ~5 servers windows, storage y DBs • Actualmente ◦ ~110 personas en Ingeniería ◦ ~1500 instancias en AWS ◦ ~7000 containers en ~30 entornos ◦ ~100 deploys únicos por semana • Velocidad
Desarrollador hace el push a github ◦ Dispara el build en Codeship ◦ Kit hace el push del release al repo de Kubernetes ◦ Se generan los manifiestos ◦ Se aplican los manifiestos (deploy) • ¡Es open source! https://invisionapp.github.io/kit/
todo lo necesario para levantar el stack completo en ~15 minutos: ◦ Crear manifiestos para namespaces ◦ Crear certificados SSL, third party services ◦ Crear todos los recursos de AWS (ELBs, ALBs, ASGs, buckets S3, RDS, DNS, SQS, SNS, Lambda, y mucho más) ◦ Generar los manifiestos con las imágenes y variables de entorno para todos los servicios (data, auth, etc) ◦ Bootstrap de la aplicación (~50 microservicios) ◦ Todo esto sin interacción de developers
un 50% (principalmente ec2) • Incrementamos la velocidad de creación de entornos (de 1 o 2 días a 30 minutos) • Mayor consistencia (automatización - menos errores humanos) • Estabilidad - Dejás de manejar instancias o contenedores y manejás clusters • Rollbacks rápidos y seguros • Auto healing
Problemas con DNS • Healthcheck -> default-http-backend • kit-destroyer • Nginx - Java affinity • Liveness probe - danger - no tiene rolling deploys • Networking • Es nuevo