Unison e Desenvolvimento Web 31/Jan/2005
Um dos problemas que tenho tentado resolver é o da sincronização de alterações ao código-fonte distribuído por diversas máquinas.
O ambiente de desenvolvimento e de proução que uso é composto pelas seguintes máquinas:
- Servidor Offline – este servidor é uma cópia do servidor online (de produção) e actua como elemento central de todo o desenvolvimento. Enquanto não for implementado um sistema de desenvolvimento distribuído, este servidor é essencial para consolidar todas as alterações num ponto central a partir do qual as outras máquinas da rede local se possam sincronizar.
- Laptop – esta estação de trabalho actua como elemento principal de todo o desenvolvimento, e é também o sistema de suporte a apresentações e demonstrações das soluções para os clientes. É preciso actualizar o servidor central (offline) com as alterações efectuadas, e caso existam mais estações de trabalho devem cada uma das outras se actualizar com o servidor central para que tudo esteja correctamente sincronizado.
- Servidor Online – este servidor é o servidor de produção, e tem a versão estável mais recente do site. É preciso após cada nova versão actualizar o código-fonte do servidor online através da sincronização com o servidor offline. É também necessário efectuar backups aos dados do servidor online para o servidor offline.
Manter estas 3 máquinas sincronizadas, manualmente, é uma tarefa árdua. Com o recurso ao Subversion, foi possível simplificar as actualizações e sincronização das alterações ao código-fonte entre as máquinas da rede local. Falta uma ferramenta capaz de sincronizar o servidor online com qualquer uma das máquinas da rede local, e que também facilite a sincronização do código-fonte que poderá vir a estar distribuído pelas diversas máquinas locais.
Essa ferramenta foi, à primeira vista, encontrada. Designa-se por Unison e é uma ferramenta de sincronização de ficheiros distribuídos por diversas máquinas que se encontram ligadas com recurso ao protocolo TCP/IP. Já existiam outras ferramentas idênticas, mas o Unison apresenta as seguintes vantagens face às ferramentas mais conhecidas:
- Corre em diversos sistemas operativos: Linux, Windows, OS X, ...
- Sincroniza ficheiros existentes em máquinas que correm diferentes sistemas operativos.
- Consegue lidar com actualizações a diversas réplicas numa estrutura de pastas distribuída.
- Não é um sistema de ficheiros distribuído, não requer por isso modificações a baixo-nível ao núcleo do sistema operativo nem precisa de previlégios de super-utilizador do sistema.
- É resiliente à falha: deixa cada réplica num estado estável bem definido, mesmo em casos de terminação abrupta ou erros de comunicação.
Irei por isso começar a utilizar o Unison para sincronizar alterações entre os diversos ambientes.
- Posted in : doCoding
- Author : José Carlos Monteiro
Comments»
no comments yet - be the first?