SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Cliente. Nombre proyecto.
Poniendo en contexto service mesh
Alfredo Espejel
Poniendo en contexto service mesh
Historia
Poniendo en contexto service mesh
1
Poniendo en contexto service mesh
1 Historia / El monolito
Poniendo en contexto service mesh
1 Historia / El monolito
Estilo de arquitectura tradicional.
Una única aplicación se encarga de todo:
Poniendo en contexto service mesh
1 Historia / El monolito
Escalado:
Poniendo en contexto service mesh
1 Historia / El monolito
Ciclo de cambio:
Poniendo en contexto service mesh
1 Historia / microservicios
Poniendo en contexto service mesh
1 Historia / microservicios
Una aplicación está compuesta por un
conjunto de servicios
Poniendo en contexto service mesh
1 Historia / microservicios
Escalado
Poniendo en contexto service mesh
1 Historia / microservicios
Ciclo de cambio
Poniendo en contexto service mesh
1 Historia / contenedores
Poniendo en contexto service mesh
1 Historia / contenedores
Docker se ha convertido en el nuevo POSIX, en la nueva interfaz universal.
Donde antes se ponían máquinas virtuales para aislamiento, etc. Ahora se
ven cada vez más contenedores.
Hypervisor + SO
SO SO
SO
Poniendo en contexto service mesh
1 Historia / contenedores
Donde antes solo había unas pocas VMs,
empezamos a tener muchos contenedores:
Pets vs Cattle!
Poniendo en contexto service mesh
1 Historia / orquestadores
Poniendo en contexto service mesh
1 Historia / orquestadores
Qué aportan?
● Distribución inteligente de los contenedores
● Número objetivo de contenedores
● Service discovery basado en DNS
● Balanceo L3/L4
● ...
Poniendo en contexto service mesh
1 Historia / orquestadores
Qué no aportan?
● Control sobre degradación (y propagación de la degradación)
● Gestión de cambios de topología
● Balanceo del lado del cliente
● ...
Poniendo en contexto service mesh
1 Historia / computación distribuida
Computación altamente distribuida:
No se puede confiar en la red
Poniendo en contexto service mesh
1 Historia / computación distribuida
1. The network is reliable.
2. Latency is zero.
3. Bandwidth is infinite.
4. The network is secure.
5. Topology doesn't change.
6. There is one administrator.
7. Transport cost is zero.
8. The network is homogeneous.
https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
Poniendo en contexto service mesh
Service mesh
Poniendo en contexto service mesh
2
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Todo lo que no nos aportaban los orquestadores, se conseguía en forma de
librerías u otros microservicios.
Apareciendo frameworks enteros orientados a mejorar la resiliencia de
aplicaciones.
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Aparece para springboot:
● spring-cloud-netflix-hystrix
● spring-cloud-netflix-zuul
● spring-cloud-netflix-eureka-client
● spring-cloud-netflix-ribbon
● spring-cloud-netflix-atlas
● spring-cloud-netflix-spectator
● spring-cloud-netflix-hystrix-stream
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Aparece para vert.x:
● vertx-circuit-breaker
● vertx-service-discovery
● vertx-dropwizard-metrics
● vertx-zipkin
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Y para go, python, nodejs... y un largo etc.
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Es decir, que para un largo número de lenguajes se tenían que desarrollar
estrategias de:
● Service discovery
● Load balancing
● Circuit breaking
● Retries
● ...
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Alternativas?
Service mesh
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Una infraestructura de software dedicada para
manejar la comunicación entre microservicios.
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Hay dos formas de desplegar un service mesh (1/2):
- Con un proxy por host:
Poniendo en contexto service mesh
2 Service mesh / Qué es?
POD: Unidad lógica básica de kubernetes
POD
Container
Container
Container
· IP
· Hostname
· Volúmenes
· Destino
compartido
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Hay dos formas de desplegar un service mesh (2/2):
- Como sidecar de un contenedor:
Poniendo en contexto service mesh
2 Service mesh / Qué es?
Dentro de un service mesh, se distinguen dos planos:
● Plano de datos
● Plano de control
Poniendo en contexto service mesh
2 Service mesh / Plano de datos
Poniendo en contexto service mesh
2 Service mesh / Plano de datos
A alto nivel, la responsabilidad del plano de datos es asegurar que las
solicitudes sean entregadas desde el microservicio A al microservicio B.
Proporciona las siguientes funcionalidades:
● Service Discovery
● Comprobación de disponibilidad (Health check).
● Enrutamiento y balanceo de carga: time-out, reintentos,
circuit-breaker, fail-over…
● Securización y control de acceso (autenticación / autorización).
● Métricas, monitorización, logging y trazabilidad distribuidos…
Poniendo en contexto service mesh
2 Service mesh / Plano de control
Poniendo en contexto service mesh
2 Service mesh / Alternativas
Poniendo en contexto service mesh
2 Service mesh / Demo time!
Demo time!
Poniendo en contexto service mesh
2 Service mesh / Demo time!
Demo time!
webappwebapp proxy
Poniendo en contexto service mesh
Eso es todo
Muchas gracias por mirar en detalle :)
Poniendo en contexto service mesh
chuleta.txt
#Arranque de httpbin:
docker run -it --rm --name httpbin citizenstig/httpbin
docker run -it --rm --link httpbin tutum/curl curl -X GET http://httpbin:8000/headers
#Arranque envoy
docker run -it --name proxy --link httpbin -v $(pwd)/envoy_config.json:/etc/envoy_config.json envoyproxy/envoy envoy -c /etc/envoy_config.json
#Headers a través de envoy
docker run -it --rm --link proxy tutum/curl curl -X GET http://proxy:15001/headers
#Envoy stats
docker run -it --rm --link proxy tutum/curl curl -X GET http://proxy:15000/stats
#Petición 500
docker run -it --rm --link proxy tutum/curl curl -X GET http://proxy:15001/status/500
Gist: https://gist.github.com/aespejel/c534b3273240bf80a532730b58fd6276
Gist: https://gist.github.com/aespejel/d379d7f23a228391d0673e0e6121d7ae
envoy_config.json

