↓ Ir para o conteúdo principal

← todas as notas

📎 Webclip

Facilitando a consistência do ambiente de desenvolvimento

A página defende que a equipe precisa de um ambiente consistente e que o trabalho remoto pode reduzir velocidade e depender de uma conexão confiável. A proposta é trabalhar localmente com máquinas virtuais para manter homogeneidade entre os ambientes de desenvolvimento.

Fichamento
#

  • Aplicações web modernas dependem de vários componentes, como PHP, servidor web, banco de dados, frameworks de teste e outros serviços.
  • A abordagem clássica é instalar todos os pacotes necessários em um servidor para dar ao time a mesma experiência ao longo do desenvolvimento.
  • O desenvolvimento remoto traz perda de velocidade e dependência de uma conexão confiável com a Internet.
  • Trabalhar localmente é mais rápido, mas exige instalar os mesmos pacotes em cada máquina, o que gera inconsistência.
  • A solução proposta é criar uma máquina dentro de outra máquina, funcionando em todas as plataformas e garantindo homogeneidade entre os ambientes.
  • O VirtualBox executa outro sistema operacional na máquina local.
  • O Vagrant permite manipular máquinas virtuais pela linha de comando.
  • O Puppet define as mudanças de configuração necessárias para a máquina funcionar como desejado.
  • O exemplo usa Vagrantfile e Puppet para provisionar Apache, MySQL, PHP, Xdebug, PEAR, PHP CodeSniffer e PHPUnit.
  • A configuração encaminha a porta 80 para localhost:8080 e compartilha a pasta www local com o DocumentRoot do Apache na VM.
  • A máquina é iniciada com vagrant up, acessada com vagrant ssh e também pode ser acessada com ssh vagrant@localhost -p 2222.
  • O Puppet mantém a configuração sincronizada, e mudanças personalizadas devem ser registradas no arquivo de configuração antes de serem distribuídas.
  • A máquina virtual pode ser recarregada, destruída e recriada, suspensa, retomada ou empacotada para distribuição.
  • Com essa configuração, o desenvolvedor edita arquivos locais, recarrega o navegador e vê os resultados.
  • O texto diz que essa abordagem também pode servir para integração contínua, com provisionamento da máquina, instalação do aplicativo, execução de testes e retorno dos resultados.