Docker Autoalojado
¿Qué es Bencher?
Bencher es un conjunto de herramientas de benchmarking continuo. ¿Alguna vez has tenido un impacto en el rendimiento que afecta a tus usuarios? Bencher podría haber evitado que eso sucediera. Bencher te permite detectar y prevenir regresiones de rendimiento antes de que lleguen a producción.
- Ejecución: Ejecuta tus benchmarks localmente o en CI utilizando tus herramientas de benchmarking favoritas. La CLI
bencher
simplemente envuelve tu software de benchmarks existente y almacena sus resultados. - Seguimiento: Sigue los resultados de tus benchmarks a lo largo del tiempo. Supervisa, consulta y grafica los resultados utilizando la consola web de Bencher basada en la rama de origen, el banco de pruebas y el tipo de métrica.
- Detección: Detecta regresiones de rendimiento en el CI. Bencher utiliza análisis personalizables de vanguardia para detectar regresiones de rendimiento antes de que lleguen a producción.
Por las mismas razones que las pruebas unitarias se ejecutan en CI para prevenir regresiones de características, los benchmarks también deberían ejecutarse en CI con Bencher para prevenir regresiones de rendimiento. ¡Los bugs de rendimiento son bugs!
Bencher es de código abierto y auto-alojable. Si estás interesado en usar Bencher Cloud, consulta el tutorial de inicio rápido de Bencher Cloud. Para este tutorial, vamos a usar Bencher Autoalojado con Docker.
Clonar el Repositorio
Para seguir este tutorial necesitarás tener git
instalado.
Comprueba si tienes git
instalado.
Ejecuta: git --version
Deberías ver algo como esto:
$ git --version
git version 2.37.3
Está bien si tu número de versión es diferente.
Lo importante es que este comando funcione.
Si no es así, sigue las instrucciones para instalar git
.
Con git
instalado, ahora podemos clonar el repositorio de Bencher.
Ejecuta: git clone --branch v0.3.18 https://github.com/bencherdev/bencher.git
Deberías ver algo como esto:
$ git clone https://github.com/bencherdev/bencher.git
Cloning into 'bencher'...
remote: Enumerating objects: 24752, done.
remote: Counting objects: 100% (7363/7363), done.
remote: Compressing objects: 100% (2396/2396), done.
remote: Total 24752 (delta 4862), reused 7274 (delta 4785), pack-reused 17389
Receiving objects: 100% (24752/24752), 4.92 MiB | 12.43 MiB/s, done.
Resolving deltas: 100% (16108/16108), done.
Ejecutar los Servidores de Interfaz de Usuario y API de Bencher
Para ejecutar los servidores UI y API en este tutorial necesitarás tener docker
instalado.
Verifica si tienes docker
instalado.
Ejecuta: docker --version
Deberías ver algo como esto:
$ docker --version
Docker version 20.10.17, build 100c701
Está bien si tu número de versión es diferente. Lo importante es que este comando funcione.
Si no es así, sigue las instrucciones para instalar docker
.
Con docker
instalado, ahora podemos ejecutar los servidores de interfaz de usuario y API.
Ejecuta: docker compose up -d
Deberías ver algo como esto:
$ docker compose up -d
[+] Running 16/16
⠿ bencher_ui Pulled 5.9s
...
⠿ bencher_api Pulled 6.3s
...
[+] Running 3/3
⠿ Network bencher_default Started 0.1s
⠿ Container bencher_ui Started 0.8s
⠿ Container bencher_api_local Started 0.4s
De nuevo, está bien si tu salida es diferente. Lo importante es que este comando funcione.
A continuación, comprueba que ambos contenedores docker están ejecutándose.
Ejecuta: docker ps
Deberías ver algo como esto:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1d2ed7c7481e bencherdev/bencher-ui:latest "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:3000->80/tcp, :::3000->80/tcp bencher_ui
7a8590d7021a bencherdev/bencher-api-local:latest "/api" About a minute ago Up About a minute 0.0.0.0:61016->61016/tcp, :::61016->61016/tcp bencher_api_local
Como antes, está bien si tu salida es diferente. Lo importante es que este comando funcione.
Registros del Servidor API de Bencher
Echemos un vistazo a los registros del servidor API de Bencher.
Ejecuta: docker compose logs bencher_api
Como aún no hemos configurado el email/SMTP en el servidor API, los códigos de confirmación que recibirás más adelante en el tutorial estarán en los registros del servidor.
Establecer el Host de Bencher
El host predeterminado de la CLI bencher
es Bencher Cloud (es decir, https://api.bencher.dev).
Por lo tanto, necesitas establecer tu nombre de host. La forma más sencilla de hacer esto es con la variable de entorno BENCHER_HOST
.
Ejecuta: export BENCHER_HOST=http://localhost:61016
Si luego ejecutas: echo $BENCHER_HOST
Deberías ver:
$ echo $BENCHER_HOST
http://localhost:61016
🐰 ¡Felicidades! ¡Has configurado Bencher Autoalojado! 🎉 Ahora puedes continuar con el tutorial de inicio rápido usando Bencher Autoalojado.