Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Página 2 de 7
1. INTRODUCCIÓN
En la Dirección de Transformación Digital y Sistemas se ha definido una arquitectura
de referencia que deberán seguir todas las aplicaciones que se creen como parte de
un proyecto. A continuación se mostrará la arquitectura de microservicios basada en
Spring Framework. El diagrama de contexto de dicha arquitectura es el siguiente:
Página 3 de 7
microservicios no se volverá loco buscando los “Logs” del sistema en
distintos puntos.
• Configuration (Config). Igual que sucede con los “Logs”, es necesario
guardar la configuración de todo un sistema de microservicios en el mismo
punto y, de esta manera, facilitar la configuración de los microservicios
que forman el sistema.
Como se puede ver en la figura, los microservicios se encuentran en el núcleo
de la figura. Para la implementación de dichos microservicios, nos basamos en Spring
Framework como se muestra en la siguiente figura.
Página 4 de 7
relacionales y no relacionales, como MapReduce y servicio de datos en
cloud.
• Hibernate. Es un ORM (Object-Relational Model) que facilita el mapeo de
atributos entre una base de datos relacional tradicional y el modelo de
objetos de una aplicación, mediante archivos declarativos (XML) o
anotaciones en los beans de las entidades que permiten establecer estas
relaciones.
• MyBatis. Es una herramienta de persistencia Java que se encarga de
mapear sentencias SQL y procedimientos almacenados con objetos a partir
de ficheros XML o anotaciones. Es un ORM muy similar a Hibernate con la
única diferencia que podemos utilizar sentencias en SQL estándar para
manejar la bases de datos.
• Swagger. Es un marco de software de código abierto que ayuda a los
desarrolladores a diseñar, construir, documentar y consumir servicios web
RESTful
• Hystrix. Se encarga de definir la política de fallo de cada uno de los
microservicios. Esta política, se desarrolla en cada uno de los
microservicios. Se podría decir que, a grandes rasgos, es un “try / catch”
distribuido. A parte de esta funcionalidad, Hystrix proporciona
monitorización en tiempo real de cada microservicio.
2. CAPA DE PRESENTACIÓN
Hasta ahora, hemos visto cómo construir elementos que nos permiten
implementar la lógica de negocio. Todos estos elementos y microservicios deben ser
capaces de presentar los datos al usuario para que sea capaz de tomar decisiones y
realizar acciones de manera adecuada. Para realizar esta operativa, hemos
posicionado Angular. Angular, es un framework para aplicaciones web desarrollado
en TypeScript, de código abierto, mantenido por Google, que se utiliza para crear y
mantener aplicaciones web de una sola página. Las principales características de
angular son:
• Cross Platform
o Utiliza las características actuales de las plataformas web actuales
con el fin de conseguir una buena experiencia de usuario
o Permite construir aplicaciones nativas utilizando plataformas como
Cordova o Ionic.
o Podemos crear aplicaciones de escritorio que funcionan de igual
manera en entornos Windows, Mac o Linux
• Velocidad y rendimiento
o Generación de plantillas optimizadas para los motores JavaScript
existentes en el mercado
o Es capaz de realizar renderizaciones de tu parte visual en, casi
exclusivamente, HTML y CSS, lo que conlleva un rendimiento muy
alto
• Mayor productividad
Página 5 de 7
o Creación de plantillas que nos permiten generar elementos de
manera muy rápida
o Proporciona herramientas de línea de comando (Angular CLI)
o Gran cantidad de IDEs para facilitar el desarrollo con Angular
3. ENTORNO OPERATIVO
Cuando hablamos de microservicios creado con Spring Boot, existen dos maneras de
desplegar nuestro servicio:
• Modelo cloud. Nuestro microservicio se incluirá en un contenedor de
docker que desplegamos en nuestra cloud privada. En este caso, utilizará
toda la infraestructura proporcionada por la cloud para gestionar todos los
elementos explicados en el diagrama de contexto de arquitectura (al
principio del anexo).
• Modelo stand-alone. Nuestro microservicio correrá en un servidor como un
servicio asociado a la máquina. En este caso, el diagrama de contexto de
arquitectura quedaría como sigue:
Página 6 de 7
todos los entornos. Spring Cloud Config es capaz de refrescar el
contexto de Spring en caso de que alguna propiedad haya cambiado.
Su funcionamiento es similar al que explicamos con el servidor de
Eureka: Cada microservicio tiene un cliente que se comunica con el
servidor de configuración. Una característica muy interesante de Spring
Cloud Config es la posibilidad de guardar los ficheros de propiedades
en un repositorio GIT.
• 3Scale como Edge Services
• Consul es una herramienta para descubrir y configurar servicios.
Proporciona varias funcionalidades:
o Descubrimiento del servicio
o Comprobación de estado
o Almacenamiento clave/valor (Key/Value)
o Multi Datacenter
4. COMPONENTES DE ADIF
Para facilitar el desarrollo de aplicaciones de microservicios, ADIF proporciona los
siguientes componentes / aplicaciones:
1. Soteria. Aplicación que centraliza la gestión de la autenticación y
autorización de aplicaciones con arquitectura de microservicios.
2. Spring Cloud Config. Microservicio para gestionar las propiedades
compartidas.
Página 7 de 7