SlideShare una empresa de Scribd logo
1 de 19
Escalando workloads
serverless con KEDA
¿Quien soy yo?
Rompo cosas en Plain Concepts
Hago cerveza
Microsoft MVP desde 2012
@eiximenis
Qué vamos a ver hoy?
• Serverless vs Kubernetes
• Workloads serverless en Kubernetes
• Escalando con KEDA
• Usando jobs
• Algo más… xD
Serverless vs Kubernetes
• A ver… no es una lucha 
• Se pueden ejecutar cargas serverless en Kubernetes
• Knative, OpenFaaS, KEDA
• Existen runtimes serverless de contenedores
• Fargate, Cloud Run, ACI
El futuro presente de k8s es serverless
• Ya existe infraestructura serverless de
contenedores
• Esa infra debe ser orquestada
• API de k8s es el orquestador standard de facto
• Veremos Ya vemos mezclas de nodos clásicos
(máquinas) e infra serverless orquestada bajo la
misma API
https://thenewstack.io/the-future-
of-kubernetes-is-serverless/
¿Por qué ejecutar serverless en k8s?
• Fácil adopción de cloud híbrido / multicloud
• Menos lock-in
• Una sola plataforma qué gestionar
• Operaciones unificadas
• Más control sobre el H/W
• Ejecutar workloads serverless en el mismo entorno que otros
workloads (service mesh, entornos compartidos, etc)
Autoescalar cargas serverless
• Para cargas de trabajo “tradicionales” escalar en base a CPU/Mem
suele ser una buena elección
• Pero para cargas de trabajo serverless no lo es tanto ya que escalas
en base a los síntomas y no las causas
• Serverless suele ser event-based, es mejor escalar en base a
métricas vinculadas a esos eventos
• Mensajes pendientes de procesar, …
• Kubernetes Event Driven Autoscaler
• Proyecto OSS iniciado por RedHat y Microsoft
• Actualmente proyecto sandbox de la CNCF
• https://www.cncf.io/sandbox-projects/
• Permite escalar cargas de trabajo en base a eventos externos
El scaler monitoriza los triggers
externos (p. ej. mensajes de una cola)
Esos triggers actualizan métricas que
se exponent a través del metrics
server
El HPA escala el deployment de AF
basandose en esas métricas
Scalers
• Se encargan de monitorizar los eventos externos
• Generan las métricas usadas por el HPA para autoescalar
• Existen multiples scalers para distintas Fuentes (SQS, RabbitMQ,
Kafka, Azure Service Bus, Prometheus metrics, Redis, InfluxDb, …)
• https://keda.sh/docs/2.3/scalers/
ScaledObject
• CRD de Keda que representa un deployment escalado en base a uno
o más scalers
• Contiene la configuración de los scalers y la referencia al
deployment a escalar
• KEDA crea automáticamente un HPA vinculado
Ojo con el HPA
• El HPA no tiene en cuenta qué está
haciendo un pod cuando debe
desescalar
• Si el proceso del evento es largo, el HPA
puede matar un pod que está
procesando datos
• Es posible usar el hook PreStop para
solucionar eso, pero hay otro método…
Usando Jobs
• En lugar de usar deployments y escalarlos usando un HPA se pueden
usar jobs
• En este modelo cada job procesa un conjunto de eventos
• KEDA creará tantos jobs como sea necesario para procesar todos los
eventos
• Dado que no hay desescalado, no es posible que un pod sea
terminado a medio proceso
ScaledJob
• CRD de KEDA que se usa para escalar una carga de trabajo en base a
jobs
• Contiene la plantilla del job y la configuración del scaler de KEDA
• En ese escenario es KEDA quien crea los jobs necesarios, no hay HPA
Escalando http: KEDA-HTTP
• El proyecto keda-http añade soporte para escalar workloads a través
de peticiones http
• https://github.com/kedacore/http-add-on
• Está en alfa, no maduro para producción (y apenas para desarrollo
xD)
KEDA-HTTP vs…
• KNative
• keda-http solo escala a través de http, Knative soporta escalado vía HTTP,
pero también por eventos (como keda-core)
• KNative va más allá que el puro escalado (p. ej. blue/green deploy)
• Open-FaaS
• OpenFaaS sigue el paradigma de FaaS
• Código se despliega a través de su propia CLI
• OpenFaaS suele desplegarse como parte del stack PLONK
KEDA-HTTP vs…
• Osiris
• Ambos usan el HPA para autoescalar (desde/hasta 0)
• Osiris usa anotaciones para configurar
• Osiris está archivado (¿deprecado?)
En resúmen
• Serverless y Kubernetes pueden ser amigos 
• Hay opciones para ejecutar workloads serverless
• KEDA te da una serie de escaladores para escalar basados en
eventos externos
• Eso está en constante ebullición! 
Muchas gracias! 
Eduard Tomàs
@eiximenis
Ah! Y por cierto… Ahora viene una charla de KNative!

