SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
Informaciónconfidencial y propietariade TODO1® Services,Inc.
Orquestación de Microservicios
Introducción a arquitecturas de desarrollo modernas basadas
en sistemas distribuidos.
Información confidencial y propietaria de TODO1® Services, Inc.
Expositor
Nombres: Jaider Anillo Garcia
Perfil: Jaider es Ingeniero de Sistemas de la Fundación Universitaria Tecnológico Comfenalco, con un
Diplomado en Gerencia de Proyectos Informáticos y un Magister en Gerencia de Proyectos de la
Universidad Viña del Mar.
2
Información confidencial y propietaria de TODO1® Services, Inc.
Agenda
• Definición
• Evolución
• Porque Usarlos?
• Componentes de arquitectura
• Acceso a datos y comunicación
• Componentes necesarios para una
correcta implementación de aplicaciones
basadas en sistemas distribuidos
• Procesos CI/CD para microservicios
01
02
03
04
Microservicios
Arquitectura
Componentes
Ciclo de Vida
• Recursos que complementan y facilitan el
desarrollo de aplicaciones bajo sistemas
distribuidos
05
Recursos
05
Título corto
• Patrones
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Definición
– Sistemas Distribuidos: La computación distribuida o informática en malla (grid) es
un modelo para resolver problemas de computación masiva utilizando un gran número
de ordenadores organizados en clústeres incrustados en una infraestructura de
telecomunicaciones distribuida.
– Microservicios: La Arquitectura de microservicios es una aproximación para el
desarrollo software que consiste en construir una aplicación como un conjunto de
pequeños servicios, los cuales se ejecutan en su propio proceso y se comunican con
mecanismos ligeros (normalmente una API de recursos HTTP). Cada servicio se
encarga de implementar una funcionalidad completa del negocio.
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Evolución
Monolítica: Alto acoplamiento,cualquier
cambio afecta a la totalidadde la aplicación,
CI/CD una tarea casi imposible.
SOA: Menor acoplamiento,permitía
desarrollarcódigo en partes más pequeñas,
pero todo debe estar comunicadoy
estrictamente desarrolladopara que encaje
con el resto del desarrollo.
Microservicios:Desacoplamientototal,
permite desarrollarpequeñosservicios de
manera totalmenteindependiente
(Agnósticos y Poliglotas). Su exposiciónde
servicios es dada a través de la exposición de
API´S.
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Porque usarlos?
– Ciclo de vida CI/CD más rápido.
– Reducir tiempo de salida al mercado.
– Protocolos de red para exponer
servicios y comunicarse.
– Integración con otros sistemas
– Servicios de alta disponibilidad y
rendimiento.
– Centralizar funcionalidad.
– Mejor control de fallos y testeabilidad.
Reactive Manifesto
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Patrones
• Existen muchos patrones relacionados con la arquitectura de microservicios, mas
sin embargo la correcta selección e implementación de los mismos puede
conllevar al éxito o fracaso.
• Empresas lideres a nivel mundial en implementación de microservicios tales
como: Amazon, Netflix e Ebay, han liberado herramientas que facilitan el uso de
esta arquitectura.
• Algunos de los patrones serán revisados dentro del desarrollo de esta sesión, mas
sin embargo veamos algunos de los mas importantes a la hora de desarrollar
microservicios.
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Patrones
• DDD (Domain Driven Design)
Domain driven design es un enfoque para el desarrollo de software definido por Eric Evans
en su libro ”Domain-driven design: Tackling Complexity in the Heart of Software”, que se
centra en un modelo rico, expresivo y en constante evolución para resolver problemas del
dominio de una forma semántica.
Aspectos:
Lenguaje Ubicuo
Capas Conceptuales:
Interface de Usuario
Aplicación
Dominio
Infraestructura
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Patrones
• Llamada también ports and
adapters.
• Objetivo: El principal objetivo de la
arquitectura hexagonal es separar
nuestra aplicación en distintas
capas que tienen su propia
responsabilidad.
Arquitectura Hexagonal
ArquitecturaHexagonal
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Patrones
• En esta arquitectura contamos
contamos con Comando y
Consultas, con el fin de desagregar
funcionalidades.
• Permite disponer de bases de datos
independientes adecuadas para las
necesidades.
• Permite escalar por separado las
funcionalidades.
CQRS (Command Query Responsibility Segregation)
Detalle Patrón CQRS
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Patrones
• La arquitectura enfocada a eventos
mediante el envío y recepción de
eventos nos permite desacoplar
responsabilidades.
• Los servicios internos o externos
que reciban los eventos darán
tratamiento a ellos y emitirán
nuevos eventos de ser necesario.
Event Driven Architecture
Evnt Driven con Arquitectura Hexagonal
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / Patrones
Imagen: Chris Richardson
Resumen de Patrones para Arquitecturas de Microservicios
Información confidencial y propietaria de TODO1® Services, Inc.
Arquitectura / Componentes
– Los microservicios son mas
pequeños, desacoplados y
perfeccionados para realizar
pequeñas tareas de manera
eficiente.
– Aparte de la funcionalidad principal
del microservicio, necesitaremos
componentes específicos para hacer
una correcta implementación de la
arquitectura.
– Al lado derecho podemos observar
los retos de arquitectura planteados
para el desarrollo de microservicios.
Microservicios
Descubrimiento
Log
Seguridad
Configuración
Monitoreo
Registro
Componentes Arquitectura deMicroservicios
Información confidencial y propietaria de TODO1® Services, Inc.
Arquitectura /Acceso a Datos y Comunicación
– De la misma manera que en una
aplicación monolítica los
microservicios pueden acceder a
datos a través de capas de
persistencia, drivers o configuración
especifica para cada caso.
– Exponen funcionalidades a través de
API’s rest.
– Se comunican entre si con
protocolos http o mensajería.
Comunicación yAcceso a Datos
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes /Descubrimiento y Orquestación
– En la medida que nuestras
aplicaciones crecen se hace
necesario que despleguemos mayor
número de microservicios o
instancias de manera automática.
– Asignación de puerto e ip de manera
delegada.
– Al ser asignado aleatoriamente, se
hace necesario que descubramos y
registremos los nuevos servicios
creados automáticamente.
Servicio de Descubrimiento
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes /Descubrimiento y Orquestación
Los procesos que componen el servicio de
descubrimiento son:
- Registro: Consiste en el registro de
cada nueva instancia, dejando
consignado sus datos de ubicación,
como nodo, puerto e ip (Entre otros).
- Descubrimiento: Es el proceso que
permite tener acceso a la información
del registro.
Servicio de Descubrimiento
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes /Descubrimiento y Orquestación
Escalado en función de la demanda, como puede ser
con base al consumo de memoria, cpu, peticiones,
etc. los beneficios a resaltar son:
- Alta tolerancia a fallos: La recuperación se realiza
de forma automática.
- Escalado horizontal con funcionamiento elástico.
- Despliegues basados en estrategias predefinidas.
- Abstracción de la capa de microservicios.
- Conocer el estado de nuestro ecosistema.
- Soporte Multi-región.
Escalado Elástico
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes /Descubrimiento y Orquestación
• Herramientas disponibles para el servicio de Descubrimiento:
– Eureka (Spring Cloud Netflix)
– Zookeper
– Etcd
– Consul
• Herramientas para la orquestación:
– Ribbon + Eureka (Spring Cloud Netflix)
– Kubernetes
– Docker swarm
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Enrutamiento
Es importante resaltar componentes de un Api Gateway:
– Converge las solicitudes a través de un único punto de entrada (Api Gateway).
– Mapeo global de peticiones (Url’s).
– Abstracción de los microservicios.
– Filtros dinámicos, redireccionamiento con base en localización de las solicitudes.
• Herramientas:
– Zuul (Spring Cloud Netflix)
– Haproxy
– Api Gateway (AWS)
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Enrutamiento
API Gateway
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Gestión de Errores
En los sistemas distribuidos una falla o demora en la respuesta puede causar una caída
total de la aplicación. Por ende es necesario detectar las fallas y encapsular o contener la
propagación.
Funcionamiento Normal Falla en Solicitud
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Gestión de Errores
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Balanceador de Carga
• Es recomendado contar con un
balanceador de carga externo que
nos permita mejorar la fiabilidad de
nuestra aplicación, incrementando
además la disponibilidad y tolerancia
a fallos.
• Algunos ejemplos son:
– AWS (ELB).
– F5. Balanceador Externo
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Balanceador de Carga
• Balancear la carga entre las distintas
instancias de un microservicio.
haciéndolo más efectivo a la hora de
manejar las peticiones.
• Configuración de políticas de
balanceo.
• Integración con el servicio de
descubrimiento.
• Ejemplos:
– Ribbon (Spring Cloud Netflix).
Balanceador en el Cliente
Balanceador en el Cliente
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Monitorización
• Un aspecto importante a resaltar en la
arquitectura a microservicios es la
monitorización, contar con un panel
unificado con información en tiempo real
de cada microservicio.
• Ejemplos:
– Hystrix + turbine + Spring boot admin
Hystrix Dashboard
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Monitorización y Logs
Hystrix Dashboard
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Monitorización y Logs
• La centralización y explotación de logs
juega un papel importante de lo contrario
seria inmanejable la administración de los
mismos.
• Ejemplo:
– ELK
ELK Explotaciónde Información
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Monitorización y Logs
Kibana
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Trazabilidad de Peticiones
- En un sistema distribuido debemos
contar con la capacidad de registrar en
nuestros logs las trazas a nivel de
petición.
- Ejemplos:
- Spring Sleuth + Zipkin
Análisis de Solicitudes con Zipkin
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Servicios de Configuración
• Configuración centralizada de la
información.
• Algunos proveen la funcionalidad sincronizar
los archivos de configuración con
repositorios de git y captura de información
en caliente por parte de los microservicios.
• Ejemplo:
– Spring cloud config
– Archadius
– Consul
– Zookeeper Servicio de Configuración
Información confidencial y propietaria de TODO1® Services, Inc.
Componentes / Transaccionalidad
• Política de reintentos: usada en caídas temporales del servicio. Reintentar las
operaciones pude solventar el problema.
• Deshacer operaciones en su totalidad: Es importante conservar un estado previo
para conservar la consistencia de datos al momento de deshacer la operación.
• Ejecución distribuida: Puede utilizarse un servicio centralizado para la operación que
garantice la correcta finalización de la misma. Commit de dos fases.
Reintentos Deshacer Distribuida Coordinada
Información confidencial y propietaria de TODO1® Services, Inc.
Ciclo de Vida/ CI/CD
• La creación de estos microservicios es apoyada por herramientas de iaas y paas que
complementan el proceso de automatización.
• Dependiendo de la infraestructura y plataforma podrá variar el ciclo de CI/CD.
• Es aquí donde docker juega un papel importante ya que nos garantiza el despliegue de
nuestros microservicios en cualquier plataforma.
• Utilizar herramientas como docker no es necesario para una arquitectura de
microservicios, pero facilita mucho la labor.
Información confidencial y propietaria de TODO1® Services, Inc.
Ciclo de Vida/ CI/CD
Repositorio CI/CD Contenedor o No. Registry o Cloud
Información confidencial y propietaria de TODO1® Services, Inc.
Recursos / Paas (Platform as a Service)
• Nos ofrece la abstracción de la capa de plataforma donde se encuentran las herramientas para la operación.
– Monitorización y consolas administrativas
– Logs
– Despliegues, CI/DC
– Registro de aplicaciones
– Replicación
– Estadísticas
– Enrutamiento
– Balanceadores
• Plataformas
– Aws
– Cloudfoundry
– Google cloud
– OpenShift
– Azure
– Digital ocean (+/-)
Información confidencial y propietaria de TODO1® Services, Inc.
Recursos / Iaas (Infrastructure as a Service)
• Nos ofrece la abstracción de la capa física de infraestructura.
– Servicios de red
– Seguridad
– Almacenamiento
– Máquinas virtuales
• Ejemplos:
– AWS
– Digital ocean
– Google
– OpenStack (CPD Propio)
– DC/OS Apache mesos (CPD Propio)
Información confidencial y propietaria de TODO1® Services, Inc.
Microservicios / FrontEnd
• La respuesta a su duda es SI.
• Segregar funcionalidades para
creación de microservicios.
• Diversidad de Frameworks.
• Comunicación entre microservicios.
Es posible ?
ArquitecturaHexagonal
Microservicios FrontEnd
Información confidencial y propietaria de TODO1® Services, Inc.
Casos de Uso
• Aplicaciones con alto nivel de concurrencia.
• Tiendas online
• Streaming
• Real time
• Analítica de datos
• Seguridad
Información confidencial y propietaria de TODO1® Services, Inc.
Referencias
• Book: Microservices Best Practices for Java
• Author:Michael Hofmann– ErinSchnabel – Katherine Stanley
• IBM
• Book: Designing Reactive Systems
• Author:HughMackee
• O’REILLY
• Book: Developing Reactive Microservices
• Author:Markus Eisele
• O’REILLY
• Book: Reactive Microsystem
• Author:JonasBonér
• O’REILLY
• Book: Reactive Microservices Architecture
• Author:JonasBonér
• O’REILLY
• Book: Reactive Microservices Architecture
• Author:ChrisRichardson/Floyd Smith
• NGINX
• https://es.wikipedia.org/wiki/Arquitectura_de_microservicios
• http://www.reactivemanifesto.org/es
• https://www.sandvine.com/downloads/general/global-internet-phenomena/2014/2h-2014-global-internet-phenomena-
report.pdf
• https://www.sandvine.com/downloads/general/global-internet-phenomena/2016/global-internet-phenomena-report-
latin-america-and-north-america.pdf
• https://es.slideshare.net/InfoQ/scalable-microservices-at-netflix-challenges-and-tools-of-the-trade
Informaciónconfidencial y propietariade TODO1® Services,Inc.
Gracias
JAIDERANILLOGARCIA
DESARROLLADORSENIOR
janillo@todo1.com
© 2000 – 2016 TODO1 Services, Inc. Todos los Derechos Reservados. Material confidencialypropiedad exclusiva de TODO1Services, INC.

