SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Have you met Istio?
Abraham Rodríguez
Enero 2019
Índice
1. Introducción a service mesh
2. Have you met Istio?
3. Gestión de tráfico
4. Gestión de políticas y telemetría
5. Seguridad
Abraham Rodríguez
Arquitecto Cloud Native @ Paradigma
Introducción a service-mesh
Have you met Istio?
Introducción: Repaso a service-mesh
“A service mesh is a dedicated infrastructure layer for handling
service-to-service communication. It’s responsible for the reliable
delivery of requests through the complex topology of services that
comprise a modern, cloud native application”
William Morgan, Buoyant CEO
April 2017
Have you met Istio?
Introducción: patrones y conceptos
Plano de datos
Plano de control
Sidecar-proxy
Have you met Istio?
Have you met Istio?
Origen y propósito
“An open source project that provides a uniform way to connect, secure,
manage and monitor microservices”
“Imagine if we could transparently inject a layer of infrastructure
between a service and the network that gives operators the controls
they need while freeing developers from having to bake solutions to
distributed system problems into their code”
Have you met Istio?
Historia
24M
24S
11D
28N
31J
...
Istio es liberado Open Source en versión 0.1
Se publica Istio 1.0
Red Hat anuncia Openshift Service Mesh basado en Istio
Google anuncia la disponibilidad de Istio en GKE
Amazon estrena AWS App Mesh basado en Envoy
Have you met Istio?
Principales funcionalidades
● Circuit breaking, reintentos, outlier detection,
inyección de fallos (latencia y errores)
● Canary deployments, A/B testing, enrutado
por versiones y otros criterios
● Control de acceso por cuota
● Control de acceso por listas blancas / negras
● Trazabilidad distribuida
● Logging
● Métricas
● Integración con soluciones de terceros
● Autenticación a externos y entre proxies
● Autorización basada en roles con diversos
niveles de granularidad
Gestión del tráfico Gestión de políticas
Telemetría Seguridad
Have you met Istio?
Arquitectura y responsabilidades
Gestión del tráfico
Have you met Istio?
Gestión del tráfico con Pilot
● Responsabilidades:
○ registro / descubrimiento de servicios
○ configuración de los proxies Envoy
● El registro / configuración en Kubernetes se realiza
monitorizando el API para detectar cambios
● Istio incluye el concepto de versión para distinguir
versiones o entornos
● Opciones de enrutado:
○ En base a versión
○ En base a cabeceras
○ Por porcentajes
○ ...
● Podemos hacer enrutado del tráfico saliente
Have you met Istio?
Gestión del tráfico - flujo de petición
Have you met Istio?
Gestión del tráfico - proxies Envoy
● Pilot es quien realiza el descubrimiento pero los
proxies Envoy son los que hacen la comprobación
de salud de las instancias
● Se utiliza un sistema de retirada incremental de la
instancia similar al outlier detection
● Balanceo en cliente. Algoritmos:
○ Round robin
○ Random
○ Weighted least request
● Resiliencia de llamadas:
○ Timeouts
○ Reintentos con delay incremental
○ Circuit breaking
○ Outlier detection
○ Inyección de fallo (delay y error)
Have you met Istio?
Gestión del tráfico - Recursos
Enrutado. Machea peticiones a servicios o
versiones de servicios
Criterios: invocador, path, cabeceras …
Es donde se asigna porcentaje de llamadas a cada
versión, timeouts, reintentos, inyección de fallos...
Políticas a aplicar después del enrutado:
algoritmo de balanceo, circuit breaking.
Admite diferentes configuraciones por versión
Nos permite añadir entradas al registro para
enrutar peticiones fuera del descubrimiento del
service-mesh, por ejemplo a base de datos
Balanceo para las peticiones entrantes al
service-mesh. Una regla del gateway se puede
enganchar con un VirtualService
VirtualService DestinationRule
ServiceEntry Gateway
Have you met Istio?
Gestión del tráfico - Recursos
Have you met Istio?
Aplicación de ejemplo: BookInfo
Have you met Istio?
Gestión del tráfico - Ejemplos
1. Enrutado de peticiones:
a. Enrutar todo el tráfico a la v1 de reviews
b. Enrutar el tráfico en función de una cabecera
2. Migración de tráfico entre versiones
3. Configuración del gateway
4. Configuración de timeouts e inyección de delays
Gestión de políticas y telemetría
Have you met Istio?
Gestión de políticas y telemetría con Mixer
● Se integra con sistemas de terceros a través de
adaptadores para soportar su funcionalidad
● Los proxies cachean configuración de cuota y
autorización
● Los proxies acumulan en un buffer los datos de
telemetría
● A su vez Mixer cachea y acumula en un buffer los
datos correspondientes
Have you met Istio?
Gestión de políticas - Ejemplo: Limitación de cuota
kind: memquota
metadata:
name: handler
namespace: istio-system
spec:
quotas:
- name: requestcount.quota.istio-system
maxAmount: 500
validDuration: 1s
overrides:
- dimensions:
destination: reviews
maxAmount: 1
validDuration: 5s
- dimensions:
destination: productpage
maxAmount: 2
validDuration: 5s
kind: quota
metadata:
name: requestcount
namespace: istio-system
spec:
dimensions:
destination: destination.labels["app"] | destination.service |
"unknown"
destinationVersion: destination.labels["version"] | "unknown"
---
kind: rule
metadata:
name: quota
spec:
actions:
- handler: handler.memquota
instances:
- requestcount.quota
Have you met Istio?
Gestión de políticas - Ejemplo: Limitación de cuota
kind: QuotaSpecBinding
metadata:
name: request-count
namespace: istio-system
spec:
quotaSpecs:
- name: request-count
namespace: istio-system
services:
- name: productpage
namespace: default
kind: QuotaSpec
metadata:
name: request-count
namespace: istio-system
spec:
rules:
- quotas:
- charge: 1
quota: requestcount
Have you met Istio?
Telemetría - Recursos
Cada pieza de información que se obtiene
(tiempo de procesamiento, IP del cliente ...)
Configuran la comunicación con las diferentes
soluciones de telemetría y control
Como mapear atributos con información para
nutrir a cada manejador
Que instancias envían a información a que
manejadores
Attributes Handlers
Instances Rules
Have you met Istio?
Telemetría - Visualización
● Generación del grafo de dependencias de servicios
● Métricas de uso del service-mesh con Grafana
● Visualizar trazabilidad distribuida con Jaeger
Seguridad
Have you met Istio?
Seguridad - Objetivos
“The goals of Istio Security are:
● Security by default: no changes needed for application code and
infrastructure
● Defense in depth: integrate with existing security systems to provide
multiple layers of defense
● Zero-trust network: build security solutions on untrusted networks”
Have you met Istio?
Seguridad - Visión general
Have you met Istio?
Seguridad - Autenticación
● Validamos la identidad entre servicios
utilizando certificados
● Para los servidores: se monitoriza el API de
K8s y para cada serviceAccount se genera un
par de claves y el certificado, almacenados
como secrets en Citadel, y que son asociados
a los pods
● Para los clientes: se valida contra el secure
naming de Pilot que dicha el dueño de dicho
certificado (serviceAccount) puede ejecutar
ese servicio
● Podemos validar la identidad del cliente a
través de su JWT
● Podemos proporcionar la clave pública para
la validación o enganchar con sistemas de
terceros
TLS mutuo Validación JWT
Have you met Istio?
Seguridad - Autorización
● La semántica de los permisos se basa en roles
(RBAC)
● Podemos introducir autorización a nivel de
comunicación entre servicios o de usuario con
servicio
● La configuración se hace a través de políticas que
proporciona Pilot
● Nos proporciona bastante flexibilidad porque
podemos definir permisos en base a propiedades de
la petición ...
● Podemos conectar la autorización con sistemas de
terceros a través de los handlers de Mixer
apiVersion: "rbac.istio.io/v1alpha1"
kind: RbacConfig
metadata:
name: default
spec:
mode: 'ON_WITH_INCLUSION'
inclusion:
namespaces: ["default"]
Have you met Istio?
Autorización - Recursos
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRole
metadata:
name: products-viewer
namespace: default
spec:
rules:
- services: ["products.default.svc.cluster.local"]
methods: ["GET", "HEAD"]
paths: ["*"]
constraints:
- key: request.headers[version]
values: ["v1", "v2"]
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRoleBinding
metadata:
name: test-binding-products
namespace: default
spec:
subjects:
- user: "service-account-a"
- user: "istio-ingress-service-account"
properties:
request.auth.claims[email]: "a@foo.com"
roleRef:
kind: ServiceRole
name: "products-viewer"
Have you met Istio?