Más contenido relacionado

La actualidad más candente

Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingAngel Nuñez
 
[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
 
Automatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudAutomatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudSoftware Guru
 
La Vida de un Desarrollador con Kubernetes y Azure
La Vida de un Desarrollador con Kubernetes y AzureLa Vida de un Desarrollador con Kubernetes y Azure
La Vida de un Desarrollador con Kubernetes y AzureChristian Melendez
 
Kubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayKubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayPlain 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 SGNextDomingo Suarez Torres
 
Serverless application repository
Serverless application repositoryServerless application repository
Serverless application repositoryPaola Velazquez
 
Arquitectura Serverless con AWS Lambda y MongoDB Atlas
Arquitectura Serverless con AWS Lambda y MongoDB AtlasArquitectura Serverless con AWS Lambda y MongoDB Atlas
Arquitectura Serverless con AWS Lambda y MongoDB AtlasMongoDB
 
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
Orquestación de contenedores con KubernetesOrquestación de contenedores con Kubernetes
Orquestación de contenedores con KubernetesSoftware Guru
 
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
 
.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
 
Introduccion Power BI Report Server
Introduccion Power BI Report ServerIntroduccion Power BI Report Server
Introduccion Power BI Report ServerEduardo Castro
 
Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps day
 Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps day Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps day
Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps dayPlain Concepts
 
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...César Hernández
 

La actualidad más candente (20)

ASP.NET MVC Core
ASP.NET MVC CoreASP.NET MVC Core
ASP.NET MVC Core
 
Kubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and ScalingKubernetes - Container Orchestration, Deployment and Scaling
Kubernetes - Container Orchestration, Deployment and Scaling
 
[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)
 
Automatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloudAutomatización del despliegue de aplicaciones multi cloud
Automatización del despliegue de aplicaciones multi cloud
 
La Vida de un Desarrollador con Kubernetes y Azure
La Vida de un Desarrollador con Kubernetes y AzureLa Vida de un Desarrollador con Kubernetes y Azure
La Vida de un Desarrollador con Kubernetes y Azure
 
Kubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev DayKubernetes 101 - Plain Concepts Dev Day
Kubernetes 101 - Plain Concepts Dev Day
 
Contenedores como Servicio con Docker
Contenedores como Servicio con DockerContenedores como Servicio con Docker
Contenedores como Servicio con Docker
 
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
 
Serverless application repository
Serverless application repositoryServerless application repository
Serverless application repository
 
Gestión de proyectos con Maven
Gestión de proyectos con MavenGestión de proyectos con Maven
Gestión de proyectos con Maven
 
Arquitectura Serverless con AWS Lambda y MongoDB Atlas
Arquitectura Serverless con AWS Lambda y MongoDB AtlasArquitectura Serverless con AWS Lambda y MongoDB Atlas
Arquitectura Serverless con AWS Lambda y MongoDB Atlas
 
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
Orquestación de contenedores con KubernetesOrquestación de contenedores con Kubernetes
Orquestación de contenedores con Kubernetes
 
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
 
Introduction to Azure DevOps
Introduction to Azure DevOpsIntroduction to Azure DevOps
Introduction to 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
 
Introduccion Power BI Report Server
Introduccion Power BI Report ServerIntroduccion Power BI Report Server
Introduccion Power BI Report Server
 
Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps day
 Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps day Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps day
Testing de integración en Azure DevOps con Docker - Plain Concepts DevOps day
 
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
7 Recomendaciones para migrar tus aplicaciones a Jakarta EE utilizando Apache...
 

Similar a KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA

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
 
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
Introduccion a Elastic Beanstalk   AWS Roadshow Bogota MexicoIntroduccion a Elastic Beanstalk   AWS Roadshow Bogota Mexico
Introduccion a Elastic Beanstalk AWS Roadshow Bogota MexicoHermann Pais
 
Construyendo una nube con OpenStack
Construyendo una nube con OpenStackConstruyendo una nube con OpenStack
Construyendo una nube con OpenStackLibreCon
 
Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexicoAmazon Web Services LATAM
 
Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
From on premise to full architectures on Openstack
From on premise to full architectures on OpenstackFrom on premise to full architectures on Openstack
From on premise to full architectures on OpenstackGuillermo Alvarado Mejía
 
From On Premise to Full Architectures On Openstack (spanish version)
From On Premise to Full Architectures On Openstack (spanish version)From On Premise to Full Architectures On Openstack (spanish version)
From On Premise to Full Architectures On Openstack (spanish version)Francisco Araya
 
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
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Eduardo Castro
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?Socialmetrix
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en DockerJavier Villegas
 
dockerize.it
dockerize.itdockerize.it
dockerize.itbetabeers
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)SolidQ
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Enrique Catala Bañuls
 
Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSAmazon Web Services LATAM
 