Más contenido relacionado

Más de Paradigma Digital

Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API ManagementParadigma Digital
 
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
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxParadigma 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
 
¿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
 
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)

Meetup microservicios: API Management
Meetup microservicios: API ManagementMeetup microservicios: API Management
Meetup microservicios: API Management
 
Meetup de kubernetes, conceptos básicos.
Meetup  de kubernetes, conceptos básicos.Meetup  de kubernetes, conceptos básicos.
Meetup de kubernetes, conceptos básicos.
 
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptxDocker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
Docker, kubernetes, openshift y openstack, para mi abuela. techfest 2017.pptx
 
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
 
¿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!
 
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
 
Introducción a Kubernetes
Introducción a KubernetesIntroducción a Kubernetes
Introducción a Kubernetes
 
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
 

Último

Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxchinojosa17
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
TALLER DE ANALISIS SOLUCION DE TECNOLOGIA
TALLER DE ANALISIS SOLUCION DE TECNOLOGIATALLER DE ANALISIS SOLUCION DE TECNOLOGIA
TALLER DE ANALISIS SOLUCION DE TECNOLOGIAobandopaula444
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxNicolas Villarroel
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfYuriFuentesMartinez2
 
Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)BrianaFrancisco
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAcoloncopias5
 
que es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxque es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxmrzreyes12
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDLeslie Villar
 
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat Vers...
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat  Vers...11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat  Vers...
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat Vers...#LatamDigital
 
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.Aldo Fernandez
 
Medios Digitales Teorías y Metodologías de Análisis.pptx
Medios Digitales Teorías y Metodologías de Análisis.pptxMedios Digitales Teorías y Metodologías de Análisis.pptx
Medios Digitales Teorías y Metodologías de Análisis.pptxUniversidad de Bielefeld
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx241518192
 
LA ETICA DEL UTILITARISMO DE JEREMY BENTHAM
LA ETICA DEL UTILITARISMO DE JEREMY BENTHAMLA ETICA DEL UTILITARISMO DE JEREMY BENTHAM
LA ETICA DEL UTILITARISMO DE JEREMY BENTHAMalejandroortizm
 
Software y servicios de internet mapa conceptual.pdf
Software y servicios de internet mapa conceptual.pdfSoftware y servicios de internet mapa conceptual.pdf
Software y servicios de internet mapa conceptual.pdfDanielaEspitiaHerrer
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.ayalayenifer617
 

