Services distribués en Go
256 pages
French
PDF
4.5

Services distribués en Go

Services distribués en Go

Auteur :

Année :

Résumé :

Introduction

Le livre « Distributed Services with Go » (en traduction russe — « Services distribués en Go ») de Travis Jeffrey est paru en 2021 et a immédiatement attiré l'attention des développeurs travaillant avec le langage Go (Golang). Ce n'est pas un énième guide de syntaxe, mais un guide pratique pour créer de véritables systèmes distribués. L'auteur propose au lecteur de parcourir le chemin allant de l'écriture d'un simple serveur HTTP au déploiement d'un service tolérant aux pannes complet dans Kubernetes en utilisant gRPC, le protocole Raft et les pratiques modernes d'observabilité.

Le livre compte 256 pages et s'adresse à ceux qui connaissent déjà les bases de Go et souhaitent approfondir l'architecture des applications distribuées. Travis Jeffrey est un ingénieur expérimenté qui a travaillé chez Heroku et d'autres entreprises technologiques, ses conseils sont donc étayés par une expérience réelle.

De quoi parle le livre

L'idée principale du livre est de montrer comment construire un service distribué « à partir de zéro », en utilisant uniquement les outils et bibliothèques standard de Go, puis d'ajouter progressivement des fonctionnalités : réplication, découverte de services, sécurité et déploiement. Chaque chapitre est consacré à un aspect spécifique :

  • Chapitres 1-2 : Bases de gRPC et Protocol Buffers — comment définir une API et générer du code.
  • Chapitres 3-4 : Implémentation du serveur et du client, gestion des erreurs, flux de données.
  • Chapitre 5 : Introduction à l'algorithme de consensus Raft et son implémentation à l'aide de la bibliothèque hashicorp/raft.
  • Chapitre 6 : Réplication des logs et garantie de tolérance aux pannes.
  • Chapitre 7 : Découverte de services (service discovery) et configuration dynamique.
  • Chapitre 8 : Sécurité : TLS, authentification et autorisation.
  • Chapitre 9 : Observabilité : journalisation structurée, métriques (Prometheus) et traçage (OpenTelemetry).
  • Chapitre 10 : Déploiement dans Kubernetes : rédaction de Dockerfile, manifestes, charts Helm.

Chaque chapitre contient des exemples de code pratiques que vous pouvez exécuter et modifier. À la fin du livre, le lecteur obtient un service distribué prêt à l'emploi pour le stockage et la réplication de logs.

À qui s'adresse ce livre

Le livre est destiné aux développeurs Go de niveau intermédiaire qui savent déjà écrire des applications simples en Go et souhaitent passer à la création de systèmes distribués. Il sera également utile :

  • Aux ingénieurs backend intéressés par l'architecture des microservices.
  • Aux spécialistes DevOps qui souhaitent mieux comprendre le fonctionnement interne des services.
  • Aux étudiants et enseignants de cours sur les systèmes distribués.

Pour la lecture, il est souhaitable de connaître les bases de Go (goroutines, canaux, interfaces) et d'avoir une compréhension générale des protocoles réseau (TCP/IP, HTTP). La connaissance de Kubernetes et gRPC n'est pas obligatoire — l'auteur explique tout depuis le début.

Ce que le lecteur apprendra

Après avoir lu le livre, vous serez capable de :

  • Concevoir et implémenter une API gRPC en utilisant Protocol Buffers.
  • Intégrer l'algorithme de consensus Raft pour garantir la tolérance aux pannes.
  • Configurer la découverte de services à l'aide du client etcd ou Consul.
  • Ajouter le chiffrement et l'authentification via TLS.
  • Intégrer la journalisation structurée, les métriques et le traçage distribué.
  • Empaqueter l'application dans une image Docker et la déployer dans Kubernetes.
  • Écrire des tests pour les composants distribués.

Points forts

L'un des principaux atouts du livre est son orientation pratique. Vous ne lisez pas simplement de la théorie, mais vous écrivez du code que vous pouvez utiliser immédiatement. L'auteur utilise des versions actuelles des bibliothèques et des outils (Go 1.16+, gRPC, Kubernetes).

Le livre est bien structuré : chaque chapitre commence par un énoncé du problème et se termine par un résumé. Le code est commenté et les concepts complexes (par exemple, Raft) sont expliqués

Recommendations