down to-earth microservices with java ee
TRANSCRIPT
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Microservicios realistas con Java EEReza RahmanJava EE [email protected] de enero de 2016
Aguarde un momento por favor. La sesión comenzará en breve en el horario señalado en el programa. Muchas gracias.
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Microservicios: ¿Qué encierra este término?
2
• "Microservicios" es una expresión increíblemente vaga
• No es fácil de adoptar para el desarrollador promedio
• Terrible denominación que incluye el abominable "monolito"
• Apropiado y sobrecargado por intereses comerciales
• Concepto simple de larga historia
• UNIX, CORBA, Jini, RMI, EJB 1/2, COM/DCOM, OSGi, SOAP/ESB
• Una denominación intelectualmente honesta podría haber sido "Hijo de SOA"
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Microservicios: ¿Qué encierra este término?
3
• La descomposición de grandes sistemas en partes más pequeñas que pueden implementarse en forma autónoma
• Los puristas se distancian de las arquitecturas SOAP y ESB
• Los puristas en general prefieren la arquitectura REST y la mensajería
• Los puristas no aprecian las pruebas, la cultura DevOps ni la entrega continua
• Los puristas se centran (ridículamente) en servicios muy específicos
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
¿Por qué tanto alboroto?
4
• A medida que los sistemas crecen, se complejiza su mantenimiento si no se recurre a la modularidad
• El tamaño ideal para un equipo "monolítico" oscila entre los 10 y los 12 ingenieros
• Las necesidades empresariales y de sistemas a veces hacen que las líneas de descomposición sean evidentes
• Los sistemas distribuidos pueden forzar una mejor modularidad
• Escalabilidad simplificada, supuestamente
• Un renacer de la programación políglota, supuestamente
Contexto acotado en DDD
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Palabras vs. hechos
5
• Desventajas muy conocidas de los sistemas distribuidos
• Mayor complejidad en cuanto a administración, implementación y monitoreo
• Mayor dificultad en cuanto a pruebas, depuración, diagnóstico, confiabilidad, uniformidad
• Duplicación de código, dificultades para identificar los límites de cada módulo
• Requisitos de competencias y automatización más exigentes para las áreas de desarrollo y operaciones
• "Falacias de la informática distribuida"
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Palabras vs. hechos
6
• ¿Entonces?
• La mayoría de los sistemas funcionan bien como "monolitos"
• A ojos de los puristas, la mayoría de los sistemas que requieran microservicios serían considerados "híbridos"
• En la práctica, son pocos los sistemas empresariales que pueden o necesitan implementar el paraíso de los microservicios
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Una imagen dice más que mil palabras
7
Para las empresas informáticas no especializadas, probablemente los microservicios se acerquen más al infierno que al paraíso
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Microservicios y Java EE
8
JAX-RS JSFJMS WebSocket
JSON CDIBean
ValidaciónJAXB
EJB 3 JCAJPA JTA
AdministraciónMonitoreo
Alta disponibilidadSeguridad
Recursos
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Demo de Java EE + Microservicios
9
https://github.com/m-reza-rahman/javaee-pragmatic-microservices
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Bingo de términos de moda en el campo de los microservicios
10
• Archivos FAT JAR, "sin contenedor", micromarcos
• WildFly Swarm, Payara Micro/Embedded GlassFish, KumuluzEE, TomEE incorporado
• Docker
• Nube, IaaS, PaaS
• Eureka, RxJava, Hystrix, NetFlixOSS
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Resumen
11
• Microservicios, la más nueva encarnación de ideas de larga data; la última encarnación importante había sido la arquitectura SOA.
• Los microservicios son una técnica valiosa en materia de arquitecturas, pero no necesariamente para cualquiera o para cualquier situación, y no necesariamente para una implementación simultánea.
• Java EE es una plataforma de gran capacidad para microservicios pragmáticos más adecuada para las empresas informáticas no especializadas, "monolitos" y toda otra categoría entre unas y otros.
• El ecosistema de Java EE ya se está perfeccionando para cumplir con los requerimientos del nicho de quienes operan con microservicios muy específicos
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Material de referencia
12
• "'Monolith' First" de Martin Fowler
• http://martinfowler.com/bliki/MonolithFirst.html
• "Microservices is SOA, for those who know what SOA is"
• http://service-architecture.blogspot.com/2014/03/microservices-is-soa-for-those-who-know.html
• Tutoriales de Java EE
• http://docs.oracle.com/javaee/7/tutorial/doc/home.htm
• The Aquarium
• http://blogs.oracle.com/theaquarium
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. |
Preguntas y respuestas