Más contenido relacionado

La actualidad más candente

Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxParadigma Digital
 
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
 
Novedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Novedades en Arquitectura Front End // Meetup UX UI @UTN MendozaNovedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Novedades en Arquitectura Front End // Meetup UX UI @UTN MendozaDiego Suarez
 
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
 
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
 
[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
 
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...OpenNebula Project
 
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAKCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAEduard Tomàs
 
Kubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sKubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sEduard Tomàs
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Restorando
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menosEduard Tomàs
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsErnesto Anaya
 
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
 
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
 

La actualidad más candente (20)

Programación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFluxProgramación Reactiva con Spring WebFlux
Programación Reactiva con Spring WebFlux
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
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
 
Novedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Novedades en Arquitectura Front End // Meetup UX UI @UTN MendozaNovedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Novedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
 
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
 
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
 
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
 
[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)[El comercio]php zend framework (speech)
[El comercio]php zend framework (speech)
 
Pruebas del servicio web
Pruebas del servicio webPruebas del servicio web
Pruebas del servicio web
 
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
OpenNebulaConf 2016 - Fast Prototyping of a C.O. into a Micro Data Center - A...
 
Servidores web: cloud
Servidores web: cloudServidores web: cloud
Servidores web: cloud
 
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDAKCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
KCDS 2021- Escalando workloads serverless en Kubernetes con KEDA
 
Kubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why'sKubernetes: Do's, don'ts and why's
Kubernetes: Do's, don'ts and why's
 
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
Kubernetes technical overview and our experience at Restorando :: Buenos Aire...
 
Docker y todo eso... más o menos
Docker y todo eso... más o menosDocker y todo eso... más o menos
Docker y todo eso... más o menos
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
 
Tolerancia a fallas, service mesh y chassis
Tolerancia a fallas, service mesh y chassisTolerancia a fallas, service mesh y chassis
Tolerancia a fallas, service mesh y chassis
 
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
 
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
 

Similar a Have you met Istio?

Mitos y alcances de una CCNA | Looptalks
Mitos y alcances de una CCNA | LooptalksMitos y alcances de una CCNA | Looptalks
Mitos y alcances de una CCNA | LooptalksLoopTalks
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...ssuserc860fb
 
Seguridad en Cloud Computing - Segu-Info
Seguridad en Cloud Computing - Segu-InfoSeguridad en Cloud Computing - Segu-Info
Seguridad en Cloud Computing - Segu-InfoCristian Borghello
 
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)avanttic Consultoría Tecnológica
 