Más contenido relacionado

Similar a Orquestación de Microservicios Introducción a arquitecturas de desarrollo modernas basadas en sistemas distribuidos..pdf

Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareAntonio Gallego
 
Componentes de la estrategia de gobierno en línea
Componentes de la estrategia de gobierno en líneaComponentes de la estrategia de gobierno en línea
Componentes de la estrategia de gobierno en líneaFelipe Afanador Cortés
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidorJonathan
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeBruno Capuano
 
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
 
wendimerarisuazoflores
wendimerarisuazofloreswendimerarisuazoflores
wendimerarisuazoflorescorazon45
 
Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones DistribuídasJavierialv
 
Unidad 1 Panorama general de las aplicaciones distribuidas
Unidad 1 Panorama general de las aplicaciones distribuidasUnidad 1 Panorama general de las aplicaciones distribuidas
Unidad 1 Panorama general de las aplicaciones distribuidasEduardo S de Loera
 
Proyecto reto flipped
Proyecto reto flippedProyecto reto flipped
Proyecto reto flippedxendika2
 
Computacion nube
Computacion nubeComputacion nube
Computacion nubeAlex Miguel
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computingrazalas30
 
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
 

Similar a Orquestación de Microservicios Introducción a arquitecturas de desarrollo modernas basadas en sistemas distribuidos..pdf (20)

