SlideShare una empresa de Scribd logo
1 de 23
Kubernetes: do’s, don’ts
and why’s
#bilbostack22
Eduard Tomàs
@eiximenis
etomas@plainconcepts.com
#netcoreconf
¿Quien soy yo?
• Rompo cosas en Plain
Concepts
• Crafter de cerveza
• Friki Standard Nivel 10
• Microsoft MVP desde 2012
¿Qué vamos a ver hoy?
• Qué es Kubernetes
• ¿Lo necesitas?
• Algunas cosas a tener en cuenta…
¿Qué es Kubernetes?
• Es una plataforma para ejecutar
aplicaciones basadas en
contenedores
• Orquesta dichas aplicaciones para
(intentar) garantizar tolerancia a
fallos, resiliencia y escalabilidad
• Ofrece mecanismos para ayudar a
despliegues sin caída de servicio,
rollbacks, canary deployments, …
¿Cómo es
“por
dentro”?
Pero… ¿lo
necesitas?
(Razones por las que
no adoptar
Kubernetes)
No necesitas alta
disponibilidad
• Una de las necesidades que
mejor solventa Kubernetes
es dotar a tu app de alta
disponibilidad
• Pero eso viene con un
precio: complejidad
• Si tu aplicación no la require,
probablemente haya
mecanismos más simples
que k8s
Si tu aplicación
es un monolito
• Si tu aplicación es un solo
contenedor, usar Kubernetes
es matar moscas a
cañonazos
• Eso no implica que no
puedas usar contenedores,
simplemente que
Kubernetes no es la mejor
opción
Curva de
aprendizaje
• Kubernetes es complejo
• Esconde una falsa sencillez
• Aprovecharlo al 100%
requiere no solo que tus
apps estén preparadas para
ello, si no conocimientos
bastante específicos
• Y en on-premises mucho
más!
Coste
• Para sistemas pequeños el
coste puede no compensar
• Un cluster productivo de
Kubernetes requiere un
mínimo de 3+2 nodos
• El cloud mitiga en parte este
punto
Ventajas de
adoptar Kubernetes
• Inherentes (HA, escalabilidad, …)
• Homogeneidad
• *ops simplificado
• Menos vendor-lockin (¡ojo!)
Pasos para la
adopción de
Kubernetes
• Entender las ventajas
Adoptar containers
• Containerizar apps
• Refactorizar apps
Transformar apps
• Establecer CI / CD
• Monitorización
• Empoderar equipos
Desplegar en k8s
• Monitorizar recursos
• Decidir tamaños y políticas de escalado
• Reajustar cluster
Optimizar k8s
• Seguridad
• Mantenibilidad
• Automatización
Mejora de operaciones
• Ecosistema k8s
• Service Mesh,…
• Todo en k8s
K8s como plataforma
Algunas
cosas a tener
en cuenta…
Es un producto
(muy) vivo!
• Kubernetes tiene una
cadencia de tres versiones
anuales
• Revisa el plan de
obsolescencia y planifica las
acciones necesarias
No hay modelo
de aplicación
• El modelo de k8s está más
orientado a infra que a apps
• Helm es un primer paso pero
la abstracción es débil
• Existen productos de vendors
pero, usualmente, con
vendor-lockin
• OAM (Open Application
Model) puede ser la solución
Dev vs Prod
• Los entornos de dev y prod
suelen ser bastante distintos
• Seguridad
• Políticas
• Configuraciones
adicionales
• …
Kubernetes NO
lo hace todo…
• No ofrece monitorización
• No ofrece balanceo inteligente
• No ofrece autoescalado en
base a eventos externos
• No ofrece inteligencia de red
• No ofrece mecanismos para
workloads serverless
• Pero permite que terceros
implementen todo eso y más
Kubernetes NO
lo hace todo…
• No ofrece monitorización
• Prometheus, Grafana, Fluentd,
Jaeger, kube-state-metrics,…
• No ofrece balanceo inteligente
• Ambassador, …
• No ofrece autoescalado en base a
eventos externos
• KNative, KEDA
• No ofrece inteligencia de red
• ISTIO, Linkerd, OSM,…
• No ofrece mecanismos para
workloads serverless
• OpenFaaS, OpenWhisk,…
• Pero permite que terceros
implementen todo eso y más
“Ecosistema Kubernetes”
Resumiendo…
• Evalúa si necesitas
Kubernetes
• Ten clara tu motivación
• Compara ventajas e
inconvenientes
• Planifica su adopción a
corto, medio y largo plazo
• Investiga el ecosistema a su
alrededor
¡Muchas gracias! 
#bilbostack22
Eduard Tomàs
@eiximenis
etomas@plainconcepts.com