Plataforma de Interoperabilidad - PIDE para Servicios Públicos en Línea - Perú
Plataforma de Interoperabilidad - PIDE para Servicios Públicos en Línea - PerúPlataforma de Interoperabilidad - PIDE para Servicios Públicos en Línea - Perú
Plataforma de Interoperabilidad - PIDE para Servicios Públicos en Línea - PerúCésar Vilchez Inga
 
Presentación Seguridad IoT en Sanidad
Presentación Seguridad IoT en SanidadPresentación Seguridad IoT en Sanidad
Presentación Seguridad IoT en SanidadJuan José Domenech
 
Presentación Seguridad IoT en Sanidad
Presentación Seguridad IoT en SanidadPresentación Seguridad IoT en Sanidad
Presentación Seguridad IoT en SanidadRamón Salado Lucena
 
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?Denodo
 
Seguridad para Cloud Computing
Seguridad para Cloud ComputingSeguridad para Cloud Computing
Seguridad para Cloud ComputingGabriel Marcos
 
Diseño y simulación de un data center cloud computing que cumpla con la norma...
Diseño y simulación de un data center cloud computing que cumpla con la norma...Diseño y simulación de un data center cloud computing que cumpla con la norma...
Diseño y simulación de un data center cloud computing que cumpla con la norma...Antony Quispe Paitan
 
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWSRicardo González
 
