• Arquitectura Tradicional de aplicaciones empresariales.
• Arquitectura SOA • Arquitectura Monolítica • Arquitectura de Microservicios. • Arquitectura Serverless. • Arquitectura de Nanoservicios. • Herramientas de implementación de microservicios. Arquitectura Tradicional de aplicaciones empresariales JAVA Arquitectura SOA • La arquitectura orientada a servicios (SOA) es un estándar del sector de definición abierta que presenta todos los procesos de negocio de un modo orientado a servicios. Las dependencias entre servicios, tales como servicios web, activos de servicio EIS (Enterprise Information System), flujos de trabajo y bases de datos se minimizan y se oculta la implementación de cualquier servicio.
• El objetivo de la arquitectura orientada a servicios es separar la lógica de
integración de negocio de la implementación, para que el desarrollador de integración pueda centrarse en ensamblar una aplicación integrada en lugar de hacerlo en los detalles de la implementación. Para lograrlo, se crean componentes de servicio que contienen la implementación de servicios individuales necesarios para los procesos de negocio. El resultado es una arquitectura de tres capas: lógica de integración de negocio, componentes de servicio e implementación. Arquitectura SOA Arquitectura Monolítica • Un Monolito es una aplicación que tiene todos sus components contenidos en un único desplegable, y que tipicamente tiene una cadencia de Liberaciones de 3 a 18 meses. Algunas aplicaciones pueden incluso tener una cadencia de 2 años, lo cual no esta diseñado para una Empresa Ágil. • Los Monolitos tipicamente evolucionan sobre el tiempo intentando hacer rápidas mejoras iterativas a una aplicación, sin preocuparse de límites apropiados entre diferentes partes o components dentro de ellos. Indicadores de una aplicación se convierte en monolito pueden incluir lo siguiente: • Multiples WARs que son parte de un único despliegue, debido a su comportamiento interdependiente • EARs que potencialmente contienen docenas de otros WARs y JARs que proven la funcionalidad necesaria. Arquitectura Monolítica - beneficios Arquitectura Monolítica – problemas Arquitectura de Microservicios • En resumen, el estilo arquitectónico de microservicios es un enfoque para desarrollar una sola aplicación como un conjunto de pequeños servicios, cada uno ejecutándose en su propio proceso y comunicándose con mecanismos ligeros, a menudo una API de recursos HTTP. • Estos servicios se basan en capacidades comerciales y se pueden implementar de forma independiente mediante maquinaria de implementación totalmente automatizada. Existe un mínimo de administración centralizada de estos servicios, que pueden estar escritos en diferentes lenguajes de programación y utilizar diferentes tecnologías de almacenamiento de datos. Arquitectura de Microservicios Arquitectura de Microservicios • Una aplicación de microservicios es una colección de servicios autónomos, cada uno de los cuales hace bien una cosa, que trabajan juntos para realizar operaciones más complejas. En lugar de un único sistema complejo, crea y administra un conjunto de servicios relativamente simples que pueden interactuar de formas complejas. Estos servicios colaboran entre sí a través de protocolos de mensajería independientes de la tecnología, ya sea punto a punto o asincrónicamente. Arquitectura de Microservicios Arquitectura de Microservicios Arquitectura de Microservicios • Otros afirman que un servicio solo debería tardar dos semanas en desarrollarse. Adrian Cockcroft, anteriormente de Netflix, define una arquitectura de microservicio como una arquitectura orientada a servicios compuesta de elementos débilmente acoplados que tienen contextos delimitados. Arquitectura de Microservicios Arquitectura de Microservicios Arquitectura de Microservicios Arquitectura de Microservicios Arquitectura de Microservicios • Un servicio es una mini aplicación que implementa una funcionalidad estrechamente enfocada y limitada, como la gestión de pedidos, la gestión de clientes, etc. Un servicio se escala mediante la escala del eje X, aunque algunos servicios también pueden usar la escala del eje Z. Por ejemplo, el servicio de pedidos consta de un conjunto de instancias de servicio con equilibrio de carga. • La definición de alto nivel de arquitectura de microservicios (microservicios) es un estilo arquitectónico que descompone funcionalmente una aplicación en un conjunto de servicios. Tenga en cuenta que esta definición no dice nada sobre el tamaño. En cambio, lo que importa es que cada servicio tiene un conjunto de responsabilidades centrado y coherente. Arquitectura SOA vs Microservicios Arquitectura SOA vs Microservicios Arquitectura Monolítica vs Microservicios Arquitectura Monolítica vs Microservicios Arquitectura Monolítica vs Microservicios Arquitectura Monolítica vs Microservicios Evolución de Arquitectura Arquitectura Microfrontend • Investigar Arquitectura Serverless • Investigar Arquitectura de Nanoservicios • Investigar Herramientas de implementación de microservicios • Spring Boot / Microprofile • Hibernate. • HashiCorp Consul. • Apache Kafka. • RabbitMQ. • GitHub. • Docker. • Kubernetes.