¿Cuáles son las mejores prácticas para implementar una aplicación Perl? Suponga que se está desplegando en una caja pequeña con poca instalación del módulo CPAN. ¿Cuáles son las construcciones ideales, los métodos de implementación? Module :: Build, ExtUtils :: MakeMaker, otro? Estoy buscando algunas ideas de mejores prácticas de aquellos que han hecho esto repetidamente para aplicaciones a gran escala.Implementación de la aplicación Perl
La aplicación se está implementando en un servidor. No es CPAN o un script. En realidad es una aplicación web de PSGI. Es decir, una tonelada de paquetes de Perl.
Actualmente tengo un script de despliegue que usa Net :: SSH :: Expect para SSH en nuevos servidores, instalo algunas herramientas y configuro el servidor, luego selecciono la rama de aplicación deseada desde el control de origen. Esto parece correcto, pero ¿es esta la mejor práctica?
El siguiente paso es crear la aplicación. ¿Cuáles son las mejores prácticas para rastrear y administrar dependencias, instalar esas dependencias de CPAN y garantizar que la aplicación esté lista para ejecutarse?
Gracias
+1 en "tenga mucho cuidado con XS perl libs" – tangent
Creo que tal vez nos estamos refiriendo a dos cosas diferentes. Estoy hablando de tirar de una rama o 'versión' específica del código de la aplicación desde un sistema de control de fuente central, como GitHub, por ejemplo. Parece que te estás refiriendo a las dependencias mismas, es decir, paquetes CPAN. Estoy de acuerdo en que se deben tomar muy buenas precauciones para garantizar que las versiones del módulo CPAN sean consistentes en todos los nodos, incluidos los entornos de desarrollo/estadificación. Sin embargo, extraer una rama de origen específica a cada nodo durante el despliegue parece ser la forma de garantizar la coherencia del software de aplicación en sí. – MadHacker
Una pregunta más. En su experiencia con el uso de Carton, ¿qué tan bueno ha sido en el manejo de las dependencias de las dependencias? Es decir, si mi Makefile.PL solo contiene los paquetes, mi aplicación explícitamente 'requiere' o 'usa' qué tan bueno es Carton para resolver las dependencias de esos módulos? – MadHacker