Como criei minha própria imagem Docker do Apache Benchmark para testes de stress em servidores web

Decidi criar uma imagem Docker personalizada para o Apache Benchmark (ab), uma ferramenta clássica para testes de desempenho em servidores web. Este projeto foi uma oportunidade testar meu conhecimento em Docker e configurar um pipeline automatizado no…


This content originally appeared on DEV Community and was authored by Marcos Vilela

Decidi criar uma imagem Docker personalizada para o Apache Benchmark (ab), uma ferramenta clássica para testes de desempenho em servidores web. Este projeto foi uma oportunidade testar meu conhecimento em Docker e configurar um pipeline automatizado no GitHub Actions para publicação no Docker Hub. Vou compartilhar os detalhes de como desenvolvi essa solução e os aprendizados que tive ao longo do processo.

Sobre o Apache Benchmark

O Apache Benchmark, ou simplesmente ab, é uma ferramenta de linha de comando que permite realizar testes de desempenho em servidores web. Ele simula o tráfego de múltiplos usuários, mede o tempo de resposta do servidor e ajuda a entender sua capacidade de lidar com diferentes cargas de requisições.

O Dockerfile

Para a construção dessa imagem, optei por usar a imagem base do httpd, e então instalei o apache2-utils, pacote que inclui o Apache Benchmark. O Dockerfile ficou simples e direto, facilitando a reprodutibilidade do setup:

FROM httpd:latest

RUN apt-get update && \
    apt-get install -y --no-install-recommends apache2-utils && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

ENTRYPOINT ["ab"]

Essa imagem permite que eu execute comandos do Apache Benchmark diretamente no contêiner sem precisar de configurações adicionais. Para rodar um teste de stress, basta o comando:

$ docker run --rm marcosvile/ab -n 2000 -c 200 https://[url]/

Automatizando o processo de build com GitHub Actions

Para garantir que minha imagem estivesse sempre atualizada e disponível, criei um pipeline de CI/CD no GitHub Actions. A configuração foi simples, mas me deu a chance de entender melhor a integração entre GitHub Actions e Docker Hub.

name: Docker

on:
  push:
    branches:
      - main    

jobs:

  docker:
    runs-on: 'ubuntu-latest'
    steps:
    - uses: actions/checkout@v3

    - name: Set up Docker Build
      uses: docker/setup-buildx-action@v2.0.0

    - name: Login to DockerHub
      uses: docker/login-action@v2.0.0
      with:
        username: ${{ secrets.USERNAME }}
        password: ${{ secrets.PASSWORD_DOCKER_HUB }}

    - name: Build and push
      uses: docker/build-push-action@v3.0.0
      with:
        context: .
        file: ./Dockerfile
        push: true
        tags: marcosvile/ab:latest

Para configurar o acesso seguro ao Docker Hub, adicionei minhas credenciais como secrets no repositório do GitHub, o que me permitiu automatizar o login e o push da imagem com segurança. Cada push no branch main aciona esse pipeline, gerando e publicando uma nova versão da imagem no Docker Hub.

Aprendizados e próximos passos

Esse projeto me permitiu aprender a construção de imagens Docker, automação com GitHub Actions e publicação de imagens no Docker Hub. Além disso, comecei a enxergar esse tipo de projeto como uma forma de consolidar meu aprendizado, criando minhas próprias "ferramentas" e scripts personalizados para facilitar tarefas diárias.

Esse projeto me ajudou a consolidar conhecimentos em:

  • Construção de imagens Docker personalizadas: entender melhor como estruturar e otimizar imagens para uso em testes de desempenho.
  • GitHub Actions e pipeline CI/CD: explorar como configurar e gerenciar pipelines para automatizar a criação e publicação de imagens no Docker Hub.
  • Criação de ferramentas próprias: incentivar a prática de desenvolver soluções personalizadas, adaptando-as para as necessidades específicas e reforçando o aprendizado.

Se quiser conferir o projeto e utilizar a imagem, ele está disponível no meu repositório do GitHub: marcosvile/apacheAB.


This content originally appeared on DEV Community and was authored by Marcos Vilela


Print Share Comment Cite Upload Translate Updates
APA

Marcos Vilela | Sciencx (2024-11-08T01:42:01+00:00) Como criei minha própria imagem Docker do Apache Benchmark para testes de stress em servidores web. Retrieved from https://www.scien.cx/2024/11/08/como-criei-minha-propria-imagem-docker-do-apache-benchmark-para-testes-de-stress-em-servidores-web/

MLA
" » Como criei minha própria imagem Docker do Apache Benchmark para testes de stress em servidores web." Marcos Vilela | Sciencx - Friday November 8, 2024, https://www.scien.cx/2024/11/08/como-criei-minha-propria-imagem-docker-do-apache-benchmark-para-testes-de-stress-em-servidores-web/
HARVARD
Marcos Vilela | Sciencx Friday November 8, 2024 » Como criei minha própria imagem Docker do Apache Benchmark para testes de stress em servidores web., viewed ,<https://www.scien.cx/2024/11/08/como-criei-minha-propria-imagem-docker-do-apache-benchmark-para-testes-de-stress-em-servidores-web/>
VANCOUVER
Marcos Vilela | Sciencx - » Como criei minha própria imagem Docker do Apache Benchmark para testes de stress em servidores web. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2024/11/08/como-criei-minha-propria-imagem-docker-do-apache-benchmark-para-testes-de-stress-em-servidores-web/
CHICAGO
" » Como criei minha própria imagem Docker do Apache Benchmark para testes de stress em servidores web." Marcos Vilela | Sciencx - Accessed . https://www.scien.cx/2024/11/08/como-criei-minha-propria-imagem-docker-do-apache-benchmark-para-testes-de-stress-em-servidores-web/
IEEE
" » Como criei minha própria imagem Docker do Apache Benchmark para testes de stress em servidores web." Marcos Vilela | Sciencx [Online]. Available: https://www.scien.cx/2024/11/08/como-criei-minha-propria-imagem-docker-do-apache-benchmark-para-testes-de-stress-em-servidores-web/. [Accessed: ]
rf:citation
» Como criei minha própria imagem Docker do Apache Benchmark para testes de stress em servidores web | Marcos Vilela | Sciencx | https://www.scien.cx/2024/11/08/como-criei-minha-propria-imagem-docker-do-apache-benchmark-para-testes-de-stress-em-servidores-web/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.