webinar arquitectura de microservicios
TRANSCRIPT
![Page 1: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/1.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Webinar “Arquitectura de Microservicios”
![Page 2: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/2.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Expositor: Domingo Suárez (México)
Ingeniero de software por 17 años, trabajando principalmente en el
ecosistema JVM para diferentes sectores como Financiero, Medios de
comunicación, eCommerce y consultoría.
He sido expositor en congresos como SOALatam (Perú), Spring IO
(Madrid),Grails eXchange (Londres), BarcelonaJUG, Mexico City JVM Group.
Actualmente soy CTO en una compañía de Inteligencia Artificial
desarrollando tecnología con Deep Learning y sistemas distribuidos.
@domix
![Page 3: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/3.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Acerca de Nosotros
Empresa líder de capacitación en las principales y más
reconocidas tecnologías, metodologías y marcos de
referencia de TI, tales como SOA, BPM, Cloud, Arquitectura
Empresarial TOGAF, Hadoop-Big Data de Cloudera,
Certificaciones ISO: ISO 27001, ISO 31000, ISO 22301, ISO
27005, entre otros. Proveemos entrenamiento en toda la
región.
![Page 4: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/4.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Te invitamos a participar en nuestro próximo curso on-line en vivo
Microservices Workshop
Inicio 30 de mayo. Informes: [email protected]
![Page 5: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/5.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Agenda
• SOA • REST • Microservices • Arquitectura • Frameworks • Herramientas
![Page 6: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/6.jpg)
Service Oriented Architecture
![Page 7: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/7.jpg)
SOA• SOA implica demasiadas cosas. En un mundo
ideal:
• Deseable que las aplicaciones desaparezcan
• Existen core services que proveen lógica de negocio y datos
• UI que sirven de agregadores y aplican presentaciones.
![Page 8: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/8.jpg)
SOA• SOA implica demasiadas cosas.
• Comunicación entre sistemas usando una estructura estándar, generalmente un dialecto basado en XML. "CORBA with angle brackets"
• WS-*. Infierno de XML.
• Mensajería asíncrona para transferir documentos. Enterprise Application Integration (EAI)
![Page 9: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/9.jpg)
SOA• Riesgos y problemas principales:
• Demasiada carga, muchas veces innecesaria.
• Costosas implementaciones, tanto en consultoría como en herramientas y runtimes. No olvidemos la operación.
• Complejidad innecesaria.
• Vendor lock-in
![Page 10: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/10.jpg)
Alternativas al típico SOA
• Soluciones in-house usando frameworks típicos
• OpenSource runtimes & tools
![Page 11: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/11.jpg)
¿Necesitamos SOA?
![Page 12: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/12.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
¿Que tipo de organización eres?
![Page 13: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/13.jpg)
REST
• Todo lo que puedo decirles sobre REST probablemente sea una mentira (refraseando a un amigo @tomaslin)
![Page 14: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/14.jpg)
RESTafarians dicen:
![Page 15: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/15.jpg)
REST
• JSON sobre HTTP
• ¿Hypermedia?
• Hypermedia APIs
![Page 16: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/16.jpg)
designinghypermediaapis.com
![Page 17: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/17.jpg)
Developer Experience
• En el SXSW de 2014 Jeremiah Lee hablo de ‘Developer Experience’ DX
http://developerexperience.org
![Page 19: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/19.jpg)
Diseño de APIs REST simples
![Page 20: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/20.jpg)
Micro services
![Page 21: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/21.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Microservices
• Estilo arquitectónico • Cada servicio funcional o un conjunto muy
pequeño se ejecutan como procesos independientes.
• Generalmente usan protocolos ligeros y estándar como HTTP o mensajería (JMS, AMQP, etc).
• Despliegue independiente. • Pueden o no contener todos los recursos que
necesitan. Es decir usan otros servicios para funcionar.
![Page 22: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/22.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Microservices
• Pueden estar escritos en diferentes lenguajes y ejecutarse en diversos runtimes.
• Pueden usar diferentes mecanismos de almacenaje (storage). Relacionales o no-relacionales.
• Es común que los datos no estén centralizados.
![Page 23: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/23.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Microservices
• El enfoque es muy similar a SOA. • La idea principal es no tener paquetes monolíticos
de servicios desplegables. • Los paquetes monolíticos de servicios es la manera
natural de construir servicios. • Con el tiempo es difícil mantener un paquete
monolítico. • Base enorme de código. Paquetes enormes para
el despliegue que toma bastante tiempo en despliegue.
![Page 24: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/24.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Servicios monolíticos
• Cambios “pequeños” necesitan desplegar el paquete completo.
• Dependiendo el entorno y la deuda técnica, muchas veces implica hacer despliegues en horas no productivas y tener downtimes.
• A la larga el código termina muy acoplado entre servicios internos.
![Page 25: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/25.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Componentes en Microservices
• La idea es construir componentes, siempre ha sido nuestro sueño poder rehusar y conectar componentes existentes.
• Hemos logrado esto parcialmente usando bibliotecas de componentes. Que al final se convierten en dependencias de nuestros servicios. Con todo lo que ello implica.
• Los servicios son componentes que se ejecutan fuera de nuestros procesos. Solo conocemos la interfaz.
![Page 26: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/26.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Diseño
• En diseños monolíticos, es común que existan diversos equipos acorde a cada capa definida. Vista, lógica de negocio, datos, etc.
• Algunos cambios implican que todos los equipos participen, para una organización significa costo.
• La organización para construir microservices implica que el equipo sea cross-functional, con habilidades para cubrir todas las capas necesarias para cada servicio. Los servicios se organizan en torno a la capacidad de negocio.
![Page 27: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/27.jpg)
Arquitectura
![Page 28: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/28.jpg)
![Page 29: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/29.jpg)
Toolkits
![Page 30: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/30.jpg)
![Page 31: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/31.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Dropwizard
• Muy maduro, Yammer lo usa. • Basado en estándares como JAX-RS con
Jersey • Jackson para JSON • Muy amistoso para DevOps, usa Metrics
para monitorear salud de los servicios. • Incluye Jetty y no necesita un AppServer
para ejecutarse. !Mira mamá, sin AppServer¡
![Page 32: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/32.jpg)
![Page 33: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/33.jpg)
![Page 34: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/34.jpg)
![Page 35: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/35.jpg)
Ratpack@Grab('org.slf4j:slf4j-simple:1.7.16') @Grab('io.ratpack:ratpack-groovy:1.2.0') import static ratpack.groovy.Groovy.ratpack
ratpack { handlers { get(":name") { render "Hello $pathTokens.name!" } get { render "Hello World!" } } }
![Page 36: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/36.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Ratpack
• Súper simple toolkit para crear webapps, como APIs
• Construido sobre Apache Netty. !Mira mamá, sin AppServer¡
![Page 37: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/37.jpg)
![Page 38: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/38.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Spring Boot
• Usa la base de Spring Framework • Soporte para todas las tecnologías de
Pivotal • Se ejecuta sobre Apache Tomcat
empotrado • !Mira mamá, sin AppServer¡
![Page 39: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/39.jpg)
Despliegue
![Page 40: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/40.jpg)
The AppServer is DEAD
![Page 41: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/41.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
API management
• Ciertos requerimientos no funcionales no deben ser implementados en los microservices.
• Existen diversas herramientas para aplicar ciertos servicios necesarios como: – Directorio/Descubrimiento – Seguridad –Monitoreo –Métricas – Escalamiento/Aprovisionamiento
![Page 42: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/42.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Cosas a observar
• Complejidad de un sistema distribuido • Hacer testing es mas complejo • Transacciones distribuidas. Difícil
implementar • Deployment • Consumo de recursos
![Page 43: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/43.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Sistemas distribuidos (Falacias)
• La red es confiable. • La latencia es cero. • Ancho de banda es infinita. • La red es segura. • Topología no cambia. • Hay un administrador. • El costo del transporte es cero. • La red es homogénea.
![Page 44: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/44.jpg)
HerramientasFacilitando el computo distribuido
![Page 45: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/45.jpg)
![Page 46: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/46.jpg)
https://github.com/Netflix/hystrix
![Page 47: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/47.jpg)
![Page 48: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/48.jpg)
![Page 49: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/49.jpg)
![Page 50: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/50.jpg)
Spring CloudIntegra un conjunto de herramientas para sistemas
distribuidos, a pesar del nombre no solo sirve para el cloud
![Page 51: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/51.jpg)
![Page 52: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/52.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Una opción más
• Al final la organización debe analizar que opción es la ideal para si misma.
• SOAP/WS-* no son la única opción. • ESB es fantástico si se usa
adecuadamente con mensajería.
![Page 53: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/53.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Te invitamos a participar en nuestro próximo curso on-line en vivo
Microservices Workshop
Inicio 30 de mayo. Informes: [email protected]
![Page 54: Webinar Arquitectura de Microservicios](https://reader034.vdocuments.pub/reader034/viewer/2022052606/5875f4791a28ab006e8b5b79/html5/thumbnails/54.jpg)
Centro de Alta Capacitación en Tecnologías de la Información E-mail: [email protected] Web: http://www.cac-ti.com
Créditos de las fotos
• https://www.flickr.com/photos/kenmainr/9099640785 • https://www.flickr.com/photos/katsrcool/12311382904 • https://www.flickr.com/photos/universalpops/
6830228354 • https://www.flickr.com/photos/jeezny/3477733058 • https://www.flickr.com/photos/estherase/128983854 • https://www.flickr.com/photos/thelord89/8375835939/ • https://www.flickr.com/photos/
seattlemunicipalarchives/2516780900 • https://www.flickr.com/photos/dvids/9523755479