Jesús Luna
Jesús LunaJesús Luna
Jesús LunaJSe
 
Tecnologias digitales y aspectos legales en el cloud y otros
Tecnologias digitales y aspectos legales en el cloud y otrosTecnologias digitales y aspectos legales en el cloud y otros
Tecnologias digitales y aspectos legales en el cloud y otrosClub eadaBnT
 
Commit conf arquitectura-microservicios_v1.0
Commit conf  arquitectura-microservicios_v1.0Commit conf  arquitectura-microservicios_v1.0
Commit conf arquitectura-microservicios_v1.0Alfredo García Lavilla
 
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS SummitDeep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS SummitAmazon Web Services
 
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosCl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosTomás García-Merás
 
Seguridad en la nube exposicion completa
Seguridad en la nube   exposicion completaSeguridad en la nube   exposicion completa
Seguridad en la nube exposicion completaMaxwell Kenshin
 

Similar a Have you met Istio? (20)

Mitos y alcances de una CCNA | Looptalks
Mitos y alcances de una CCNA | LooptalksMitos y alcances de una CCNA | Looptalks
Mitos y alcances de una CCNA | Looptalks
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
 
Seguridad en Cloud Computing - Segu-Info
Seguridad en Cloud Computing - Segu-InfoSeguridad en Cloud Computing - Segu-Info
Seguridad en Cloud Computing - Segu-Info
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Seguridad en la nube
Seguridad en la nubeSeguridad en la nube
Seguridad en la nube
 
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)
avanttic - webinar: Oracle Seguridad-Desarrollo Software (18-06-2015)
 
Plataforma de Interoperabilidad - PIDE para Servicios Públicos en Línea - Perú
Plataforma de Interoperabilidad - PIDE para Servicios Públicos en Línea - PerúPlataforma de Interoperabilidad - PIDE para Servicios Públicos en Línea - Perú
Plataforma de Interoperabilidad - PIDE para Servicios Públicos en Línea - Perú
 
Presentación Seguridad IoT en Sanidad
Presentación Seguridad IoT en SanidadPresentación Seguridad IoT en Sanidad
Presentación Seguridad IoT en Sanidad
 
Presentación Seguridad IoT en Sanidad
Presentación Seguridad IoT en SanidadPresentación Seguridad IoT en Sanidad
Presentación Seguridad IoT en Sanidad
 
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
¿Cómo afianzar la transformación digital con APIs de datos en tiempo real?
 
Seguridad para Cloud Computing
Seguridad para Cloud ComputingSeguridad para Cloud Computing
Seguridad para Cloud Computing
 
Seguridad en la nube
Seguridad en la nubeSeguridad en la nube
Seguridad en la nube
 
Diseño y simulación de un data center cloud computing que cumpla con la norma...
Diseño y simulación de un data center cloud computing que cumpla con la norma...Diseño y simulación de un data center cloud computing que cumpla con la norma...
Diseño y simulación de un data center cloud computing que cumpla con la norma...
 
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
20230511 Seguridad en la nube para Startups: Aprovecha las herramientas de AWS
 