¿Que son los microservicios?
¿Que son los microservicios?¿Que son los microservicios?
¿Que son los microservicios?
 
Microservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMwareMicroservicios sobre tecnologías Pivotal y VMware
Microservicios sobre tecnologías Pivotal y VMware
 
Clouds privadas
Clouds privadasClouds privadas
Clouds privadas
 
Componentes de la estrategia de gobierno en línea
Componentes de la estrategia de gobierno en líneaComponentes de la estrategia de gobierno en línea
Componentes de la estrategia de gobierno en línea
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
 
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ú
 
wendimerarisuazoflores
wendimerarisuazofloreswendimerarisuazoflores
wendimerarisuazoflores
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Cap2 funcionalidad de cliente servidor
Cap2 funcionalidad de cliente servidorCap2 funcionalidad de cliente servidor
Cap2 funcionalidad de cliente servidor
 
La nube
La nubeLa nube
La nube
 
computación en la nube
computación en la nubecomputación en la nube
computación en la nube
 
Aplicaciones Distribuídas
Aplicaciones DistribuídasAplicaciones Distribuídas
Aplicaciones Distribuídas
 
Unidad 1 Panorama general de las aplicaciones distribuidas
Unidad 1 Panorama general de las aplicaciones distribuidasUnidad 1 Panorama general de las aplicaciones distribuidas
Unidad 1 Panorama general de las aplicaciones distribuidas
 
