Está en la página 1de 4

Arquitectura de microservicios

Cada aplicación se compone de una serie de servicios, cada uno de los cuales
se ejecuta en un proceso independiente e interactúa con los demás a través de las
API. Los componentes se basan en las necesidades del negocio.
Clientela: Las solicitudes son enviadas por numerosos usuarios que utilizan
varios dispositivos.
Proveedores de identidad: Verifique las identidades de los usuarios o
clientes y proporcione tokens de seguridad.}
Puerta de enlace API: Las solicitudes de los clientes se manejan a través de
API Gateway.
Contenido estático: Todo el material del sistema está contenido en contenido
estático.
Administración: Determina las fallas y equilibra los servicios entre los
nodos.
Descubrimiento de servicios: Una herramienta para determinar la ruta de
comunicación entre microservicios.
Red de entrega de contenidos: Una red distribuida de servidores proxy y
centros de datos asociados.
Servicio remoto: Se puede acceder de forma remota a la información almacenada
en una red de dispositivos de TI con la ayuda de un servicio remoto.

Spring Framework(SF)
Estructura open source basada en Java diseñada para ayudar a los
desarrolladores a crear aplicaciones web específicas mediante plantillas
prefabricadas fáciles de usar y probar.Existen 3 importantes versiones 2.5, 73 y 4.

Inversion of Control(IOC)
Contenedor principal de SF. Utiliza la anterior mencionada dependency
injection para administrar y configurar las diversas aplicaciones integradas.
Existen 2 tipos, ApplicationContext y BeanFactory.

Inyección de dependencias(ID)
Patrón de diseño para separar responsabilidades, evitando que una clase sea
responsable de instanciar objetos de otra. Promueve el bajo acoplamiento. Al
arrancar SF se crean los objetos B, y luego se “inyectan” donde son necesarios
usando @Autowired. Utilizado para brindar ciertas dependencias a objetos. Hace que
tus proyectos sean más fluidos y adecuados para acciones como las pruebas. Existen
Por atributo, Por setter, Por constructor (más adecuada, fomenta la fácil
testeabilidad de las aplicaciones, es la recomendada).

Bean(B)
Objeto que se encuentra integrado y configurado por el contenedor IOC de SF,
tiene ciclo de vida, reusable.

B(Ámbito)
Define el ciclo de vida y visibilidad del B en el contexto. Se define con la
anotación @Scope. Existen los siguientes Scope/ámbitos disponibles para un B.
(singleton:Por defecto y más usado, prototype, request, session, application,
websocket)

Spring Boot(SB)
Proyecto de SF, autoconfigurable, con tomcat embebido, sin configuraciones
B(xml).

Starter
Utilidad que facilita la creación y configuración de aplicaciones. Agrega
dependencias necesarias para un objetivo y parámetros de configuración. Ejemplos:
spring-boot-starter-web, spring-boot-starter-data-jpa.
Verbo HTTP
Se emplea para indicar una acción a la API, p.e verbos - anotación. GET –
@GetMapping, POST – @PostMapping, PUT – @PutMapping, DELETE – @DeteleMapping, PATCH
– @PatchMapping

JPA
Define una especificación o interfaces para manejo de persistencia.

Hibernate
Implementación particular de JPA (y es la usada por defecto en SB)

Spring Initializr
Plataforma online para generar un proyecto base de SB. Se puede usar por la
web o desde IDE.

Diferencias entre @Repository, @Component, @Service & @Controller


No existen diferencias funcionales, solo semánticas. Son anotaciones para
marcar “clases” en Spring y que se crean B a partir de ellas.

Spring AOP
Programación orientada a aspectos. Permite crear “aspectos” en nuestras
aplicaciones para ser usados de forma transversal.

@Profile
Permite usar B particular en dependencia del perfil activo en una aplicación
SB. Permite “instanciar” de forma particular una aplicación en dependencia de un
escenario, por ejemplo: dev, qa, prod, etc.

@SpringBootApplication
Anotación principal de SB, ubicada por defecto en la clase principal de un
proyecto SB. Combina las anotaciones @Configuration, @EnableAutoConfiguration and
@ComponentScan.

Patrones presentes en SF/SB


Creacional: Singleton, Estructural: Proxy, Comportamiento: Cache, Template.
Ejemplo: Al crear un B anotando una clase con @Service y scope por defecto usamos
Singleton.

