Muitas empresas começaram a pensar em Microservices na última decada e a iniciar migrações dos sistemas arquitetados de forma monolítica. Esse termo Micro Web Services foi introduzido em 2005 por Peter Rodgers e empresas como Netflix e Amazon foram as pioneiras em cases corporativos de sucesso, mas a ideia já era considerada muito antes disso e esse estilo de arquitetura pode ser considerado como o novo sucesso aplicado da antiga falha prática da arquitetura orientada a serviços (SOA), que teoricamente já previa tudo o que os microsserviços se propõe a fazer. Neste post, irei descrever as minhas respostas e contar as motivações em relação as perguntas que eu costumo fazer sobre o tema “Microsserviços”, mencionado no post #0 da série.
Motivação
Geralmente, eu separo as perguntas sobre a parte conceitual dos microservices no tema Arquitetura e a parte mais prática direcionada para este tema “Microsserviços“. A motivação das perguntas aqui é entender o quanto o candidato conhece a aplicação de Microservices Patterns na prática e eu gosto de pensar que conhecê-los é como conhecer Design Patterns quando falamos de programação orientada a objetos, mas neste caso, focados para esse estilo de arquitetura.
Perguntas
- Você conhece Microsservice Patterns? Costuma aplicar algum no dia a dia?
Respostas: Sim. Cada pattern se propõe a resolver problemas diferentes e os que já utilizei diretamente ou implementei no meu dia a dia são API Gateway, API Composition, Database per Service, Shared Database per Service, Log Aggregation, Distributed Tracing, Health Check, External Configuration e Circuit Breaker. Sei que existem outros como Saga, Command Query Responsibility Segregation (CQRS), Service Discovery e etc, mas ainda não vi a necessidade de utilizá-los nas soluções que precisei desenhar.
A partir dessa pergunta, a entrevista pode variar de estudos teóricos a aplicações práticas, entendendo a experiência profissional da pessoa entrevistada e, geralmente, gerando mais perguntas ou seguindo para o próximo tema.
Este é um assunto relativamente novo para mim e sempre estou aprendendo algo novo na teoria e prática profissional. Quando preciso consultar, utilizo as referências do livro “Padrões de Microsserviços: Com exemplos em Java” ou consulto no site microservices.io. As documentações para o tema em português ainda são escassas e esse é um case real de como saber ler em inglês pode te ajudar no dia a dia, como mencionei no post “Como começar a sua carreira como desenvolvedor de software”.
Para saber mais
- The Long History of Microservices
- Martin Fowler on Characteristics of Microservices
- Microservices – a definition of this new architectural term
- Microservice Patterns: With examples in Java
- Pattern: Microservice Architecture
Gostou? Foi útil? Concorda ou discorda de algum ponto? Comenta ai e vamos aprender mais juntos.
Espero que te ajude 😉