Hola a todos
Estoy en el proceso de implementar un nuevo proyecto simple basado en microservicios como ejemplo de una guía paso a paso para aquellos que tuvieron dificultades con una arquitectura de microservicios y todavía están buscando "otra" buena referencia. Además, agradecería mucho pensarlo a través de los comentarios y la propuesta de hacer de este proyecto un trabajo de alta calidad.
Hay toneladas de artículos y ejemplos de código fuente. Pero, desafortunadamente, no pude encontrar ninguna referencia con instrucciones simples paso a paso, sin profundizar en Docker, Event Store, una multitud de configuraciones, cosas de implementación en la nube, etc. Cloné varios proyectos e intenté comenzar a jugar con ellos, pero ya sabes, solo Dios sabe cómo iniciarlos, qué dependencias faltan y por qué todos esos scripts fallan con miles de ERRORES.
Por ejemplo,
este proyecto de eShop de Microsoft contiene todo lo que necesitamos, pero no es tan simple descubrir lo que está sucediendo allí, las cadenas de conexión de la base de datos SQL, los scripts de Docker fallan, no How-Tos y no estoy seguro de que sea súper -simple arquitectura con la que necesitas comenzar.

Estos tipos de Polonia están tratando de hacer algo valioso y simple, por favor
échale un vistazo .
Entonces, aquí intentaré implementar un tutorial para que sea lo más simple posible para comenzar con lo básico y escribir un código básico para usar luego en sus proyectos.
No hablaremos sobre "¿por qué / cuándo debemos usar microservicios?", Hay tantos artículos al respecto. Por ejemplo, este tipo hizo
una buena investigación y resumió sobre microservicios .
Cubrirá los siguientes temas e intentaremos que sea simple:
- Requisitos previos y configuración del entorno
- Elegir un nombre para un proyecto + objetivos que queremos alcanzar
- Arquitectura general
- Inicio de implementación (.NET Core)
- Configuración y prueba de base de datos y caché
- Configuración de herramientas y utilidades
- Definir un caso de uso súper básico + su implementación
- Despliegue a algún lugar
Utilizará .NET Core 2.1, VS2017 en Windows 10. Los siguientes terceros deben instalarse y ejecutarse en su máquina:
Redis para Windows ,
MongoDB ,
Seq ,
RabbitMQ . Ejecutará todas las cosas con sus parámetros predeterminados. Encontré estas herramientas rápidas y fáciles de instalar y funcionan desde el primer momento.
Cliente de escritorio para Redis (
https://redisdesktop.com/ ):

Cliente de escritorio para MongoDB (
https://nosqlbooster.com/ ):

2. El objetivo del proyecto es crear un back-end para la adquisición de datos de miles de dispositivos móviles / portátiles. El tipo de datos son los datos del sensor: movimiento de 9 ejes, fotografía, temperatura, humedad, etc. También querrá procesar y analizar todos esos datos para mostrarlos en una hermosa interfaz de usuario basada en web como estadísticas, gráficos, seguimiento, etc. El nombre de un proyecto fue elegido mientras escribía este párrafo: "Sensor Fusion Backend". Los primeros dos microservicios que se me ocurren son DataProcessorService y DataAnalyticsService.
3. Comencemos a pensar en arquitectura e infraestructura mínima, al menos para empezar. Conectividad: nuestro proyecto se ocupa del tipo de datos IoT / sensores, por lo que, teniendo en cuenta eso, usaría el agente de mensajes RabbitMQ para la comunicación cliente-servidor. Aquí hay dos explicaciones
cortas y
simples . Base de datos: utilizará la
combinación MongoDB + Redis . MongoDB como sistema de almacenamiento principal y Redis como caché. Registro: biblioteca de registrador Serilog + Seq como herramienta de visualización.
Seq es una aplicación web alojada en su infraestructura:

Para simplificar la API, usaré Swagger:

Entonces, la primera parte trata más sobre qué herramientas usaremos para comenzar la implementación. Verá el código en la Parte 2 y comenzará a jugar con la infraestructura.