Sou bem iniciante e consegui entender do que se trata, superficialmente, a arquitetura de microserviços e suas vantagens. Entretanto, não entendi O QUE SÃO cada um dos microserviços. São partes da aplicação? Podem (devem?) ser em diferentes linguagens?
Já que você é iniciante é meio difícil explicar sem saber exatamente os termos que você já conhece, mas vamos tentar.
Depende do que você chama de aplicação. Por exemplo,s e você considera Netflix uma aplicação, então, sim, eles são parte da aplicação.
Ou melhor, eles são componentes independentes, que “prestam serviços” para uma aplicação principal fazer o papel dela.
Uma analogia com o mundo real: imagine que você me contrata para construir uma casa para você. Do seu ponto de vista, o Abel tá construindo uma casa para você.
Na realidade, eu contraria arquitetos, pedreiros, eletricistas, decoradores, etc, etc… Ou seja, teriam vários profissionais específicos para cada tarefa. Esses profissionais seriam os serviços (ser micro é um detalhe) e o Abel seria a aplicação.
Podem ser completamente diferentes uns dos outros, diferentes banco de dados, linguagens, tudo.
Se devem é uma pergunta mais polêmica. Tem algumas empresas que começou com essa liberdade de poder escrever em várias linguagens e se arrependeu.
Isso aí vira uma discussão mais profunda sem resposta absolutamente correta.