Diseño de arquitecturas .NET orientadas a microservicios
eBook - ePub

Diseño de arquitecturas .NET orientadas a microservicios

  1. 340 páginas
  2. Spanish
  3. ePUB (apto para móviles)
  4. Disponible en iOS y Android
eBook - ePub

Diseño de arquitecturas .NET orientadas a microservicios

Descripción del libro

La mejor arquitectura es aquella que resuelve su problema de software. Ahora, tiene a su disposición el manual con el que aprender a diseñar, de forma sencilla y autónoma, arquitecturas basadas en microservicios.Gracias a este libro, dejará atrás los contratiempos al trabajar con monolitos, como el alto acoplamiento dentro de un mismo sistema o la baja escalabilidad al resolver con la misma arquitectura distintos problemas. Asimismo, aprenderá alternativas que le permitirán aplicar distintas soluciones a multitud de cuestiones y sabrá distinguir cuándo es mejor orientar su arquitectura a microservicios y cuándo mantener su monolito.1.Conocerá los fundamentos de desarrollo.NET.2.Construirá cada módulo de que se compone una arquitectura con.NET.3.Aplicará seguridad a su arquitectura mediante la autenticación y autorización JWT.4.Sabrá cuándo aplicar una arquitectura monolítica o una orientada a microservicios.5.Será capaz de modelar arquitecturas limpias cumpliendo la regla de dependencia.6.Diseñará una arquitectura de microservicios usando distintas tecnologías en cada una.7.Aprenderá los distintos tipos de comunicación entre microservicios.Además, tras su lectura, conseguirá emplear una arquitectura limpia que le permitirá abstrae del almacén de datos utilizado, separar responsabilidades, crear un código reutilizable y mantenible, dotar a su sistema de un nivel de seguridad basado en token JWT, aprender los patrones más utilizados, así como conocer las bondades del desarrollo.NET, entre muchas otras posibilidades.Es el momento de dar rienda suelta a su creatividad y convertirse en el mejor arquitecto de software. Hágase con el libro, conozca los beneficios que aporta utilizar este tipo de arquitecturas y decida por sí mismo si debe o no aplicarlo. Ramón Serrano Valero: Ingeniero Informático con un máster en Ingeniería de Desarrollo para Dispositivos Móviles y otro en Ciencia de Datos. A lo largo de sus más de 14 años de experiencia en desarrollo.NET, diseñando diferentes arquitecturas software para las distintas necesidades de los clientes y asesorando a otras empresas en la definición de arquitecturas, ha aprendido que no todas las empresas requieren una misma arquitectura y que, en ocasiones, no realizar una sobre ingeniería simplifica la solución, al evitar que crezca su complejidad más de lo necesario.

Preguntas frecuentes

Sí, puedes cancelar tu suscripción en cualquier momento desde la pestaña Suscripción en los ajustes de tu cuenta en el sitio web de Perlego. La suscripción seguirá activa hasta que finalice el periodo de facturación actual. Descubre cómo cancelar tu suscripción.
Por el momento, todos los libros ePub adaptables a dispositivos móviles se pueden descargar a través de la aplicación. La mayor parte de nuestros PDF también se puede descargar y ya estamos trabajando para que el resto también sea descargable. Obtén más información aquí.
Perlego ofrece dos planes: Esencial y Avanzado
  • Esencial es ideal para estudiantes y profesionales que disfrutan explorando una amplia variedad de materias. Accede a la Biblioteca Esencial con más de 800.000 títulos de confianza y best-sellers en negocios, crecimiento personal y humanidades. Incluye lectura ilimitada y voz estándar de lectura en voz alta.
  • Avanzado: Perfecto para estudiantes avanzados e investigadores que necesitan acceso completo e ilimitado. Desbloquea más de 1,4 millones de libros en cientos de materias, incluidos títulos académicos y especializados. El plan Avanzado también incluye funciones avanzadas como Premium Read Aloud y Research Assistant.
Ambos planes están disponibles con ciclos de facturación mensual, cada cuatro meses o anual.
Somos un servicio de suscripción de libros de texto en línea que te permite acceder a toda una biblioteca en línea por menos de lo que cuesta un libro al mes. Con más de un millón de libros sobre más de 1000 categorías, ¡tenemos todo lo que necesitas! Obtén más información aquí.
Busca el símbolo de lectura en voz alta en tu próximo libro para ver si puedes escucharlo. La herramienta de lectura en voz alta lee el texto en voz alta por ti, resaltando el texto a medida que se lee. Puedes pausarla, acelerarla y ralentizarla. Obtén más información aquí.
¡Sí! Puedes usar la app de Perlego tanto en dispositivos iOS como Android para leer en cualquier momento, en cualquier lugar, incluso sin conexión. Perfecto para desplazamientos o cuando estás en movimiento.
Ten en cuenta que no podemos dar soporte a dispositivos con iOS 13 o Android 7 o versiones anteriores. Aprende más sobre el uso de la app.
Sí, puedes acceder a Diseño de arquitecturas .NET orientadas a microservicios de Ramón Serrano Valero en formato PDF o ePUB, así como a otros libros populares de Ciencia de la computación y Programación. Tenemos más de un millón de libros disponibles en nuestro catálogo para que explores.

Información

Editorial
Marcombo
Año
2022
ISBN del libro electrónico
9788426734471
Edición
1
Categoría
Programación

PROYECTO DE MICROSERVICIOS

