Down to-earth microservices with java ee

16
Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. | Microservicios realistas con Java EE Reza Rahman Java EE Evangelist [email protected] 5 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.

Transcript of Down to-earth microservices with java ee

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

Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. | 14

Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. | 15

Copyright © 2014, Oracle y/o sus compañías afiliadas. Todos los derechos reservados. | 16