Arquitetura e implementação de microsserviços passo a passo, parte 1

Olá a todos,

Estou no processo de implementar um novo projeto simples baseado em microsserviços, como exemplo de um guia passo a passo para aqueles que tiveram dificuldades com a arquitetura de microsserviços e ainda estão procurando "outra" boa referência. Além disso, eu realmente aprecio o pensamento através do feedback e da proposta para tornar este projeto um pedaço de trabalho de alta qualidade.

Existem vários artigos e exemplos de código-fonte. Mas, infelizmente, não consegui encontrar nenhuma referência com instruções passo a passo simples, sem mergulhar fundo no Docker, no Event Store, em uma variedade de configurações, na implantação da nuvem, etc. Eu clonei vários projetos e tentei começar a brincar com eles, mas você sabe, só Deus sabe como iniciá-los, quais dependências estão faltando e por que todos esses scripts estão falhando com milhares de erros.

Por exemplo, este projeto de eShop da Microsoft contém tudo o que precisamos, mas não é tão simples descobrir o que está acontecendo lá, cadeias de conexão de banco de dados SQL, scripts do Docker falham, nenhum How-Tos e não tenho certeza se é super arquitetura simples que você precisa para começar.

imagem

Esses caras da Polônia estão tentando fazer algo valioso e simples o suficiente, confira .
Então, aqui tentarei implementar esse tutorial para que seja o mais simples possível para começar com o básico e escrever um código básico para usar posteriormente em seus projetos.

Não falaremos sobre “por que / quando devemos usar microsserviços?”, Existem muitos artigos sobre isso. Por exemplo, esse cara fez uma boa pesquisa e resumiu sobre microsserviços .

Ele abordará os seguintes tópicos e tentará simplificar:

  1. Pré requisitos e configuração do ambiente
  2. Escolhendo um nome para um projeto + metas que queremos alcançar
  3. Arquitetura geral
  4. Início da implementação (.NET Core)
  5. Configuração e teste do banco de dados e cache
  6. Configuração de ferramentas e utilitários
  7. Definir cenário de caso de uso super básico + sua implementação
  8. Implantação em algum lugar

Usará o .NET Core 2.1, VS2017 no Windows 10. Os seguintes terceiros devem estar instalados e em execução na sua máquina: Redis para Windows , MongoDB , Seq , RabbitMQ . Irá executar todas as coisas com seus parâmetros padrão. Eu achei essas ferramentas rápidas e fáceis de instalar e trabalhar prontas para uso.

Cliente de desktop para Redis ( https://redisdesktop.com/ ):

imagem

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

imagem

2. O objetivo do projeto é criar um back-end para aquisição de dados de milhares de dispositivos móveis / portáteis. O tipo de dados são dados do sensor: movimento de 9 eixos, localização, temperatura, umidade, etc. Também desejará processar e analisar todos esses dados para mostrá-los em algumas belas UIs baseadas na Web como estatísticas, gráficos, rastreamento etc. O nome de um projeto foi escolhido enquanto eu escrevia este parágrafo - "Sensor Fusion Backend". Os dois primeiros microsserviços que consigo pensar são o DataProcessorService e o DataAnalyticsService.

3. Vamos começar a pensar em arquitetura e infraestrutura mínima, pelo menos para iniciantes. Conectividade: nosso projeto está lidando com dados IoT / sensores, portanto, com isso em mente, eu usaria o broker de mensagens RabbitMQ para comunicação cliente-servidor. Aqui estão duas explicações curtas e simples . Banco de dados: usará a combinação MongoDB + Redis . MongoDB como sistema principal de armazenamento e Redis como cache. Registro: biblioteca de registradores Serilog + Seq como ferramenta de visualizador.

Seq é um aplicativo da web hospedado em sua infraestrutura:

imagem

Para simplificar a API, usarei o Swagger:

imagem

Portanto, a primeira parte é mais sobre quais ferramentas usaremos para iniciar a implementação. Verá o código na Parte 2 e começará a jogar com a infraestrutura.

Source: https://habr.com/ru/post/pt458400/


All Articles