Más contenido relacionado

La actualidad más candente

Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayPlain Concepts
 
Cómo petarlo con Blockchain en 45' - Plain Concepts Dev Day
Cómo petarlo con Blockchain en 45' - Plain Concepts Dev DayCómo petarlo con Blockchain en 45' - Plain Concepts Dev Day
Cómo petarlo con Blockchain en 45' - Plain Concepts Dev DayPlain Concepts
 
Kubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayKubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayPlain Concepts
 
Monitorizando con el Stack Elastic Elige tu propia aventura
Monitorizando con el Stack Elastic Elige tu propia aventuraMonitorizando con el Stack Elastic Elige tu propia aventura
Monitorizando con el Stack Elastic Elige tu propia aventuraImma Valls Bernaus
 
Explorando los objetos centrales de Kubernetes con Oracle Cloud
Explorando los objetos centrales de Kubernetes con Oracle CloudExplorando los objetos centrales de Kubernetes con Oracle Cloud
Explorando los objetos centrales de Kubernetes con Oracle CloudVíctor Leonel Orozco López
 
[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)Ernesto Anaya
 
Pipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOpsPipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOpsChristian Melendez
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talkCarlos Landeras Martínez
 
DevOps Spain 2019. Carlos Landeras-Plain Concepts
DevOps Spain 2019. Carlos Landeras-Plain ConceptsDevOps Spain 2019. Carlos Landeras-Plain Concepts
DevOps Spain 2019. Carlos Landeras-Plain ConceptsatSistemas
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextDomingo Suarez Torres
 
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenIniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenVíctor Leonel Orozco López
 
Empaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y KubernetesEmpaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y KubernetesVíctor Leonel Orozco López
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!Paradigma Digital
 
NodeJS
NodeJSNodeJS
NodeJSIBM
 

La actualidad más candente (20)

ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 
Kubernetes Community Day Spain -> Crossplane
Kubernetes Community Day Spain -> CrossplaneKubernetes Community Day Spain -> Crossplane
Kubernetes Community Day Spain -> Crossplane
 
Cómo petarlo con Blockchain en 45' - Plain Concepts Dev Day
Cómo petarlo con Blockchain en 45' - Plain Concepts Dev DayCómo petarlo con Blockchain en 45' - Plain Concepts Dev Day
Cómo petarlo con Blockchain en 45' - Plain Concepts Dev Day
 
Gestión de proyectos con Maven
Gestión de proyectos con MavenGestión de proyectos con Maven
Gestión de proyectos con Maven
 
Kubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayKubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev Day
 
Monitorizando con el Stack Elastic Elige tu propia aventura
Monitorizando con el Stack Elastic Elige tu propia aventuraMonitorizando con el Stack Elastic Elige tu propia aventura
Monitorizando con el Stack Elastic Elige tu propia aventura
 
Explorando los objetos centrales de Kubernetes con Oracle Cloud
Explorando los objetos centrales de Kubernetes con Oracle CloudExplorando los objetos centrales de Kubernetes con Oracle Cloud
Explorando los objetos centrales de Kubernetes con Oracle Cloud
 
Desarrollo moderno con DevOps y Cloud Native
Desarrollo moderno con DevOps y Cloud NativeDesarrollo moderno con DevOps y Cloud Native
Desarrollo moderno con DevOps y Cloud Native
 
[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)
 
Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish) Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish)
 
Pipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOpsPipelines as Code en Azure DevOps
Pipelines as Code en Azure DevOps
 
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
.Net Core Real time App on My Rasperry PI - Codemotion 2017 talk
 
Web Day Devops - Plain Concepts
Web Day Devops - Plain ConceptsWeb Day Devops - Plain Concepts
Web Day Devops - Plain Concepts
 
DevOps Spain 2019. Carlos Landeras-Plain Concepts
DevOps Spain 2019. Carlos Landeras-Plain ConceptsDevOps Spain 2019. Carlos Landeras-Plain Concepts
DevOps Spain 2019. Carlos Landeras-Plain Concepts
 
Orquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNextOrquestación de contenedores con Kubernetes SGNext
Orquestación de contenedores con Kubernetes SGNext
 
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de MavenIniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
Iniciando microservicios reales con JakartaEE/MicroProfile y arquetipos de Maven
 
Empaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y KubernetesEmpaquetando aplicaciones Java con Docker y Kubernetes
Empaquetando aplicaciones Java con Docker y Kubernetes
 
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
 
NodeJS
NodeJSNodeJS
NodeJS
 

Similar a Kubernetes: Do's, don'ts and why's

Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesDomingo Suarez Torres
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyTelefónica
 
The Dark Art of Container Monitoring - Spanish
The Dark Art of Container Monitoring - SpanishThe Dark Art of Container Monitoring - Spanish
The Dark Art of Container Monitoring - SpanishSysdig
 
Kubernetes: Más Allá de la Orquestación de Contenedores
Kubernetes: Más Allá de la Orquestación de ContenedoresKubernetes: Más Allá de la Orquestación de Contenedores
Kubernetes: Más Allá de la Orquestación de ContenedoresOpenDireito
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesBitnami
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.Paradigma Digital
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivirDomingo Suarez Torres
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Armando Picón Z.
 
.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service FabricGuillermo Javier Bellmann
 
Computacion en nube
Computacion en nubeComputacion en nube
Computacion en nubeLuis Lopez
 
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsWebinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsavanttic Consultoría Tecnológica
 
Hiperconvergencia, cloud y DevOps en el Estado
Hiperconvergencia, cloud y DevOps en el EstadoHiperconvergencia, cloud y DevOps en el Estado
Hiperconvergencia, cloud y DevOps en el EstadoAndres Bustamante
 

Similar a Kubernetes: Do's, don'ts and why's (20)

Cloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a KubernetesCloud Native Mexico - Introducción a Kubernetes
Cloud Native Mexico - Introducción a Kubernetes
 
El camino de Java a Kubernetes
El camino de Java a KubernetesEl camino de Java a Kubernetes
El camino de Java a Kubernetes
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs AcademyBootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
BootCamp Online en DevOps (and SecDevOps) de GeeksHubs Academy
 
The Dark Art of Container Monitoring - Spanish
The Dark Art of Container Monitoring - SpanishThe Dark Art of Container Monitoring - Spanish
The Dark Art of Container Monitoring - Spanish
 
Kubernetes: Más Allá de la Orquestación de Contenedores
Kubernetes: Más Allá de la Orquestación de ContenedoresKubernetes: Más Allá de la Orquestación de Contenedores
Kubernetes: Más Allá de la Orquestación de Contenedores
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de Aplicaciones
 
Casos de USO Openshift.pptx
Casos de USO Openshift.pptxCasos de USO Openshift.pptx
Casos de USO Openshift.pptx
 
meetup digital ocean kubernetes
meetup digital ocean kubernetesmeetup digital ocean kubernetes
meetup digital ocean kubernetes
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Kubernetes para developers
Kubernetes para developersKubernetes para developers
Kubernetes para developers
 
Java Dev Day 2019 No kuberneteen por convivir
Java Dev Day 2019  No kuberneteen por convivirJava Dev Day 2019  No kuberneteen por convivir
Java Dev Day 2019 No kuberneteen por convivir
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)
 
.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric.Net Conf UY 2017: Un paseo por Azure Service Fabric
.Net Conf UY 2017: Un paseo por Azure Service Fabric
 
Computacion en nube
Computacion en nubeComputacion en nube
Computacion en nube
 
IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions
 
Paradigmas
ParadigmasParadigmas
Paradigmas
 
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOpsWebinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
Webinar - Moderniza tu proceso de desarrollo con Oracle Cloud y DevOps
 
Hiperconvergencia, cloud y DevOps en el Estado
Hiperconvergencia, cloud y DevOps en el EstadoHiperconvergencia, cloud y DevOps en el Estado
Hiperconvergencia, cloud y DevOps en el Estado
 

Más de Eduard Tomàs

C#9 - Más C# que nunca
C#9 - Más C# que nuncaC#9 - Más C# que nunca
C#9 - Más C# que nuncaEduard Tomàs
 
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDACollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDAEduard Tomàs
 
.NET Memoria y Rendimiento
.NET Memoria y Rendimiento.NET Memoria y Rendimiento
.NET Memoria y RendimientoEduard Tomàs
 
Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Eduard Tomàs
 
