Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Esos contenedores, ¡a producción! (Commit Conf 2018)

53 views

Published on

Charla en la commit conf sobre orquestadores de contenedores

Published in: Software
  • Be the first to comment

  • Be the first to like this

Esos contenedores, ¡a producción! (Commit Conf 2018)

  1. 1. MAD · NOV 23-24 · 2018 Esos contenedores… ¡a producción! Eduard Tomàs Compulsive Developer @ Plain Concepts @eiximenis MAD · NOV 23-24 · 2018
  2. 2. MAD · NOV 23-24 · 2018 ¿Quien soy? ■ ... ¡el de rojo! ■ Cervecero aficionado ■ Padre orgulloso ■ Speaker donde me dejen ■ Empecé a programar en una Odissey… ¡y hasta ahora! ■ Microsoft MVP desde 2012
  3. 3. MAD · NOV 23-24 · 2018 ¿De qué vamos a hablar hoy? De donde desplegar contenedores en producción De como desplegarlos Y vamos a centrarnos en orquestadores y dentro de esos en Kubernetes
  4. 4. MAD · NOV 23-24 · 2018 ¿Por qué un orquestador? ■ Un orquestador se encarga de manejar el ciclo de vida de los contenedores y de ofrecer servicios adicionales para la aplicación. ■ Aprovisionamiento y ejecución de contenedores ■ Auto escalado ■ Monitorización ■ Load balancing, redundancia y discovery ■ Exposición de contenedores al exterior ■ Manejo de recursos adicionales
  5. 5. MAD · NOV 23-24 · 2018 Adopción de orquestadores
  6. 6. MAD · NOV 23-24 · 2018 ¿Por qué Kubernetes? ■ Kubernetes es el líder actual en el mercado de oquestadores ■ Múltiples offerings en cloud (GKE, EKS, AKS) ■ Productos derivados (Open Shift, Rancher)
  7. 7. MAD · NOV 23-24 · 2018 Falsos mitos sobre Kubernetes ■ Mito: Kubernetes es solo para Docker ■ Realidad: Kubernetes se integra nativamente con Docker y rkt, pero puede integrarse, via CRI, con cualquier motor de contenedores. ■ Mito: Kubernetes es de Google ■ Realidad: Kubernetes empezó siendo un proyecto de Google. Pero ahora pertenece a la CNCF.
  8. 8. MAD · NOV 23-24 · 2018 Falsos mitos sobre Kubernetes ■ Mito: Kubernetes es solo para cloud ■ Realidad: Kubernetes es cloud native pero puede instalarse onprem. ■ Mito: Kubernetes es un producto finalizado ■ Realidad: No es solo un producto y está en constante evolución ■ Mito: Kubernetes es fácil de instalar y poner en marcha ■ Realidad: Un k8s multi-nodo con HA es complejo de crear y mantener. De ahí que el uso de k8s “manejados” esté ganando popularidad.
  9. 9. MAD · NOV 23-24 · 2018 Falsos mitos sobre Kubernetes ■ Mito: Kubernetes define como arquitecturar tu app ■ Realidad: Kubernetes define un modelo de ejecución muy flexible, pero deja de lado el como arquitecturar tu app ■ Mito: Kubernetes hace que tus contenedores sean seguros ■ Realidad: Kubernetes ofrece herramientas para securizar, pero usarlas no es sencillo
  10. 10. MAD · NOV 23-24 · 2018 Node 2Node 1 Pod 4Pod 3 http://A Ingress myapi rule ::1 ::1 http://cluster/myapi
  11. 11. MAD · NOV 23-24 · 2018 Kubernetes’ Hello World
  12. 12. MAD · NOV 23-24 · 2018 Healthchecks ■ Usa healthchecks para monitorizar el estado de un contenedor ■ Liveness probes ∘ Si fallan el pod se reinicia ■ Readiness probes ∘ Si fallan no se manda tráfico al pod
  13. 13. MAD · NOV 23-24 · 2018 Kubernetes’ probes
  14. 14. MAD · NOV 23-24 · 2018 Buenas prácticas docker & k8s ■ Usar multi-stage builds siempre que sea posible ■ Usar stdout/stderr para log ■ Monitor, monitor, monitor ■ No usar nunca el tag latest ■ Evitar el uso de ssh (usar kubectl exec) ■ Usar sí o sí RBAC ■ Usar secretos de k8s para contraseñas
  15. 15. MAD · NOV 23-24 · 2018 Buenas prácticas docker & k8s ■ Usa sidecars para proxies, watchers, etc,… ■ Usar init containers para inicialización ■ Usar Readiness/liveness probes ■ Establece límites de recursos ■ No uses servicios LoadBalancer ■ Usa Helm ■ Crea pipelines de CI/CD
  16. 16. MAD · NOV 23-24 · 2018 Actualizaciones ■ Kubernetes ofrece multiples estrategias para actualizar/redesplegar nuestra aplicación ■ Recreate (ideal para dev): Se destruye la version actual y se sustituye ■ Ramped: Se crea un nuevo replicaset con la nueva version y se transfieren replicas de uno a otro:
  17. 17. MAD · NOV 23-24 · 2018 Actualizaciones ■ Blue/Green: Ambas versiones se despliegan a la vez. Cuando la nueva (green) version está probada, se actualiza el servicio y se pasa a usar de forma predeterminada esa nueva version.
  18. 18. MAD · NOV 23-24 · 2018 Actualizaciones ■ Canary: Un grupo de usuarios usan la nueva versión (green) mientras el resto usa la antigua. Cuando se quiera pasar a la nueva versión se aumentan las replicas del deployment nuevo y se elimina el antiguo.
  19. 19. MAD · NOV 23-24 · 2018 Actualizaciones
  20. 20. MAD · NOV 23-24 · 2018 Q&A ¡Gracias! Eduard Tomàs Compulsive Developer @ Plain Concepts @eiximenis MAD · NOV 23-24 · 2018

×