Último (17)

Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptx
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
TALLER DE ANALISIS SOLUCION DE TECNOLOGIA
TALLER DE ANALISIS SOLUCION DE TECNOLOGIATALLER DE ANALISIS SOLUCION DE TECNOLOGIA
TALLER DE ANALISIS SOLUCION DE TECNOLOGIA
 
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptx
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
 
Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
 
que es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxque es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptx
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
 
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat Vers...
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat  Vers...11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat  Vers...
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat Vers...
 
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
 
Medios Digitales Teorías y Metodologías de Análisis.pptx
Medios Digitales Teorías y Metodologías de Análisis.pptxMedios Digitales Teorías y Metodologías de Análisis.pptx
Medios Digitales Teorías y Metodologías de Análisis.pptx
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
 
LA ETICA DEL UTILITARISMO DE JEREMY BENTHAM
LA ETICA DEL UTILITARISMO DE JEREMY BENTHAMLA ETICA DEL UTILITARISMO DE JEREMY BENTHAM
LA ETICA DEL UTILITARISMO DE JEREMY BENTHAM
 
Software y servicios de internet mapa conceptual.pdf
Software y servicios de internet mapa conceptual.pdfSoftware y servicios de internet mapa conceptual.pdf
Software y servicios de internet mapa conceptual.pdf
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.
 