Jesús Luna
Jesús LunaJesús Luna
Jesús Luna
 
Tecnologias digitales y aspectos legales en el cloud y otros
Tecnologias digitales y aspectos legales en el cloud y otrosTecnologias digitales y aspectos legales en el cloud y otros
Tecnologias digitales y aspectos legales en el cloud y otros
 
Commit conf arquitectura-microservicios_v1.0
Commit conf  arquitectura-microservicios_v1.0Commit conf  arquitectura-microservicios_v1.0
Commit conf arquitectura-microservicios_v1.0
 
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS SummitDeep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
Deep dive on Amazon Managed Blockchain - SVC301 - Mexico City AWS Summit
 
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de serviciosCl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
Cl@ve Firma - Visión práctica desde el punto de vista del proveedor de servicios
 
Seguridad en la nube exposicion completa
Seguridad en la nube   exposicion completaSeguridad en la nube   exposicion completa
Seguridad en la nube exposicion completa
 

Más de Paradigma Digital

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Paradigma Digital
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the futureParadigma Digital
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microserviciosParadigma Digital
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalParadigma Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octParadigma Digital
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJavaParadigma Digital
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?Paradigma Digital
 
Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOParadigma Digital
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsParadigma Digital
 

Más de Paradigma Digital (20)

Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
Bots 3.0: Dejando atrás los bots conversacionales con Dialogflow.
 
Horneando apis
Horneando apisHorneando apis
Horneando apis
 
Java 8 time to join the future
Java 8  time to join the futureJava 8  time to join the future
Java 8 time to join the future
 
Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Implementando microservicios
Implementando microserviciosImplementando microservicios
Implementando microservicios
 
Equipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma DigitalEquipo de Marketing de Paradigma Digital
Equipo de Marketing de Paradigma Digital
 
Overview atlas (1)
Overview atlas (1)Overview atlas (1)
Overview atlas (1)
 
Cómo usar google analytics
Cómo usar google analyticsCómo usar google analytics
Cómo usar google analytics
 
Transformación Digital
Transformación DigitalTransformación Digital
Transformación Digital
 
Manuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4octManuel Hurtado. Couchbase paradigma4oct
Manuel Hurtado. Couchbase paradigma4oct
 
Programación Reactiva con RxJava
Programación Reactiva con RxJavaProgramación Reactiva con RxJava
Programación Reactiva con RxJava
 
¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?¿Cómo vencer a los dragones digitales?
¿Cómo vencer a los dragones digitales?
 
Python y Flink
Python y FlinkPython y Flink
Python y Flink
 
Kafka y python
Kafka y pythonKafka y python
Kafka y python
 
Cultura Digital Paradigma
Cultura Digital ParadigmaCultura Digital Paradigma
Cultura Digital Paradigma
 
Analysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEOAnalysis of Websites as Graphs for SEO
Analysis of Websites as Graphs for SEO
 
Use Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projectsUse Groovy&Grails in your spring boot projects
Use Groovy&Grails in your spring boot projects
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
ECMAScript 6
ECMAScript 6ECMAScript 6
ECMAScript 6
 
HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components
 

Último

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 

Último (20)

PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 