Incorporemos los conocimientos adquiridos hasta ahora para crear un proyecto de microservicios [MS-0], compuesto por varios monolitos; cada microservicio debe tener las siguientes características:
Aislado del resto.
Ejecutado en un contenedor Docker.
La comunicación entre microservicios, en caso de que exista, se realizará mediante RabbitMQ.
Empleará una arquitectura limpia.
Tendrá su propio sistema de almacenamiento también aislado y ejecutado en un contenedor Docker.
La solución a implementar se trata de un sistema de microservicios capaz de realizar el control de asistencia de miles de empleados de una empresa.
Illustration
Figura MS-0
Dado que, por lo general, el control de entradas y salidas suelen ser al mismo tiempo, consideramos interesante ofrecer una solución basada en microservicios, capaz de gestionar todo este tráfico.
Se compone de los siguientes microservicios:
Microservicio de autenticación de usuarios basado en JWT, con base de datos No SQL Cassandra.
Microservicio de control de accesos de empleados, con base de datos SQL Server gestionadas las conexiones por Dapper.
Microservicio de histórico de accesos de empleados, con base de datos No SQL MongoDB.
La infraestructura dispone de los siguientes contenedores a levantar en Docker:
ms.cassandra.db: Base de datos Cassandra.
ms.sql.employees.db: Base de datos SQL Server.
ms.mongo.attendance.db: Base de datos MongoDB.
ms.users.api: API de microservicio de autenticación.
ms.employees.api: API del microservicio registro de asistencia de empleados.
ms.attendances.api: API del microservicio de histórico de asistencia.
ms.rabbitmq.queue: Cola de mensajería RabbitMQ.
La comunicación entre los microservicios se realizará tanto por Http con Refit, como por el sistema de colas RabbitMQ.

Microservicio de autenticación

El microservicio de autenticación se comunicará con una base de datos Cassandra que contiene los registros de los usuarios del sistema. Ambos están empaquetados en contenedores Docker.
Realizará las siguientes tareas:
Autenticación: Proporcionando a la API de autenticación el nombre de usuario y contraseña, estas credenciales se validarán contra la base de datos Cassandra, obteniendo un token JWT en caso de ser válido.
Obtención de todos los usuarios: Únicamente accesible por un usuario con rol de administrador, retornará los usuarios almacenados en BD.
Creación de nuevo usuario: Únicamente accesible por administradores, permitiendo crear nuevos usuarios en caso de que no exista su nombre de usuario.

Contenedor Cassandra

Cassandra es el almacén de datos seleccionado en el microservicio de autenticación, debido a que podemos almacenar un gran número de usuarios pertenecientes a la empresa; estos usuarios poseen una clave primaria, su nombre de usuario, fácilmente indexable, requisito en Cassandra, lo cual es perfecto.
Al tratarse de una base de datos No SQL, las lecturas son rapidísimas, lo que nos beneficia para ofrecer un sistema de autenticación veloz.
De modo que vamos a crear un contenedor “ms.cassandra.db”, usando una imagen de Cassandra [MSA-4].
Illustration
Figura MSA-4
Descarguemos la imagen de Cassandra a través del comando Docker, como ya vimos en apartados anteriores [MSA-5]. Una vez descargada, listamos las imágenes de nuestro equipo y la encontraremos con la última versión “latest”.
Illustration
Figura MSA-5
Creemos el contenedor “ms.cassandra.db”, de la imagen Cassandra que acabamos de crear [MSA-6], asignándole el volumen local de nuestro equipo “/ Users/Docker/MicroServices/Cassandra” con la ruta que utiliza internamente el contenedor de Cassandra para almacenar los datos “/var/lib/cassandra” y abramos el puerto 9042 para interactuar con este almacén de datos.
De esta forma, aunque eliminásemos el contenedor, sus datos no se perderían, gracias al volumen local que persiste los datos del almacén de Cassandra.
Illustration
Figura MSA-6
Una vez disponemos del contenedor “ms.cassandra.db” activo, al haber explicado Cassandra en anteriores capítulos, no entraremos en detalle, simplemente creemos [MSA-7]:
Keyspace KSUsers con estrategia de replicación simple y manteniendo una copia de los datos en los nodos.
Tabla de usuarios “User”, con tres columnas; la primera será el índice y clave primaria nombre de usuario, mientras que las otras dos serán contraseña y nombre del rol del usuario.
Insertamos un usuario con el rol de administrador.
Illustration
Figura MSA-7
Con esto habríamos concluido la configuración inicial del contenedor Cassandra que utilizaremos en este microservicio.

Creación de microservicio de autenticación

El microservicio de autenticación [MSA-8] utiliza una arquitectura limpia de 4 capas, como hemos visto hasta ahora. Su responsabilidad radica en la autenticación en base a unas credenciales proporcionadas, la obtención de los usuarios registrados y, por último, la creación de nuevos usuarios.
Este último lo crearemos como método del controlador UsersController, aunque posteriormente la creación de usuarios se realizará por un evento invocado en la fase de crear nuevos empleados.
Los patrones utilizados en cada capa son:
Presentación: Patrón de autenticación basado en JWT.
Aplicación: Patrón CQRS a través de MediatR, para separar las escrituras de las lecturas.
Infrae...

Índice

  1. Cubierta
  2. Título
  3. Créditos
  4. Índice
  5. Introducción
  6. Motivación
  7. Arquitectura software
  8. Principios solid
  9. Proyecto web API base con .NET 5
  10. Inyección de dependencias en .NET 5
  11. Patrón Repository
  12. AutoMapper
  13. LOG
  14. Autenticación JWT (JSON web token)
  15. Middleware
  16. CQRS: Command query responsibility segregation
  17. MediatR: Patrón MediatR
  18. Docker
  19. Proyecto de microservicios
  20. Reflexiones finales