O documento discute a utilização de um "chassis" para microserviços, que facilita a configuração de mecanismos transversais como log, métricas e rastreamento distribuído. Um chassis padroniza essas funcionalidades e permite iniciar rapidamente o desenvolvimento de novos serviços. Frameworks como Spring Boot e Dropwizard podem ser usados como chassis para Java, enquanto Gizmo e Micro são opções para Go.
2. Introdução
Quando você inicia o desenvolvimento de uma aplicação, geralmente gasta uma
quantidade significativa de tempo, configurando mecanismos para trabalhar
com cross-cutting.
3. Cross-cutting concerns
● Externalized configuration: inclui credenciais, locais de rede de serviços
externos, como bancos de dados etc;
● Logging: configura frameworks de logs como log4j ou logback;
● Health checks: configurações para monitorar o serviço, determinando a
"saúde" da aplicação;
4. Cross-cutting concerns
● Metrics: métricas que fornecem informações sobre o que o aplicativo está
fazendo e sobre o desempenho;
● Distributed tracing: serviços que atribui a cada solicitação externa um
identificador exclusivo que é passado entre os serviços.
5. Por quê?
● É comum levar dias configurando estes mecanismos;
● Há dezenas ou centenas de serviços;
● Frequentemente se cria novos serviços, cada um pode levar dias ou
semanas para desenvolver;
● Criação de um novo microserviço deveria ser rápido e fácil.
6. Solução
● Criar microserviços usando um framework, que trabalhe com cross-cutting;
● Exemplos de frameworks:
○ Java:
■ Spring Boot;
■ Sprint Cloud;
■ Dropwizard.
○ Go:
■ Gizmo;
■ Micro;
■ Go Kit.
8. Resultado
Prós
O principal benefício de um chassi é que você
pode começar de forma rápida e fácil com o
desenvolvimento de um microservice.
Contras
Você precisa de um chassi para cada
linguagem de programação que você deseja
usar. Isso pode ser um problema para a
adoção de uma nova linguagem ou estrutura
de programação.