@Transactional
En BBDD una operación es “transactional” se mantiene el estado en un sistema
consistente. Si algo sale mal durante la ejecución de una operación el sistema se
deja en su estado inicial.

@Value
Permite leer configuraciones y colocarlas en la propiedad anotada. Usa el
lenguaje SpEL. Ejemplo:
@Value("${value.from.file}")
private String valueFromFile;

Puerto por defecto de una aplicación SB


8080, Se cambia en la propiedad server.port del fichero de configuración.

Spring Actuator
Librería que proporciona herramientas de monitoreo y administración para un
AR. Habilita varios endpoints para ser usados, ej: /B, /health, /shutdown. Permite
ser extendida.

Spring Cloud
Proyecto basado en SB. Implementa soluciones “production-ready” para el
desarrollo de microservicios. Algunos componentes son: Spring Cloud Config. Spring
Cloud Gateway. Esta influenciado por Netflix OSS.

Model View Controller(MVC)


Forma parte del SF. MVC es utilizado para facilitar la creación de diferentes
aplicaciones web.

REST(R)
Describe la transferencia de estado representacional, es responsable de
desarrollar aplicaciones de sitios web establecidas en el protocolo HTTP.
Especifica varias reglas que la utilidad relacionada con el sitio web debe adjuntar
para creerlo. Las sugerencias aseguran métodos HTTP estandarizados entre el
servidor y el usuario para transmitir envíos virtualmente.

API REST(AR)
Hace que el intercambio de información en línea sea seguro entre dos sistemas
informáticos. Para completar una variedad de actividades, la mayoría de las
aplicaciones comerciales intercambian datos con otros programas internos y
externos. Por ejemplo, cuando su sistema interno de cuentas comparte información de
los empleados con el sistema bancario externo para generar nóminas. Se puede hacer
con AR, ya que esta información es personal e individual, y los estándares de
software de AR son seguros, eficientes y confiables. AR se conoce como API que está
vinculada a R de alguna manera. Todos los datos se consideran recursos en la AR y
están determinados por una unidad constante estándar precisa llamada (URI). La API
de Twitter crea un tweet como un recurso al que el usuario puede acceder y
recuperar. Usando la API de Twitter, los usuarios pueden publicar tweets
fácilmente.

@RestController
Facilita la creación de AR usando Spring MVC. Combina @Controller +
@ResponseBody. Permita serializar cualquier respuesta de un controlador Spring MVC
directamente a json o xml.

Principios de REST
Cliente-servidor permite una secuencia de respuestas que se utilizan para
transmitir entre el consumidor y el servidor. Ambos pueden enviar y aceptar
respuestas uno del otro. Esta visión clara del método cliente-servidor permitirá
que ambas fuerzas operen sin ayuda una de la otra.
Sistema en capas: Entre el cliente y el servidor API, las capas son
servidores. Estos diferentes servidores realizan varias tareas, como detectar spam
y mejorar el rendimiento. Los mensajes enviados entre el cliente y el servidor de
la interfaz de programación de aplicaciones (API) no se ven afectados por la
adición o eliminación de capas porque R (estado representativo) utiliza una
arquitectura modular.
Interfaz uniforme: El cliente y el servidor deben utilizar siempre el mismo
protocolo para todas las comunicaciones. Este protocolo es HTTP REST. Dado que
todas las aplicaciones utilizan el mismo lenguaje para solicitar y proporcionar
datos, una interfaz uniforme facilita las integraciones.
Apátrida: En la comunicación sin estado, el servidor no guarda ningún
registro de las respuestas que ya se han enviado. Cada respuesta posee la entrada
completa necesaria para concluir los tratos. Mejora la interpretación al disminuir
la carga del servidor y el uso de la memoria. También elimina la posibilidad de que
una solicitud falle debido a información incompleta.
Almacenable en caché: Los clientes pueden almacenar en caché cualquier
recurso para aumentar el rendimiento mediante el uso de respuestas de servidor de
servidores que indican si un recurso se puede almacenar en caché o no. R también
contiene la siguiente condición opcional.
Código bajo demanda: La respuesta de una API puede contener código ejecutable
que los usuarios pueden ejecutar. Por lo tanto, la aplicación cliente puede
ejecutar el código en su propio back-end.

También podría gustarte