Poniendo en contexto Service Mesh

  • 1. Cliente. Nombre proyecto. Poniendo en contexto service mesh Alfredo Espejel
  • 2. Poniendo en contexto service mesh Historia Poniendo en contexto service mesh 1
  • 3. Poniendo en contexto service mesh 1 Historia / El monolito
  • 4. Poniendo en contexto service mesh 1 Historia / El monolito Estilo de arquitectura tradicional. Una única aplicación se encarga de todo:
  • 5. Poniendo en contexto service mesh 1 Historia / El monolito Escalado:
  • 6. Poniendo en contexto service mesh 1 Historia / El monolito Ciclo de cambio:
  • 7. Poniendo en contexto service mesh 1 Historia / microservicios
  • 8. Poniendo en contexto service mesh 1 Historia / microservicios Una aplicación está compuesta por un conjunto de servicios
  • 9. Poniendo en contexto service mesh 1 Historia / microservicios Escalado
  • 10. Poniendo en contexto service mesh 1 Historia / microservicios Ciclo de cambio
  • 11. Poniendo en contexto service mesh 1 Historia / contenedores
  • 12. Poniendo en contexto service mesh 1 Historia / contenedores Docker se ha convertido en el nuevo POSIX, en la nueva interfaz universal. Donde antes se ponían máquinas virtuales para aislamiento, etc. Ahora se ven cada vez más contenedores. Hypervisor + SO SO SO SO
  • 13. Poniendo en contexto service mesh 1 Historia / contenedores Donde antes solo había unas pocas VMs, empezamos a tener muchos contenedores: Pets vs Cattle!
  • 14. Poniendo en contexto service mesh 1 Historia / orquestadores
  • 15. Poniendo en contexto service mesh 1 Historia / orquestadores Qué aportan? ● Distribución inteligente de los contenedores ● Número objetivo de contenedores ● Service discovery basado en DNS ● Balanceo L3/L4 ● ...
  • 16. Poniendo en contexto service mesh 1 Historia / orquestadores Qué no aportan? ● Control sobre degradación (y propagación de la degradación) ● Gestión de cambios de topología ● Balanceo del lado del cliente ● ...
  • 17. Poniendo en contexto service mesh 1 Historia / computación distribuida Computación altamente distribuida: No se puede confiar en la red
  • 18. Poniendo en contexto service mesh 1 Historia / computación distribuida 1. The network is reliable. 2. Latency is zero. 3. Bandwidth is infinite. 4. The network is secure. 5. Topology doesn't change. 6. There is one administrator. 7. Transport cost is zero. 8. The network is homogeneous. https://en.wikipedia.org/wiki/Fallacies_of_distributed_computing
  • 19. Poniendo en contexto service mesh Service mesh Poniendo en contexto service mesh 2
  • 20. Poniendo en contexto service mesh 2 Service mesh / Qué es? Todo lo que no nos aportaban los orquestadores, se conseguía en forma de librerías u otros microservicios. Apareciendo frameworks enteros orientados a mejorar la resiliencia de aplicaciones.
  • 21. Poniendo en contexto service mesh 2 Service mesh / Qué es? Aparece para springboot: ● spring-cloud-netflix-hystrix ● spring-cloud-netflix-zuul ● spring-cloud-netflix-eureka-client ● spring-cloud-netflix-ribbon ● spring-cloud-netflix-atlas ● spring-cloud-netflix-spectator ● spring-cloud-netflix-hystrix-stream
  • 22. Poniendo en contexto service mesh 2 Service mesh / Qué es? Aparece para vert.x: ● vertx-circuit-breaker ● vertx-service-discovery ● vertx-dropwizard-metrics ● vertx-zipkin
  • 23. Poniendo en contexto service mesh 2 Service mesh / Qué es? Y para go, python, nodejs... y un largo etc.
  • 24. Poniendo en contexto service mesh 2 Service mesh / Qué es? Es decir, que para un largo número de lenguajes se tenían que desarrollar estrategias de: ● Service discovery ● Load balancing ● Circuit breaking ● Retries ● ...
  • 25. Poniendo en contexto service mesh 2 Service mesh / Qué es? Alternativas? Service mesh
  • 26. Poniendo en contexto service mesh 2 Service mesh / Qué es? Una infraestructura de software dedicada para manejar la comunicación entre microservicios.
  • 27. Poniendo en contexto service mesh 2 Service mesh / Qué es? Hay dos formas de desplegar un service mesh (1/2): - Con un proxy por host:
  • 28. Poniendo en contexto service mesh 2 Service mesh / Qué es? POD: Unidad lógica básica de kubernetes POD Container Container Container · IP · Hostname · Volúmenes · Destino compartido
  • 29. Poniendo en contexto service mesh 2 Service mesh / Qué es? Hay dos formas de desplegar un service mesh (2/2): - Como sidecar de un contenedor:
  • 30. Poniendo en contexto service mesh 2 Service mesh / Qué es? Dentro de un service mesh, se distinguen dos planos: ● Plano de datos ● Plano de control
  • 31. Poniendo en contexto service mesh 2 Service mesh / Plano de datos
  • 32. Poniendo en contexto service mesh 2 Service mesh / Plano de datos A alto nivel, la responsabilidad del plano de datos es asegurar que las solicitudes sean entregadas desde el microservicio A al microservicio B. Proporciona las siguientes funcionalidades: ● Service Discovery ● Comprobación de disponibilidad (Health check). ● Enrutamiento y balanceo de carga: time-out, reintentos, circuit-breaker, fail-over… ● Securización y control de acceso (autenticación / autorización). ● Métricas, monitorización, logging y trazabilidad distribuidos…
  • 33. Poniendo en contexto service mesh 2 Service mesh / Plano de control
  • 34. Poniendo en contexto service mesh 2 Service mesh / Alternativas
  • 35. Poniendo en contexto service mesh 2 Service mesh / Demo time! Demo time!
  • 36. Poniendo en contexto service mesh 2 Service mesh / Demo time! Demo time! webappwebapp proxy
  • 37. Poniendo en contexto service mesh Eso es todo Muchas gracias por mirar en detalle :)
  • 38. Poniendo en contexto service mesh chuleta.txt #Arranque de httpbin: docker run -it --rm --name httpbin citizenstig/httpbin docker run -it --rm --link httpbin tutum/curl curl -X GET http://httpbin:8000/headers #Arranque envoy docker run -it --name proxy --link httpbin -v $(pwd)/envoy_config.json:/etc/envoy_config.json envoyproxy/envoy envoy -c /etc/envoy_config.json #Headers a través de envoy docker run -it --rm --link proxy tutum/curl curl -X GET http://proxy:15001/headers #Envoy stats docker run -it --rm --link proxy tutum/curl curl -X GET http://proxy:15000/stats #Petición 500 docker run -it --rm --link proxy tutum/curl curl -X GET http://proxy:15001/status/500 Gist: https://gist.github.com/aespejel/c534b3273240bf80a532730b58fd6276 Gist: https://gist.github.com/aespejel/d379d7f23a228391d0673e0e6121d7ae envoy_config.json