El "peor" lenguaje del mundo
El "peor" lenguaje del mundoEl "peor" lenguaje del mundo
El "peor" lenguaje del mundoEduard Tomàs
 
Containerize a netcore application with aks
 Containerize a netcore application with aks Containerize a netcore application with aks
Containerize a netcore application with aksEduard Tomàs
 
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)Eduard Tomàs
 
Aplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramosAplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramosEduard Tomàs
 
Serverless with Azure Functions and CosmosDb
Serverless with Azure Functions and CosmosDbServerless with Azure Functions and CosmosDb
Serverless with Azure Functions and CosmosDbEduard Tomàs
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?Eduard Tomàs
 
React native - Unleash the power of your device
React native - Unleash the power of your deviceReact native - Unleash the power of your device
React native - Unleash the power of your deviceEduard Tomàs
 
JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)Eduard Tomàs
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveEduard Tomàs
 
React native - t3chfest 2016
React native - t3chfest 2016React native - t3chfest 2016
React native - t3chfest 2016Eduard Tomàs
 
React, Flux y React native
React, Flux y React nativeReact, Flux y React native
React, Flux y React nativeEduard Tomàs
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Eduard Tomàs
 
JavaScript - HTML5 - IndexedDb
JavaScript - HTML5 - IndexedDbJavaScript - HTML5 - IndexedDb
JavaScript - HTML5 - IndexedDbEduard Tomàs
 
Winobjc - Windows Bridge for iOS
Winobjc - Windows Bridge for iOSWinobjc - Windows Bridge for iOS
Winobjc - Windows Bridge for iOSEduard Tomàs
 
EcmaScript unchained
EcmaScript unchainedEcmaScript unchained
EcmaScript unchainedEduard Tomàs
 

Más de Eduard Tomàs (20)

C#9 - Más C# que nunca
C#9 - Más C# que nuncaC#9 - Más C# que nunca
C#9 - Más C# que nunca
 
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDACollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
CollabDays 2020 Barcelona - Serverless Kubernetes with KEDA
 
.NET Memoria y Rendimiento
.NET Memoria y Rendimiento.NET Memoria y Rendimiento
.NET Memoria y Rendimiento
 
Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++Codemotion 2015 - Bienvenido de nuevo c++
Codemotion 2015 - Bienvenido de nuevo c++
 
El "peor" lenguaje del mundo
El "peor" lenguaje del mundoEl "peor" lenguaje del mundo
El "peor" lenguaje del mundo
 
Containerize a netcore application with aks
 Containerize a netcore application with aks Containerize a netcore application with aks
Containerize a netcore application with aks
 
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
Escenarios avanzados en AKS (Global Azure Bootcamp Barcelona 2019)
 
Aplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramosAplicaciones de consola fáciles? Más quisieramos
Aplicaciones de consola fáciles? Más quisieramos
 
Serverless with Azure Functions and CosmosDb
Serverless with Azure Functions and CosmosDbServerless with Azure Functions and CosmosDb
Serverless with Azure Functions and CosmosDb
 
Microservices: Yes or not?
Microservices: Yes or not?Microservices: Yes or not?
Microservices: Yes or not?
 
Azure functions
Azure functionsAzure functions
Azure functions
 
React native - Unleash the power of your device
React native - Unleash the power of your deviceReact native - Unleash the power of your device
React native - Unleash the power of your device
 
JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)JavaScript in 2016 (Codemotion Rome)
JavaScript in 2016 (Codemotion Rome)
 
Asp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep DiveAsp.Net Core 1.0 Deep Dive
Asp.Net Core 1.0 Deep Dive
 
React native - t3chfest 2016
React native - t3chfest 2016React native - t3chfest 2016
React native - t3chfest 2016
 
React, Flux y React native
React, Flux y React nativeReact, Flux y React native
React, Flux y React native
 
Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6Novedades de ASP.NET MVC6
Novedades de ASP.NET MVC6
 
JavaScript - HTML5 - IndexedDb
JavaScript - HTML5 - IndexedDbJavaScript - HTML5 - IndexedDb
JavaScript - HTML5 - IndexedDb
 
Winobjc - Windows Bridge for iOS
Winobjc - Windows Bridge for iOSWinobjc - Windows Bridge for iOS
Winobjc - Windows Bridge for iOS
 
EcmaScript unchained
EcmaScript unchainedEcmaScript unchained
EcmaScript unchained
 