Have you met Istio?

  • 1. Have you met Istio? Abraham Rodríguez Enero 2019
  • 2. Índice 1. Introducción a service mesh 2. Have you met Istio? 3. Gestión de tráfico 4. Gestión de políticas y telemetría 5. Seguridad Abraham Rodríguez Arquitecto Cloud Native @ Paradigma
  • 4. Have you met Istio? Introducción: Repaso a service-mesh “A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application” William Morgan, Buoyant CEO April 2017
  • 5. Have you met Istio? Introducción: patrones y conceptos Plano de datos Plano de control Sidecar-proxy
  • 6. Have you met Istio?
  • 7. Have you met Istio? Origen y propósito “An open source project that provides a uniform way to connect, secure, manage and monitor microservices” “Imagine if we could transparently inject a layer of infrastructure between a service and the network that gives operators the controls they need while freeing developers from having to bake solutions to distributed system problems into their code”
  • 8. Have you met Istio? Historia 24M 24S 11D 28N 31J ... Istio es liberado Open Source en versión 0.1 Se publica Istio 1.0 Red Hat anuncia Openshift Service Mesh basado en Istio Google anuncia la disponibilidad de Istio en GKE Amazon estrena AWS App Mesh basado en Envoy
  • 9. Have you met Istio? Principales funcionalidades ● Circuit breaking, reintentos, outlier detection, inyección de fallos (latencia y errores) ● Canary deployments, A/B testing, enrutado por versiones y otros criterios ● Control de acceso por cuota ● Control de acceso por listas blancas / negras ● Trazabilidad distribuida ● Logging ● Métricas ● Integración con soluciones de terceros ● Autenticación a externos y entre proxies ● Autorización basada en roles con diversos niveles de granularidad Gestión del tráfico Gestión de políticas Telemetría Seguridad
  • 10. Have you met Istio? Arquitectura y responsabilidades
  • 12. Have you met Istio? Gestión del tráfico con Pilot ● Responsabilidades: ○ registro / descubrimiento de servicios ○ configuración de los proxies Envoy ● El registro / configuración en Kubernetes se realiza monitorizando el API para detectar cambios ● Istio incluye el concepto de versión para distinguir versiones o entornos ● Opciones de enrutado: ○ En base a versión ○ En base a cabeceras ○ Por porcentajes ○ ... ● Podemos hacer enrutado del tráfico saliente
  • 13. Have you met Istio? Gestión del tráfico - flujo de petición
  • 14. Have you met Istio? Gestión del tráfico - proxies Envoy ● Pilot es quien realiza el descubrimiento pero los proxies Envoy son los que hacen la comprobación de salud de las instancias ● Se utiliza un sistema de retirada incremental de la instancia similar al outlier detection ● Balanceo en cliente. Algoritmos: ○ Round robin ○ Random ○ Weighted least request ● Resiliencia de llamadas: ○ Timeouts ○ Reintentos con delay incremental ○ Circuit breaking ○ Outlier detection ○ Inyección de fallo (delay y error)
  • 15. Have you met Istio? Gestión del tráfico - Recursos Enrutado. Machea peticiones a servicios o versiones de servicios Criterios: invocador, path, cabeceras … Es donde se asigna porcentaje de llamadas a cada versión, timeouts, reintentos, inyección de fallos... Políticas a aplicar después del enrutado: algoritmo de balanceo, circuit breaking. Admite diferentes configuraciones por versión Nos permite añadir entradas al registro para enrutar peticiones fuera del descubrimiento del service-mesh, por ejemplo a base de datos Balanceo para las peticiones entrantes al service-mesh. Una regla del gateway se puede enganchar con un VirtualService VirtualService DestinationRule ServiceEntry Gateway
  • 16. Have you met Istio? Gestión del tráfico - Recursos
  • 17. Have you met Istio? Aplicación de ejemplo: BookInfo
  • 18. Have you met Istio? Gestión del tráfico - Ejemplos 1. Enrutado de peticiones: a. Enrutar todo el tráfico a la v1 de reviews b. Enrutar el tráfico en función de una cabecera 2. Migración de tráfico entre versiones 3. Configuración del gateway 4. Configuración de timeouts e inyección de delays
  • 19. Gestión de políticas y telemetría
  • 20. Have you met Istio? Gestión de políticas y telemetría con Mixer ● Se integra con sistemas de terceros a través de adaptadores para soportar su funcionalidad ● Los proxies cachean configuración de cuota y autorización ● Los proxies acumulan en un buffer los datos de telemetría ● A su vez Mixer cachea y acumula en un buffer los datos correspondientes
  • 21. Have you met Istio? Gestión de políticas - Ejemplo: Limitación de cuota kind: memquota metadata: name: handler namespace: istio-system spec: quotas: - name: requestcount.quota.istio-system maxAmount: 500 validDuration: 1s overrides: - dimensions: destination: reviews maxAmount: 1 validDuration: 5s - dimensions: destination: productpage maxAmount: 2 validDuration: 5s kind: quota metadata: name: requestcount namespace: istio-system spec: dimensions: destination: destination.labels["app"] | destination.service | "unknown" destinationVersion: destination.labels["version"] | "unknown" --- kind: rule metadata: name: quota spec: actions: - handler: handler.memquota instances: - requestcount.quota
  • 22. Have you met Istio? Gestión de políticas - Ejemplo: Limitación de cuota kind: QuotaSpecBinding metadata: name: request-count namespace: istio-system spec: quotaSpecs: - name: request-count namespace: istio-system services: - name: productpage namespace: default kind: QuotaSpec metadata: name: request-count namespace: istio-system spec: rules: - quotas: - charge: 1 quota: requestcount
  • 23. Have you met Istio? Telemetría - Recursos Cada pieza de información que se obtiene (tiempo de procesamiento, IP del cliente ...) Configuran la comunicación con las diferentes soluciones de telemetría y control Como mapear atributos con información para nutrir a cada manejador Que instancias envían a información a que manejadores Attributes Handlers Instances Rules
  • 24. Have you met Istio? Telemetría - Visualización ● Generación del grafo de dependencias de servicios ● Métricas de uso del service-mesh con Grafana ● Visualizar trazabilidad distribuida con Jaeger
  • 26. Have you met Istio? Seguridad - Objetivos “The goals of Istio Security are: ● Security by default: no changes needed for application code and infrastructure ● Defense in depth: integrate with existing security systems to provide multiple layers of defense ● Zero-trust network: build security solutions on untrusted networks”
  • 27. Have you met Istio? Seguridad - Visión general
  • 28. Have you met Istio? Seguridad - Autenticación ● Validamos la identidad entre servicios utilizando certificados ● Para los servidores: se monitoriza el API de K8s y para cada serviceAccount se genera un par de claves y el certificado, almacenados como secrets en Citadel, y que son asociados a los pods ● Para los clientes: se valida contra el secure naming de Pilot que dicha el dueño de dicho certificado (serviceAccount) puede ejecutar ese servicio ● Podemos validar la identidad del cliente a través de su JWT ● Podemos proporcionar la clave pública para la validación o enganchar con sistemas de terceros TLS mutuo Validación JWT
  • 29. Have you met Istio? Seguridad - Autorización ● La semántica de los permisos se basa en roles (RBAC) ● Podemos introducir autorización a nivel de comunicación entre servicios o de usuario con servicio ● La configuración se hace a través de políticas que proporciona Pilot ● Nos proporciona bastante flexibilidad porque podemos definir permisos en base a propiedades de la petición ... ● Podemos conectar la autorización con sistemas de terceros a través de los handlers de Mixer apiVersion: "rbac.istio.io/v1alpha1" kind: RbacConfig metadata: name: default spec: mode: 'ON_WITH_INCLUSION' inclusion: namespaces: ["default"]
  • 30. Have you met Istio? Autorización - Recursos apiVersion: "rbac.istio.io/v1alpha1" kind: ServiceRole metadata: name: products-viewer namespace: default spec: rules: - services: ["products.default.svc.cluster.local"] methods: ["GET", "HEAD"] paths: ["*"] constraints: - key: request.headers[version] values: ["v1", "v2"] apiVersion: "rbac.istio.io/v1alpha1" kind: ServiceRoleBinding metadata: name: test-binding-products namespace: default spec: subjects: - user: "service-account-a" - user: "istio-ingress-service-account" properties: request.auth.claims[email]: "a@foo.com" roleRef: kind: ServiceRole name: "products-viewer"