Serviços Distribuídos em Go
256 páginas
Portuguese
PDF
4.5

Serviços Distribuídos em Go

Serviços Distribuídos em Go

Autor:

Ano:

Resumo:

Introdução

O livro «Distributed Services with Go» (em português — «Serviços Distribuídos em Go») de autoria de Travis Jeffery foi lançado em 2021 e imediatamente atraiu a atenção de desenvolvedores que trabalham com a linguagem Go (Golang). Não é mais um guia de referência sobre sintaxe, mas sim um guia prático para a criação de sistemas distribuídos reais. O autor propõe ao leitor percorrer o caminho desde a escrita de um servidor HTTP simples até a implantação de um serviço completo e tolerante a falhas no Kubernetes usando gRPC, protocolo Raft e práticas modernas de observabilidade.

O livro tem 256 páginas e é voltado para aqueles que já conhecem os fundamentos do Go e desejam se aprofundar na arquitetura de aplicações distribuídas. Travis Jeffery é um engenheiro experiente que trabalhou na Heroku e em outras empresas de tecnologia, portanto seus conselhos são respaldados por experiência real.

Sobre o que é o livro

A ideia principal do livro é mostrar como construir um serviço distribuído «do zero», usando apenas ferramentas e bibliotecas padrão do Go, e depois adicionar gradualmente funcionalidades: replicação, descoberta de serviços, segurança e implantação. Cada capítulo é dedicado a um aspecto específico:

  • Capítulo 1-2: Fundamentos do gRPC e Protocol Buffers — como definir uma API e gerar código.
  • Capítulo 3-4: Implementação do servidor e do cliente, tratamento de erros, transmissão de dados em fluxo.
  • Capítulo 5: Introdução ao algoritmo de consenso Raft e sua implementação usando a biblioteca hashicorp/raft.
  • Capítulo 6: Replicação de logs e garantia de tolerância a falhas.
  • Capítulo 7: Descoberta de serviços (service discovery) e configuração dinâmica.
  • Capítulo 8: Segurança: TLS, autenticação e autorização.
  • Capítulo 9: Observabilidade: logging estruturado, métricas (Prometheus) e rastreamento (OpenTelemetry).
  • Capítulo 10: Implantação no Kubernetes: criação de Dockerfile, manifestos, Helm charts.

Cada capítulo contém exemplos práticos de código que podem ser executados e modificados. No final do livro, o leitor obtém um serviço distribuído pronto para armazenamento e replicação de logs.

Para quem é este livro

O livro é voltado para desenvolvedores Go de nível intermediário que já sabem escrever aplicações simples em Go e desejam avançar para a criação de sistemas distribuídos. Também será útil para:

  • Engenheiros backend interessados em arquitetura de microsserviços.
  • Profissionais de DevOps que desejam entender melhor o funcionamento interno dos serviços.
  • Estudantes e professores de cursos de computação distribuída.

Para a leitura, é desejável conhecer os fundamentos do Go (goroutines, canais, interfaces) e ter uma noção geral sobre protocolos de rede (TCP/IP, HTTP). Conhecimento de Kubernetes e gRPC não é obrigatório — o autor explica tudo do zero.

O que o leitor aprenderá

Após ler o livro, você será capaz de:

  • Projetar e implementar APIs gRPC usando Protocol Buffers.
  • Incorporar o algoritmo de consenso Raft para garantir tolerância a falhas.
  • Configurar a descoberta de serviços usando o cliente etcd ou Consul.
  • Adicionar criptografia e autenticação via TLS.
  • Integrar logging estruturado, métricas e rastreamento distribuído.
  • Empacotar a aplicação em uma imagem Docker e implantar no Kubernetes.
  • Escrever testes para componentes distribuídos.

Pontos fortes

Uma das principais vantagens do livro é o foco prático. Você não apenas lê teoria, mas escreve código que pode ser usado imediatamente. O autor utiliza versões atuais de bibliotecas e ferramentas (Go 1.16+, gRPC, Kubernetes).

O livro é bem estruturado: cada capítulo começa com a definição do problema e termina com um resumo. O código é comentado, e conceitos complexos (como Raft) são explicados

Recommendations