Similar a KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA (20)

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
 
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
Introduccion a Elastic Beanstalk   AWS Roadshow Bogota MexicoIntroduccion a Elastic Beanstalk   AWS Roadshow Bogota Mexico
Introduccion a Elastic Beanstalk AWS Roadshow Bogota Mexico
 
Construyendo una nube con OpenStack
Construyendo una nube con OpenStackConstruyendo una nube con OpenStack
Construyendo una nube con OpenStack
 
Introduccion a elastic beanstalk aws roadshow bogota mexico
Introduccion a elastic beanstalk   aws roadshow bogota mexicoIntroduccion a elastic beanstalk   aws roadshow bogota mexico
Introduccion a elastic beanstalk aws roadshow bogota mexico
 
Web App Container
Web App ContainerWeb App Container
Web App Container
 
DBA del Futuro (Un nuevo paradigma)
DBA del Futuro (Un nuevo paradigma)DBA del Futuro (Un nuevo paradigma)
DBA del Futuro (Un nuevo paradigma)
 
From on premise to full architectures on Openstack
From on premise to full architectures on OpenstackFrom on premise to full architectures on Openstack
From on premise to full architectures on Openstack
 
From On Premise to Full Architectures On Openstack (spanish version)
From On Premise to Full Architectures On Openstack (spanish version)From On Premise to Full Architectures On Openstack (spanish version)
From On Premise to Full Architectures On Openstack (spanish version)
 
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...
 
Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker Introduccion a SQL Server 2017 en Docker
Introduccion a SQL Server 2017 en Docker
 
SGBD Y TECNOLOGIAS
SGBD Y TECNOLOGIASSGBD Y TECNOLOGIAS
SGBD Y TECNOLOGIAS
 
Sgbd y tecnologias
Sgbd  y  tecnologiasSgbd  y  tecnologias
Sgbd y tecnologias
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?¿Por que cambiar de Apache Hadoop a Apache Spark?
¿Por que cambiar de Apache Hadoop a Apache Spark?
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en Docker
 
dockerize.it
dockerize.itdockerize.it
dockerize.it
 
Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)Datawarehouse como servicio en Azure (sqldw)
Datawarehouse como servicio en Azure (sqldw)
 
Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)Datawarehouse como servicio en azure (sqldw)
Datawarehouse como servicio en azure (sqldw)
 
Kubernetes workshop
Kubernetes workshopKubernetes workshop
Kubernetes workshop
 
Comenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWSComenzando con aplicaciones serverless en AWS
Comenzando con aplicaciones serverless en AWS
 

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
 

Último

Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 

Último (6)

Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 

KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA

  • 2. ¿Quien soy yo? Rompo cosas en Plain Concepts Hago cerveza Microsoft MVP desde 2012 @eiximenis
  • 3. Qué vamos a ver hoy? • Serverless vs Kubernetes • Workloads serverless en Kubernetes • Escalando con KEDA • Usando jobs • Algo más… xD
  • 4. Serverless vs Kubernetes • A ver… no es una lucha  • Se pueden ejecutar cargas serverless en Kubernetes • Knative, OpenFaaS, KEDA • Existen runtimes serverless de contenedores • Fargate, Cloud Run, ACI
  • 5. El futuro presente de k8s es serverless • Ya existe infraestructura serverless de contenedores • Esa infra debe ser orquestada • API de k8s es el orquestador standard de facto • Veremos Ya vemos mezclas de nodos clásicos (máquinas) e infra serverless orquestada bajo la misma API https://thenewstack.io/the-future- of-kubernetes-is-serverless/
  • 6. ¿Por qué ejecutar serverless en k8s? • Fácil adopción de cloud híbrido / multicloud • Menos lock-in • Una sola plataforma qué gestionar • Operaciones unificadas • Más control sobre el H/W • Ejecutar workloads serverless en el mismo entorno que otros workloads (service mesh, entornos compartidos, etc)
  • 7. Autoescalar cargas serverless • Para cargas de trabajo “tradicionales” escalar en base a CPU/Mem suele ser una buena elección • Pero para cargas de trabajo serverless no lo es tanto ya que escalas en base a los síntomas y no las causas • Serverless suele ser event-based, es mejor escalar en base a métricas vinculadas a esos eventos • Mensajes pendientes de procesar, …
  • 8. • Kubernetes Event Driven Autoscaler • Proyecto OSS iniciado por RedHat y Microsoft • Actualmente proyecto sandbox de la CNCF • https://www.cncf.io/sandbox-projects/ • Permite escalar cargas de trabajo en base a eventos externos
  • 9. El scaler monitoriza los triggers externos (p. ej. mensajes de una cola) Esos triggers actualizan métricas que se exponent a través del metrics server El HPA escala el deployment de AF basandose en esas métricas
  • 10. Scalers • Se encargan de monitorizar los eventos externos • Generan las métricas usadas por el HPA para autoescalar • Existen multiples scalers para distintas Fuentes (SQS, RabbitMQ, Kafka, Azure Service Bus, Prometheus metrics, Redis, InfluxDb, …) • https://keda.sh/docs/2.3/scalers/
  • 11. ScaledObject • CRD de Keda que representa un deployment escalado en base a uno o más scalers • Contiene la configuración de los scalers y la referencia al deployment a escalar • KEDA crea automáticamente un HPA vinculado
  • 12. Ojo con el HPA • El HPA no tiene en cuenta qué está haciendo un pod cuando debe desescalar • Si el proceso del evento es largo, el HPA puede matar un pod que está procesando datos • Es posible usar el hook PreStop para solucionar eso, pero hay otro método…
  • 13. Usando Jobs • En lugar de usar deployments y escalarlos usando un HPA se pueden usar jobs • En este modelo cada job procesa un conjunto de eventos • KEDA creará tantos jobs como sea necesario para procesar todos los eventos • Dado que no hay desescalado, no es posible que un pod sea terminado a medio proceso
  • 14. ScaledJob • CRD de KEDA que se usa para escalar una carga de trabajo en base a jobs • Contiene la plantilla del job y la configuración del scaler de KEDA • En ese escenario es KEDA quien crea los jobs necesarios, no hay HPA
  • 15. Escalando http: KEDA-HTTP • El proyecto keda-http añade soporte para escalar workloads a través de peticiones http • https://github.com/kedacore/http-add-on • Está en alfa, no maduro para producción (y apenas para desarrollo xD)
  • 16. KEDA-HTTP vs… • KNative • keda-http solo escala a través de http, Knative soporta escalado vía HTTP, pero también por eventos (como keda-core) • KNative va más allá que el puro escalado (p. ej. blue/green deploy) • Open-FaaS • OpenFaaS sigue el paradigma de FaaS • Código se despliega a través de su propia CLI • OpenFaaS suele desplegarse como parte del stack PLONK
  • 17. KEDA-HTTP vs… • Osiris • Ambos usan el HPA para autoescalar (desde/hasta 0) • Osiris usa anotaciones para configurar • Osiris está archivado (¿deprecado?)
  • 18. En resúmen • Serverless y Kubernetes pueden ser amigos  • Hay opciones para ejecutar workloads serverless • KEDA te da una serie de escaladores para escalar basados en eventos externos • Eso está en constante ebullición! 
  • 19. Muchas gracias!  Eduard Tomàs @eiximenis Ah! Y por cierto… Ahora viene una charla de KNative!