Hébergement Go
Le cas le plus simple de tous
Un service Go se déploie en déposant un fichier. Pas d’interpréteur, pas de bibliothèques, pas d’environnement à reconstituer — et une empreinte mémoire qui tient sur presque rien.
- Un binaire autonome : rien à installer sur la machine
- Empreinte mémoire réduite, plusieurs services par machine
- Déploiement et retour arrière immédiats
- Supervision, sauvegarde et astreinte comprises
Le principe
Ce qu’il n’y a pas à faire
Rien à reconstituer
Les autres technologies de cette série demandent qu’on prépare la machine : version d’interpréteur, bibliothèques, dépendances qui doivent correspondre. Go supprime cette étape. Le programme se compile en un fichier unique, et ce fichier contient tout ce dont il a besoin.
Le déploiement consiste donc à déposer le binaire et à relancer le service. Le retour arrière consiste à remettre le précédent. Il n’y a pas de troisième possibilité, et c’est ce qui rend l’exploitation d’un service Go remarquablement peu bavarde.
Ce qui reste à faire, quand même
Trois choses, et elles ne sont pas propres à Go :
- Un superviseur qui relance le service s’il s’arrête, et remonte l’incident. Un programme s’arrête toujours un jour.
- Un reverse proxy devant, qui porte le certificat SSL et le nom de domaine — et qui permet de basculer d’une version à l’autre sans coupure.
- Les journaux sortis du processus, et les métriques de la machine surveillées comme sur nos autres serveurs.
Plusieurs services sur une machine
C’est la conséquence économique la plus concrète. Là où une application Java demande des centaines de méga-octets de mémoire et une application PHP un serveur web complet, un service Go se contente de quelques dizaines de méga-octets.
Une même machine peut donc en porter plusieurs sans se marcher dessus. Nous exploitons ainsi nos propres outils — redirection HTTP, vérification d’adresses IP en listes noires, détection de botnets, serveurs SMTP entrants et sortants — et le dimensionnement reste modeste au regard de ce qu’ils traitent.
Serveur privé ou conteneur
Le serveur privé convient parfaitement, et c’est souvent le plus économique puisque plusieurs services y cohabitent. Le conteneur apporte moins ici qu’ailleurs — l’image ne résout pas un problème d’environnement, puisqu’il n’y en a pas — mais reste pertinent si vous déployez très souvent ou si le reste de votre pile est déjà conteneurisé.
Le socle
Ce que nous mettons en place
-
Un fichier, un déploiement
Le binaire est déposé et le service relancé. Le retour arrière consiste à remettre le précédent — il n’y a pas de troisième possibilité.
-
Service supervisé
Relancé automatiquement s’il s’arrête, avec remontée de l’incident. Nos outils corrigent d’abord et préviennent l’astreinte ensuite.
-
Reverse proxy et SSL
Certificat automatique, nom de domaine, et bascule d’une version à l’autre sans coupure de service.
-
Plusieurs services par machine
Quelques dizaines de méga-octets par service : une même machine en porte plusieurs sans qu’ils se gênent.
-
Journaux et métriques
Les journaux sortent du processus, les métriques de la machine sont surveillées comme sur nos autres serveurs.
-
Exploitation complète
Mises à jour du système, sauvegarde répliquée hors site, correction automatique sur alerte et administrateur d’astreinte.
Questions fréquentes
Hébergement Go : vos questions
Une autre question ? Le support répond directement, sans intermédiaire, de 9h à 12h et de 14h à 17h.
Faut-il une grosse machine ?
Rarement. C’est l’avantage le plus concret de Go en exploitation : quelques dizaines de méga-octets de mémoire par service, là où d’autres technologies en demandent des centaines. Une machine modeste porte plusieurs services — c’est ainsi que tournent nos propres outils réseau.
Faut-il conteneuriser ?
Moins qu’ailleurs. Le principal apport d’un conteneur est de figer un environnement, et un binaire Go n’en a pas. Cela reste pertinent si vous déployez très souvent ou si le reste de votre pile est déjà conteneurisé.
Comment déployer sans coupure ?
En faisant tourner deux instances derrière le proxy et en les remplaçant l’une après l’autre. Le démarrage d’un binaire Go étant quasi instantané, l’opération est plus simple que sur la plupart des autres technologies.
Développez-vous aussi le service ?
Oui, et nous employons Go pour nos propres besoins : redirection HTTP, vérification d’adresses IP en listes noires, détection de botnets, serveurs SMTP entrants et sortants. C’est ce qui nous permet d’en parler autrement que par la documentation.
Un service à faire tourner, et rien d’autre ?
C’est le cas le plus simple que nous ayons à héberger. Dites-nous ce qu’il fait et à quelle fréquence il est sollicité.