svn lamp

svn - organización de código php



lamp (1)

Puede centralizar su código en una carpeta común (cree un script que copie todo el código a los 8 servidores o use NFS ).

Este código centralizado puede estar en uno o más repositorios en su SVN. Así que cuando presionas, solo presionas lo que necesitas empujar.

Por ejemplo, puede crear 1 repositorio para sus propias bibliotecas de PHP (clase de base de datos, xml, imap, etc.). En una estructura simple y cuando llamas a estos archivos simplemente haces:

require(''/web/lib/DatabaseMySQL.class.php'');

De esta manera, usted conoce todos los archivos requeridos en el mismo lugar y es muy fácil de mantener. Especialmente si su código requiere archivos requeridos que requieren archivos.

Puede crear tantos repositorios como desee y repetir esto si no desea mezclar archivos, por ejemplo, un tercero (Smarty, phpmailer) con el código que crea.

La otra cosa es, no reinventar la rueda. Hay un montón de buenos códigos que probablemente hagan lo que ya necesitan hacer. Como enviar correos electrónicos (phpmailer o cualquier otro) o sistema de plantillas (Smarty o cualquier otro). De esta manera, el mismo tiempo de desarrollo y cuando una actualización está disponible, simplemente descarga, copia (confirma si la tienes en un repositorio) y presiona.

Script VS NFS .

Crear un script para insertar todo su código en 8 servidores web es fácil de hacer. El aspecto negativo de esto es que debe asegurarse de que todas las carpetas y todos los archivos que tiene en cada servidor sean idénticos para evitar errores. Además, si hay un retraso en su red o la caída de la conexión durante la inserción, algunos servidores no tendrán el mismo código. De nuevo, más errores. Esto es un poco más rápido de ejecutar en comparación con la solución NFS .

Cree una solución NFS el problema anterior ya que solo usa 1 ubicación, pero si esa ubicación elimina todos los servidores no se ejecutarán correctamente. Por lo tanto, cuando presiona el código, empuja solo a 1 lugar y todos los demás servidores tienen automáticamente el nuevo código. Algo que también debe saber, esto será un poco más lento que si el código está directamente en el disco duro.

Aquí hay un ejemplo de script que puede usar:

Puede crear un script .sh que copiará el código de su repositorio (por ejemplo, el código que sacó del repositorio) a todos los servidores de esta manera:

// file: pushcode.sh #!/bin/bash /usr/bin/rsync -avz --exclude=''.svn'' -e ssh /path/to/code/checkedout/ user@server1:/path/to/code /usr/bin/rsync -avz --exclude=''.svn'' -e ssh /path/to/code/checkedout/ user@server2:/path/to/code

Haga este script ejecutable y ejecútelo.

./pushcode.sh

Para asegurarse de que el código se copie correctamente sin solicitar la contraseña cada vez, tendrá que omitir el inicio de sesión ssh .

Aquí hay una buena que podría gustarle: https://serverfault.com/questions/195035/linux-nfs-performance-vs-other-fss

Acabamos de obtener nuevos servidores para nuestro nuevo sistema y quiero saber qué debo hacer para que mi nuevo código sea lo más eficiente posible y cómo organizarlo.

Quiero una buena solución para no tener que reorganizarla dentro de 1 año (por ejemplo) y quiero las mejores prácticas y técnicas para asegurarme de que mi código sobrevivirá el tiempo suficiente para evitar que se vuelva a rediseñar más tarde. ningún marco de uso aquí

Aquí está mi nuevo env:

  • LAMP de 8 servidores web (apache2, php 5.3.5, cent os 5) - (xeon E5645, ram 32g, raid 10 1T 15k) - 1 equilibrador de carga para gestionarlos
  • 12 servidores mysql 5.5 de base de datos (igual que el anterior) con replicación (4 maestros, 8 esclavos)
  • 1 servidor svn (servidor antiguo que usamos)

Mi idea fue duplicarlos (los servidores web) y enviar el código de la SVN a todos los servidores. ¿Es esto bueno?