Estou iniciando um novo projeto no trabalho e provavelmente será o único desenvolvedor do projeto, embora um ou dois outros desenvolvedores precisem integrar aplicativos existentes ou scripts simples no projeto principal. O projeto precisa lidar com a ingestão / processamento de dados em massa e em fluxo em pequena escala e a execução de código orientado a eventos e sob demanda. Algumas partes da estrutura serão fortemente vinculadas à CPU e outras poderão ser fortemente vinculadas à E / S; a maioria dos dados deve residir em uma única máquina, mas podemos criar um cluster e conectar VMs para aumentar a energia de computação disponível. Provavelmente, haverá um ou mais aplicativos da Web pequenos que dependem dos serviços fornecidos nessa estrutura principal. A linguagem principal será o Python para praticamente tudo.
Minha pergunta é se devo ou não adotar uma abordagem de microsserviços para um esforço como esse ou me ater a um aplicativo monolítico, já que estarei fazendo a maior parte do desenvolvimento sozinho. Meu pensamento é que os microsserviços (usando Nameko) fornecem uma separação natural entre elementos da estrutura que possuem diferentes modelos de execução (pipelines de dados, aplicativos de lançamento de eventos, sob demanda, aplicativos da web etc.) e uma maneira clara de distribuir a carga de trabalho e comunicação através de múltiplos processos. Minha preocupação é que eu provavelmente acabaria com um cluster Kubernetes para gerenciar (eu estou familiarizado com o Docker, mas ainda relativamente novo para o Kubernetes), vários serviços (rabbitmq, redis etc.) necessários apenas para facilitar a execução do sistema, e potencialmente muitos pequenos pedaços de código para realmente implementar todos os recursos necessários que nós '
Para um projeto com pouco mais que um desenvolvedor, os microsserviços ainda simplificam o desenvolvimento e a manutenção de um sistema complicado como esse? Existem métodos / sistemas / estruturas que eu deveria considerar usar ou reduzir a sobrecarga envolvida na criação do sistema dessa maneira?