Kubernetes: Do's, don'ts and why's

  • 1. Kubernetes: do’s, don’ts and why’s #bilbostack22 Eduard Tomàs @eiximenis etomas@plainconcepts.com
  • 2.
  • 3. #netcoreconf ¿Quien soy yo? • Rompo cosas en Plain Concepts • Crafter de cerveza • Friki Standard Nivel 10 • Microsoft MVP desde 2012
  • 4.
  • 5. ¿Qué vamos a ver hoy? • Qué es Kubernetes • ¿Lo necesitas? • Algunas cosas a tener en cuenta…
  • 6. ¿Qué es Kubernetes? • Es una plataforma para ejecutar aplicaciones basadas en contenedores • Orquesta dichas aplicaciones para (intentar) garantizar tolerancia a fallos, resiliencia y escalabilidad • Ofrece mecanismos para ayudar a despliegues sin caída de servicio, rollbacks, canary deployments, …
  • 8. Pero… ¿lo necesitas? (Razones por las que no adoptar Kubernetes)
  • 9. No necesitas alta disponibilidad • Una de las necesidades que mejor solventa Kubernetes es dotar a tu app de alta disponibilidad • Pero eso viene con un precio: complejidad • Si tu aplicación no la require, probablemente haya mecanismos más simples que k8s
  • 10. Si tu aplicación es un monolito • Si tu aplicación es un solo contenedor, usar Kubernetes es matar moscas a cañonazos • Eso no implica que no puedas usar contenedores, simplemente que Kubernetes no es la mejor opción
  • 11. Curva de aprendizaje • Kubernetes es complejo • Esconde una falsa sencillez • Aprovecharlo al 100% requiere no solo que tus apps estén preparadas para ello, si no conocimientos bastante específicos • Y en on-premises mucho más!
  • 12. Coste • Para sistemas pequeños el coste puede no compensar • Un cluster productivo de Kubernetes requiere un mínimo de 3+2 nodos • El cloud mitiga en parte este punto
  • 13. Ventajas de adoptar Kubernetes • Inherentes (HA, escalabilidad, …) • Homogeneidad • *ops simplificado • Menos vendor-lockin (¡ojo!)
  • 14. Pasos para la adopción de Kubernetes • Entender las ventajas Adoptar containers • Containerizar apps • Refactorizar apps Transformar apps • Establecer CI / CD • Monitorización • Empoderar equipos Desplegar en k8s • Monitorizar recursos • Decidir tamaños y políticas de escalado • Reajustar cluster Optimizar k8s • Seguridad • Mantenibilidad • Automatización Mejora de operaciones • Ecosistema k8s • Service Mesh,… • Todo en k8s K8s como plataforma
  • 16. Es un producto (muy) vivo! • Kubernetes tiene una cadencia de tres versiones anuales • Revisa el plan de obsolescencia y planifica las acciones necesarias
  • 17. No hay modelo de aplicación • El modelo de k8s está más orientado a infra que a apps • Helm es un primer paso pero la abstracción es débil • Existen productos de vendors pero, usualmente, con vendor-lockin • OAM (Open Application Model) puede ser la solución
  • 18. Dev vs Prod • Los entornos de dev y prod suelen ser bastante distintos • Seguridad • Políticas • Configuraciones adicionales • …
  • 19. Kubernetes NO lo hace todo… • No ofrece monitorización • No ofrece balanceo inteligente • No ofrece autoescalado en base a eventos externos • No ofrece inteligencia de red • No ofrece mecanismos para workloads serverless • Pero permite que terceros implementen todo eso y más
  • 20. Kubernetes NO lo hace todo… • No ofrece monitorización • Prometheus, Grafana, Fluentd, Jaeger, kube-state-metrics,… • No ofrece balanceo inteligente • Ambassador, … • No ofrece autoescalado en base a eventos externos • KNative, KEDA • No ofrece inteligencia de red • ISTIO, Linkerd, OSM,… • No ofrece mecanismos para workloads serverless • OpenFaaS, OpenWhisk,… • Pero permite que terceros implementen todo eso y más
  • 22. Resumiendo… • Evalúa si necesitas Kubernetes • Ten clara tu motivación • Compara ventajas e inconvenientes • Planifica su adopción a corto, medio y largo plazo • Investiga el ecosistema a su alrededor
  • 23. ¡Muchas gracias!  #bilbostack22 Eduard Tomàs @eiximenis etomas@plainconcepts.com