Instalar Go (Golang) 1.9 en Ubuntu 17.10

Tiempo de lectura ~1 minuto

Aquí esta un pequeño memorando para los que quieren instalar Go (1.9) en su maquina Ubuntu (17.10). Cabe recordar Go es un lenguaje compilado, pues ne se necesita instalar Go en la maquina que va a alojar la aplicación final.

Actualizar los repositories, por si:

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

Descargar y instalar Go :

sudo curl -O https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz  # Descargar el archivo. Cambie el nombre del archivo si necesita otra versión de Go o otra arquitectura
sudo tar -xvf go1.9.linux-amd64.tar.gz  # Extraer el archivo
sudo mv go /usr/local  # Desplazar los binarios hacia /usr/local
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile  # Se actualiza su perfil bash para que Go este en el PATH
source ~/.profile  # Tomar cambios en cuento

Ahora, Go esta instalado. Cree sur proyecto y inicialize las variables de entorno:

mkdir $HOME/mi_proyecto
mkdir $HOME/mi_proyecto/src
mkdir $HOME/mi_proyecto/src/mi_app
export GOPATH=$HOME/mi_proyecto

Luego cree sur app:

vim $HOME/mi_proyecto/src/mon_appli/mi_app.go

Que contiene lo siguiente:

package main

import "fmt"

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

Compile la aplicación:

go install mi_app

Un ejecutable fue generado en una nueva carpeta bin. Ejecútelo:

$HOME/mi_proyecto/bin/mi_app

Debería obtener:

hello world

Para entender las diferencias entre go install, go build, y go run vaya por allá. Y si no quiere/puede instalar Go en su maquina, eche un vistazo a esta imagen Docker.

Enjoy !

Also available in English | Existe aussi en français

Rate limiting de la API con Traefik, Docker, Go y Caching

Limitar el uso de la API basándose en una regla avanzada de limitación de velocidad no es tan fácil. Para lograr esto detrás de la API de NLP Cloud, estamos utilizando una combinación de Docker, Traefik (como proxy inverso) y el almacenamiento en caché local dentro de un script Go. Cuando se hace correctamente, se puede mejorar considerablemente el rendimiento de la limitación de la tasa y estrangular adecuadamente las solicitudes de la API sin sacrificar la velocidad de las solicitudes. Seguir leyendo