Estamos pensando em dividir nossos monstros monolíticos em arquitetura baseada em microsserviços progressivamente. Temos 5 equipes, cada equipe contendo 2-3 desenvolvedores de C #, pelo menos 1 desenvolvedor de banco de dados e 2 engenheiros de controle de qualidade. Além da enorme mudança de cultura e paradigma que passa de uma arquitetura monolítica para microsserviços, também existem os desafios técnicos. Gostaria de pedir à comunidade alguma sabedoria e conselhos para evitarmos cometer os mesmos erros.
Existem bons exemplos da indústria em que os microsserviços baseados no .NET foram utilizados com sucesso em um sistema de produção? Qual foi a estratégia para o seguinte?
- Org : como você organizou as soluções / projetos .NET?
- Planejamento de desenvolvimento : em termos de planejamento de desenvolvimento, como você dividiu o trabalho entre equipes? Qual foi a estratégia geral para garantir que a conformidade do contrato entre microsserviços fosse negociada entre as equipes?
- Balanceamento de carga / roteamento / gateway de API : qual era a estratégia para balanceamento de carga, redundância e dimensionamento? Você acabou de usar uma arquitetura assíncrona completa e usou uma fila para comunicação por microsserviços ou fez ponto a ponto através de um gateway de API / balanceador de carga? E porque?
- Automação de teste : como você lidou com a automação de teste. Isso, juntamente com a integração contínua, parece absolutamente necessário para a arquitetura de microsserviços. Como você fez isso?
- Implantação : como você está implantando? Uma VM / microsserviço ou um contêiner / microsserviço ou algo totalmente diferente? Como você lidou com o fato de agora ter dezenas de bancos de dados, se não mais, considerando que cada microsserviço teria seu armazenamento de dados, o que isso fez com sua infraestrutura e como seus DBAs lidaram com isso?
- Infraestrutura : como sua infraestrutura foi dimensionada com essa arquitetura. Foi super falador e você teve que ajustá-lo ou a rede o tratou sem problemas? São auto-hospedados ou na nuvem?
- Monitoramento : qual é a sua estratégia de monitoramento? Como você está acompanhando dezenas, senão centenas, de microsserviços? É principalmente através de registro e monitoramento central?