Installer Go (Golang) 1.9 sur Ubuntu 17.10

Temps de lecture ~1 minute

Voici un petit aide-mémoire pour ceux qui souhaitent installer Go (1.9) sur leur machine Ubuntu (17.10). Pour rappel, Go est un langage compilé, donc pas besoin d’installer Go sur la machine sur laquelle tournera votre application.

Mise à jour des dépôts et des correctifs de sécurité, au cas où :

sudo apt-get update
sudo apt-get -y upgrade

Téléchargement et installation de Go :

sudo curl -O https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz  # Téléchargement de l'archive. Changez le nom de l'archive pour une autre version de Go ou une autre architecture système
sudo tar -xvf go1.9.linux-amd64.tar.gz  # Extraction de l'archive
sudo mv go /usr/local  # On déplace les binaires vers /usr/local
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile  # On met à jour notre profile bash pour que Go soit dans le PATH
source ~/.profile  # Actualise le profile

A ce stade, Go est installé ! Maintenant créez votre projet et initialisez les variables d’environnement :

mkdir $HOME/mon_projet
mkdir $HOME/mon_projet/src
mkdir $HOME/mon_projet/src/mon_appli
export GOPATH=$HOME/mon_projet

Puis créez votre appli :

vim $HOME/mon_projet/src/mon_appli/mon_appli.go

Contenant le code suivant :

package main

import "fmt"

func main() {
    fmt.Printf("hello world\n")
}

Compilez l’application :

go install mon_appli

Un executable a été généré dans un nouveau dossier bin. Exécutez-le :

$HOME/mon_projet/bin/mon_appli

Vous devriez obtenir :

hello world

Pour comprendre les différences entre go install, go build, et go run c’est par ici. Et si vous ne souhaitez pas/pouvez pas installer Go sur votre machine, jetez un coup d’oeil à cette image Docker.

Enjoy !

Also available in English | También existe en Español

Rate Limiting d'API avec Traefik, Docker, Go, et la mise en cache

Limiter l'utilisation de l'API en fonction d'une règle avancée de limitation du débit n'est pas si facile. Pour y parvenir derrière l'API NLP Cloud, nous utilisons une combinaison de Docker, Traefik (comme proxy inverse) et la mise en cache locale dans un script Go. Si cela est fait correctement, vous pouvez améliorer considérablement les performances de votre limitation de débit et étrangler correctement les demandes d'API sans sacrifier la vitesse des demandes. Continuer de lire