Proyecto reto flipped
Proyecto reto flippedProyecto reto flipped
Proyecto reto flipped
 
(7) strelia cloud 23 nov pablo raez (hp)
(7) strelia cloud 23 nov pablo raez (hp)(7) strelia cloud 23 nov pablo raez (hp)
(7) strelia cloud 23 nov pablo raez (hp)
 
Computacion nube
Computacion nubeComputacion nube
Computacion nube
 
Miscloudfiguration
MiscloudfigurationMiscloudfiguration
Miscloudfiguration
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
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
 

Último

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
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 gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
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
 
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
 
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
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
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
 
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
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
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
 
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
 
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
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
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
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 

Último (20)

ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
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 gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
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
 
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...
 
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
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
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
 
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
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
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
 
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
 
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
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
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.
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
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
 

Orquestación de Microservicios Introducción a arquitecturas de desarrollo modernas basadas en sistemas distribuidos..pdf

  • 1. Informaciónconfidencial y propietariade TODO1® Services,Inc. Orquestación de Microservicios Introducción a arquitecturas de desarrollo modernas basadas en sistemas distribuidos.
  • 2. Información confidencial y propietaria de TODO1® Services, Inc. Expositor Nombres: Jaider Anillo Garcia Perfil: Jaider es Ingeniero de Sistemas de la Fundación Universitaria Tecnológico Comfenalco, con un Diplomado en Gerencia de Proyectos Informáticos y un Magister en Gerencia de Proyectos de la Universidad Viña del Mar. 2
  • 3. Información confidencial y propietaria de TODO1® Services, Inc. Agenda • Definición • Evolución • Porque Usarlos? • Componentes de arquitectura • Acceso a datos y comunicación • Componentes necesarios para una correcta implementación de aplicaciones basadas en sistemas distribuidos • Procesos CI/CD para microservicios 01 02 03 04 Microservicios Arquitectura Componentes Ciclo de Vida • Recursos que complementan y facilitan el desarrollo de aplicaciones bajo sistemas distribuidos 05 Recursos 05 Título corto • Patrones
  • 4. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Definición – Sistemas Distribuidos: La computación distribuida o informática en malla (grid) es un modelo para resolver problemas de computación masiva utilizando un gran número de ordenadores organizados en clústeres incrustados en una infraestructura de telecomunicaciones distribuida. – Microservicios: La Arquitectura de microservicios es una aproximación para el desarrollo software que consiste en construir una aplicación como un conjunto de pequeños servicios, los cuales se ejecutan en su propio proceso y se comunican con mecanismos ligeros (normalmente una API de recursos HTTP). Cada servicio se encarga de implementar una funcionalidad completa del negocio.
  • 5. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Evolución Monolítica: Alto acoplamiento,cualquier cambio afecta a la totalidadde la aplicación, CI/CD una tarea casi imposible. SOA: Menor acoplamiento,permitía desarrollarcódigo en partes más pequeñas, pero todo debe estar comunicadoy estrictamente desarrolladopara que encaje con el resto del desarrollo. Microservicios:Desacoplamientototal, permite desarrollarpequeñosservicios de manera totalmenteindependiente (Agnósticos y Poliglotas). Su exposiciónde servicios es dada a través de la exposición de API´S.
  • 6. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Porque usarlos? – Ciclo de vida CI/CD más rápido. – Reducir tiempo de salida al mercado. – Protocolos de red para exponer servicios y comunicarse. – Integración con otros sistemas – Servicios de alta disponibilidad y rendimiento. – Centralizar funcionalidad. – Mejor control de fallos y testeabilidad. Reactive Manifesto
  • 7. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Patrones • Existen muchos patrones relacionados con la arquitectura de microservicios, mas sin embargo la correcta selección e implementación de los mismos puede conllevar al éxito o fracaso. • Empresas lideres a nivel mundial en implementación de microservicios tales como: Amazon, Netflix e Ebay, han liberado herramientas que facilitan el uso de esta arquitectura. • Algunos de los patrones serán revisados dentro del desarrollo de esta sesión, mas sin embargo veamos algunos de los mas importantes a la hora de desarrollar microservicios.
  • 8. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Patrones • DDD (Domain Driven Design) Domain driven design es un enfoque para el desarrollo de software definido por Eric Evans en su libro ”Domain-driven design: Tackling Complexity in the Heart of Software”, que se centra en un modelo rico, expresivo y en constante evolución para resolver problemas del dominio de una forma semántica. Aspectos: Lenguaje Ubicuo Capas Conceptuales: Interface de Usuario Aplicación Dominio Infraestructura
  • 9. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Patrones • Llamada también ports and adapters. • Objetivo: El principal objetivo de la arquitectura hexagonal es separar nuestra aplicación en distintas capas que tienen su propia responsabilidad. Arquitectura Hexagonal ArquitecturaHexagonal
  • 10. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Patrones • En esta arquitectura contamos contamos con Comando y Consultas, con el fin de desagregar funcionalidades. • Permite disponer de bases de datos independientes adecuadas para las necesidades. • Permite escalar por separado las funcionalidades. CQRS (Command Query Responsibility Segregation) Detalle Patrón CQRS
  • 11. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Patrones • La arquitectura enfocada a eventos mediante el envío y recepción de eventos nos permite desacoplar responsabilidades. • Los servicios internos o externos que reciban los eventos darán tratamiento a ellos y emitirán nuevos eventos de ser necesario. Event Driven Architecture Evnt Driven con Arquitectura Hexagonal
  • 12. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / Patrones Imagen: Chris Richardson Resumen de Patrones para Arquitecturas de Microservicios
  • 13. Información confidencial y propietaria de TODO1® Services, Inc. Arquitectura / Componentes – Los microservicios son mas pequeños, desacoplados y perfeccionados para realizar pequeñas tareas de manera eficiente. – Aparte de la funcionalidad principal del microservicio, necesitaremos componentes específicos para hacer una correcta implementación de la arquitectura. – Al lado derecho podemos observar los retos de arquitectura planteados para el desarrollo de microservicios. Microservicios Descubrimiento Log Seguridad Configuración Monitoreo Registro Componentes Arquitectura deMicroservicios
  • 14. Información confidencial y propietaria de TODO1® Services, Inc. Arquitectura /Acceso a Datos y Comunicación – De la misma manera que en una aplicación monolítica los microservicios pueden acceder a datos a través de capas de persistencia, drivers o configuración especifica para cada caso. – Exponen funcionalidades a través de API’s rest. – Se comunican entre si con protocolos http o mensajería. Comunicación yAcceso a Datos
  • 15. Información confidencial y propietaria de TODO1® Services, Inc. Componentes /Descubrimiento y Orquestación – En la medida que nuestras aplicaciones crecen se hace necesario que despleguemos mayor número de microservicios o instancias de manera automática. – Asignación de puerto e ip de manera delegada. – Al ser asignado aleatoriamente, se hace necesario que descubramos y registremos los nuevos servicios creados automáticamente. Servicio de Descubrimiento
  • 16. Información confidencial y propietaria de TODO1® Services, Inc. Componentes /Descubrimiento y Orquestación Los procesos que componen el servicio de descubrimiento son: - Registro: Consiste en el registro de cada nueva instancia, dejando consignado sus datos de ubicación, como nodo, puerto e ip (Entre otros). - Descubrimiento: Es el proceso que permite tener acceso a la información del registro. Servicio de Descubrimiento
  • 17. Información confidencial y propietaria de TODO1® Services, Inc. Componentes /Descubrimiento y Orquestación Escalado en función de la demanda, como puede ser con base al consumo de memoria, cpu, peticiones, etc. los beneficios a resaltar son: - Alta tolerancia a fallos: La recuperación se realiza de forma automática. - Escalado horizontal con funcionamiento elástico. - Despliegues basados en estrategias predefinidas. - Abstracción de la capa de microservicios. - Conocer el estado de nuestro ecosistema. - Soporte Multi-región. Escalado Elástico
  • 18. Información confidencial y propietaria de TODO1® Services, Inc. Componentes /Descubrimiento y Orquestación • Herramientas disponibles para el servicio de Descubrimiento: – Eureka (Spring Cloud Netflix) – Zookeper – Etcd – Consul • Herramientas para la orquestación: – Ribbon + Eureka (Spring Cloud Netflix) – Kubernetes – Docker swarm
  • 19. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Enrutamiento Es importante resaltar componentes de un Api Gateway: – Converge las solicitudes a través de un único punto de entrada (Api Gateway). – Mapeo global de peticiones (Url’s). – Abstracción de los microservicios. – Filtros dinámicos, redireccionamiento con base en localización de las solicitudes. • Herramientas: – Zuul (Spring Cloud Netflix) – Haproxy – Api Gateway (AWS)
  • 20. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Enrutamiento API Gateway
  • 21. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Gestión de Errores En los sistemas distribuidos una falla o demora en la respuesta puede causar una caída total de la aplicación. Por ende es necesario detectar las fallas y encapsular o contener la propagación. Funcionamiento Normal Falla en Solicitud
  • 22. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Gestión de Errores
  • 23. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Balanceador de Carga • Es recomendado contar con un balanceador de carga externo que nos permita mejorar la fiabilidad de nuestra aplicación, incrementando además la disponibilidad y tolerancia a fallos. • Algunos ejemplos son: – AWS (ELB). – F5. Balanceador Externo
  • 24. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Balanceador de Carga • Balancear la carga entre las distintas instancias de un microservicio. haciéndolo más efectivo a la hora de manejar las peticiones. • Configuración de políticas de balanceo. • Integración con el servicio de descubrimiento. • Ejemplos: – Ribbon (Spring Cloud Netflix). Balanceador en el Cliente Balanceador en el Cliente
  • 25. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Monitorización • Un aspecto importante a resaltar en la arquitectura a microservicios es la monitorización, contar con un panel unificado con información en tiempo real de cada microservicio. • Ejemplos: – Hystrix + turbine + Spring boot admin Hystrix Dashboard
  • 26. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Monitorización y Logs Hystrix Dashboard
  • 27. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Monitorización y Logs • La centralización y explotación de logs juega un papel importante de lo contrario seria inmanejable la administración de los mismos. • Ejemplo: – ELK ELK Explotaciónde Información
  • 28. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Monitorización y Logs Kibana
  • 29. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Trazabilidad de Peticiones - En un sistema distribuido debemos contar con la capacidad de registrar en nuestros logs las trazas a nivel de petición. - Ejemplos: - Spring Sleuth + Zipkin Análisis de Solicitudes con Zipkin
  • 30. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Servicios de Configuración • Configuración centralizada de la información. • Algunos proveen la funcionalidad sincronizar los archivos de configuración con repositorios de git y captura de información en caliente por parte de los microservicios. • Ejemplo: – Spring cloud config – Archadius – Consul – Zookeeper Servicio de Configuración
  • 31. Información confidencial y propietaria de TODO1® Services, Inc. Componentes / Transaccionalidad • Política de reintentos: usada en caídas temporales del servicio. Reintentar las operaciones pude solventar el problema. • Deshacer operaciones en su totalidad: Es importante conservar un estado previo para conservar la consistencia de datos al momento de deshacer la operación. • Ejecución distribuida: Puede utilizarse un servicio centralizado para la operación que garantice la correcta finalización de la misma. Commit de dos fases. Reintentos Deshacer Distribuida Coordinada
  • 32. Información confidencial y propietaria de TODO1® Services, Inc. Ciclo de Vida/ CI/CD • La creación de estos microservicios es apoyada por herramientas de iaas y paas que complementan el proceso de automatización. • Dependiendo de la infraestructura y plataforma podrá variar el ciclo de CI/CD. • Es aquí donde docker juega un papel importante ya que nos garantiza el despliegue de nuestros microservicios en cualquier plataforma. • Utilizar herramientas como docker no es necesario para una arquitectura de microservicios, pero facilita mucho la labor.
  • 33. Información confidencial y propietaria de TODO1® Services, Inc. Ciclo de Vida/ CI/CD Repositorio CI/CD Contenedor o No. Registry o Cloud
  • 34. Información confidencial y propietaria de TODO1® Services, Inc. Recursos / Paas (Platform as a Service) • Nos ofrece la abstracción de la capa de plataforma donde se encuentran las herramientas para la operación. – Monitorización y consolas administrativas – Logs – Despliegues, CI/DC – Registro de aplicaciones – Replicación – Estadísticas – Enrutamiento – Balanceadores • Plataformas – Aws – Cloudfoundry – Google cloud – OpenShift – Azure – Digital ocean (+/-)
  • 35. Información confidencial y propietaria de TODO1® Services, Inc. Recursos / Iaas (Infrastructure as a Service) • Nos ofrece la abstracción de la capa física de infraestructura. – Servicios de red – Seguridad – Almacenamiento – Máquinas virtuales • Ejemplos: – AWS – Digital ocean – Google – OpenStack (CPD Propio) – DC/OS Apache mesos (CPD Propio)
  • 36. Información confidencial y propietaria de TODO1® Services, Inc. Microservicios / FrontEnd • La respuesta a su duda es SI. • Segregar funcionalidades para creación de microservicios. • Diversidad de Frameworks. • Comunicación entre microservicios. Es posible ? ArquitecturaHexagonal Microservicios FrontEnd
  • 37. Información confidencial y propietaria de TODO1® Services, Inc. Casos de Uso • Aplicaciones con alto nivel de concurrencia. • Tiendas online • Streaming • Real time • Analítica de datos • Seguridad
  • 38. Información confidencial y propietaria de TODO1® Services, Inc. Referencias • Book: Microservices Best Practices for Java • Author:Michael Hofmann– ErinSchnabel – Katherine Stanley • IBM • Book: Designing Reactive Systems • Author:HughMackee • O’REILLY • Book: Developing Reactive Microservices • Author:Markus Eisele • O’REILLY • Book: Reactive Microsystem • Author:JonasBonér • O’REILLY • Book: Reactive Microservices Architecture • Author:JonasBonér • O’REILLY • Book: Reactive Microservices Architecture • Author:ChrisRichardson/Floyd Smith • NGINX • https://es.wikipedia.org/wiki/Arquitectura_de_microservicios • http://www.reactivemanifesto.org/es • https://www.sandvine.com/downloads/general/global-internet-phenomena/2014/2h-2014-global-internet-phenomena- report.pdf • https://www.sandvine.com/downloads/general/global-internet-phenomena/2016/global-internet-phenomena-report- latin-america-and-north-america.pdf • https://es.slideshare.net/InfoQ/scalable-microservices-at-netflix-challenges-and-tools-of-the-trade
  • 39. Informaciónconfidencial y propietariade TODO1® Services,Inc. Gracias JAIDERANILLOGARCIA DESARROLLADORSENIOR janillo@todo1.com © 2000 – 2016 TODO1 Services, Inc. Todos los Derechos Reservados. Material confidencialypropiedad exclusiva de TODO1Services, INC.