Una guía paso a paso para implementar y gestionar aplicaciones PHP en acoplable LAMP, LAPP, Y LAOP Pilas
Para ejecutar y administrar las 9 plantillas de aplicaciones PHP (LAMP, LAPP, y LAOP Pilas) en este proyecto en 13 diferentes nubes y las plataformas de virtualización (incluyendo vSphere, OpenStack, AWS, Rackspace, Microsoft Azure, Google Compute Engine, digitalocean, IBM SoftLayer, etc.), asegúrese de que sea:
Personalizar y ejecutar cualquiera de las plantillas publicadas acoplable PHP aplicación (incluyendo la lámpara, LAPP, y LAOP Pilas) y muchos otros modelos (con inclusión de varios niveles pilas de aplicaciones Java, Mongo conjunto de réplicas en Racimo, Drupal, Wordpress, MEAN.JS, etc. )
Fondo
Contenerización de aplicaciones de la empresa sigue siendo un desafío sobre todo porque los marcos de composición de aplicaciones existentes no abordan dependencias complejas, integraciones externas o auto-escala flujos de trabajo de post-prestación. Por otra parte, el diseño efímero de contenedores significa que los desarrolladores tenían que girar nuevos contenedores y volver a crear las complejas dependencias y integraciones externas con cada actualización de versión.
DCHQ, disponible en versiones alojados y en las instalaciones, se dirige a todos estos retos y simplifica la contenerización de las aplicaciones empresariales a través de un marco de composición de aplicaciones avanzadas que se extiende acoplable Componer con asociaciones de variables de entorno-imagen Cruz, escritura del golpe plug-ins extensibles que pueden ser invocado durante la petición o posterior a la disposición, y la agrupación de aplicaciones de alta disponibilidad a través de múltiples hosts o regiones con soporte para escalado automático.
Una vez que se aprovisiona una aplicación, un usuario puede monitorizar la CPU, memoria, I / O y de los contenedores de funcionamiento, recibir notificaciones y alertas, y obtener acceso a las copias de seguridad de aplicaciones, la escala automática de entrada / salida de flujos de trabajo, y el plug-in de los flujos de trabajo de ejecución de actualizar contenedores en funcionamiento. Por otra parte, automatizada "App Run" permite a los usuarios integrar sus flujos de trabajo de integración continua para programar la distribución de contenedores para sus formaciones de la noche o cuando se produzcan cambios se fusionan en GitHub.
En los blogs anteriores, hemos demostrado la automatización de implementación de un extremo a extremo de las diversas aplicaciones de Java (como Pizza Shop y tienda de la película aplicaciones) en pilas de aplicaciones basadas en acoplable de varios niveles a través de 13 diferentes nubes y las plataformas de virtualización. Para la lista completa de estos blogs, se puede visitar esta página: http://dchq.co/docker-java-applications.html
Sin embargo muchos usuarios aún estaban confundidos sobre algunos de los aspectos fundamentales de modelado de aplicaciones. Estas preguntas incluyen:
Para abordar estas cuestiones, hemos creado una muestra de aplicaciones PHP "nombres de directorio" en este proyecto GitHub que se puede implementar en estas pilas de aplicación:
En este proyecto, vamos a proporcionar una guía paso a paso para configurar, desplegar y gestionar esta aplicación PHP usando diferentes pilas de aplicaciones y en diferentes infraestructuras de nube / virtual.
Vamos a cubrir:
Configurando el config.php La aplicación PHP
Puede clonar esta muestra de aplicaciones PHP "nombres de directorio" de GitHub.
Este es el paso más importante en su aplicación PHP "Dockerizing". Con el fin de aprovechar las variables de entorno que puede pasar cuando se ejecuta contenedores, tendrá que asegurarse de que su aplicación se configura de una manera que le permitirá cambiar ciertas propiedades durante la petición - como:
Para lograr esto, primero tendrá que configurar config.php .
Usted se dará cuenta de que las propiedades de fuente de datos específicos hacen referencia a las siguientes variables de entorno que se transmitirán durante la petición:
La inicialización de la base de datos para la aplicación PHP
Normalmente, recomendamos inicializar el esquema de base de datos como parte de la implementación de aplicaciones PHP en sí. De esta manera, usted no tiene que preocuparse por el mantenimiento de los archivos de SQL separados que deben ser ejecutadas en la base de datos por separado.
Sin embargo si ya tiene esos archivos SQL y todavía ellos prefieren que se ejecuta en la base de datos por separado - a continuación, DCHQ puede ayudar a automatizar este proceso a través de su marco plug-in. Se puede hacer referencia a esta sección para obtener más información.
Con el fin de incluir los scripts SQL para crear las tablas de base de datos en la aplicación PHP, tendrá que configurar Persistence.php archivo para poblar la base de datos utilizando diferentes sentencias SQL (dependiendo de la base de datos utilizada). La función populateDatabase () funciona con MySQL, PostgreSQL y Oracle.
La construcción de la ventana acoplable imagen utilizando PHP: 5,6-Apache
Una vez configurada la aplicación PHP, sólo hay que crear una imagen acoplable con su código PHP.
Después de registrarse en DCHQ (ya sea el DCHQ.io instalado o la versión on-premise), un usuario puede navegar a la creación de imágenes y haga clic en el + botón para crear un nuevo Dockerfile (Git / GitHub / BitBucket) de creación de imágenes.
Proporcionar los valores requeridos de la siguiente manera:
Una vez que se hayan completado los campos obligatorios, un usuario puede hacer clic en Guardar .
Un usuario puede hacer clic en el botón Reproducir para construir la imagen acoplable a la carta.
Aquí está la Dockerfile real que se utiliza para construir esta imagen acoplable de este repositorio GitHub:
La construcción de las plantillas de aplicación YAML-base que pueden volver a utilizarse en cualquier sistema Linux se ejecuta en cualquier lugar
Después de registrarse en DCHQ (ya sea el DCHQ.io instalado o la versión on-premise), un usuario puede navegar a App & Machine y luego haga clic en el + botón para crear un nuevo acoplable Componer plantilla.
Hemos creado 9 plantillas de aplicaciones que utilizan las imágenes oficiales de estibador de concentradores para la misma aplicación PHP "nombres de directorio" - pero por diferentes servidores de aplicaciones y bases de datos.
Las plantillas incluyen ejemplos de las siguientes pilas de aplicaciones (por la misma aplicación PHP):
Asociaciones de variables medioambientales en todas las Imágenes
Además, un usuario puede crear imagen-cruz asociaciones de variables de entorno, haciendo referencia a la variable de entorno de otra imagen. En este caso, hemos hecho varias fijaciones - incluyendo DB_HOST = {{MySQL | container_private_ip}} - en la que el IP contenedor de base de datos se ha resuelto de forma dinámica durante la petición y se utiliza para garantizar que el servidor Apache-PHP puede establecer una conexión con el base de datos.
Aquí está una lista de valores de variables de entorno soportados:
LAMPARA Pila (Linux-Apache-MySQL-PHP)LAPP Pila (Linux-Apache-PHP-PostgreSQL)LAOP Pila (Linux-Apache-PHP-Oracle)LAMPARA Pila (3-Tier Nginx-PHP-MySQL)LAPP Pila (3-Tier Nginx-PHP-PostgreSQL)LAOP Pila (3-Tier Nginx-PHP-Oracle-XE)LAMPARA Pila (3-Tier ApacheHTTP-PHP-MySQL)LAPP Pila (3-Tier ApacheHTTP-PHP-PostgreSQL)LAOP Pila (3-Tier ApacheHTTP-PHP-Oracle-XE)La invocación de un plug-in para inicializar la base de datos por separado en un estibador LAMPARA Pila
Recomendamos inicializar el esquema de base de datos como parte de la implementación de aplicaciones PHP en sí. Sin embargo, si aún prefiere ejecutar los archivos SQL en la base de datos por separado - a continuación, DCHQ puede ayudar a automatizar este proceso a través de su marco plug-in.
En este ejemplo, MySQL en esta pila LAMP está invocando un plug-in script bash para ejecutar el archivo populate.sql. El plug-in de escritura del golpe fue creado por la navegación hacia Plug-ins y se ve algo como esto:
En este plug-in de escritura del golpe, $ MYSQL_USER , $ MYSQL_ROOT_PASSWORD , y $ MYSQL_DATABASE son variables de entorno que se pasan durante la petición.
$ file_url es un argumento overrideable que puede definir al crear el plug-in o al solicitar la aplicación. Esta será la dirección del archivo populate.sql.
Aprovisionamiento y auto-escala la infraestructura subyacente En Cualquier Nube
Una vez que se guarda una aplicación, un usuario puede registrar un proveedor de nube para automatizar el aprovisionamiento y la auto-escala de los racimos en 12 diferentes nube de puntos finales, incluyendo VMware vSphere, OpenStack, CloudStack, Servicios Web de Amazon, Rackspace, Microsoft Azure, digitalocean, IBM SoftLayer, Google Compute Engine, y muchos otros.
En primer lugar, un usuario puede registrar un proveedor de nube de Rackspace (por ejemplo) navegando a proveedores de la nube y luego hacer clic en el + botón para seleccionar Rackspace . La clave de API de Rackspace debe ser proporcionada - que puede ser recuperada de la sección Configuración de la cuenta del Panel de control Rackspace Cloud.
Un usuario puede crear un clúster con una política de auto-escala para girar automáticamente los nuevos servidores de la nube. Esto puede hacerse navegando a Clusters página y luego hacer clic en el + botón. Puede seleccionar una política de colocación basadas en la capacidad y luego Tejer como la capa de red con el fin de facilitar la comunicación-contenedor cruz protegido por contraseña segura a través de múltiples hosts dentro de un grupo. La política de auto-escala , por ejemplo, puede establecer el número máximo de VM (o Servidores Cloud) a 10.
Un usuario puede ahora suministrar un número de Servidores Cloud en el clúster recién creado ya sea a través del flujo de trabajo basado en la interfaz de usuario o mediante la definición de una plantilla de máquina de composición basada en YAML simple que puede ser solicitada a la Biblioteca de autoservicio.
Flujo de trabajo basado en la interfaz de usuario - Un usuario puede solicitar servidores de la nube de Rackspace navegando a Máquinas y luego hacer clic en el + botón para seleccionar Rackspace . Una vez seleccionado el proveedor de la nube, un usuario puede seleccionar la región, el tamaño y la imagen sea necesario. Los puertos se abren de forma predeterminada en los servidores de la nube de Rackspace para dar cabida a algunos de los requisitos de puerto (por ejemplo, 32000-59000 para Docker, 6783 para la armadura, y 5672 para RabbitMQ). Un racimo Luego se activa y el número de Servidores Cloud se puede especificar.
Plantilla Componer máquina basada en YAML - Un primer usuario puede crear una plantilla de máquina de componer para Rackspace navegando a Máquinas y luego seleccionar la máquina de composición .
Aquí está la plantilla para la solicitud de un servidor de la nube de 4 GB.
Los parámetros admitidos para la plantilla de la máquina de composición se resumen a continuación:
Una vez que se guarda la plantilla de la máquina de composición, un usuario puede solicitar esta máquina desde el autoservicio Biblioteca . Un usuario puede hacer clic en Personalizar y, a continuación, seleccione el proveedor de la nube y el clúster de usar para el aprovisionamiento de estos servidores de Rackspace Cloud.
Distribución de la multi-nivel de aplicación PHP en el clúster Rackspace
Una vez que los Servidores Cloud se aprovisionan, un usuario puede desplegar un multi-capas, las aplicaciones basadas en PHP estibador en los nuevos servidores de la nube. Esto puede hacerse navegando a la Biblioteca de autoservicio y luego hacer clic en Personalizar para solicitar una aplicación multi-nivel.
Un usuario puede seleccionar una Etiqueta para el Medio Ambiente (como DEV o QE) y el Cluster Rackspace creado antes de hacer clic en Ejecutar.
En el acceso a la Terminal-Browser para los contenedores para correr
Un icono de símbolo del sistema debe estar disponible junto a los nombres de los recipientes en la página de aplicaciones en vivo. Esto permite a los usuarios introducir el recipiente usando un protocolo de comunicación segura a través de la cola de mensajes del agente. Una lista blanca de comandos se puede definir por el inquilino de administración para garantizar que los usuarios no hacen ningún cambio perjudicial en los contenedores de funcionamiento.
Para el despliegue de PHP, por ejemplo, se utilizó el símbolo del sistema para asegurarse de que el código PHP es de hecho bajo el var / www / html / /.
El monitoreo de la CPU, memoria e I O Utilización / de los contenedores Operando
Una vez que la aplicación está en funcionamiento, nuestros desarrolladores monitorear la CPU, memoria, I / O y de los contenedores de funcionamiento para recibir alertas cuando estas métricas superan un umbral predefinido. Esto es especialmente útil cuando nuestros desarrolladores están realizando pruebas funcionales y de carga.
Un usuario puede realizar el seguimiento del análisis histórico y correlacionar las cuestiones a las actualizaciones de contenedores o construir implementaciones. Esto se puede hacer haciendo clic en el Acciones menú de la aplicación en ejecución y después de Monitoreo . Un intervalo de fechas personalizado se puede seleccionar para ver la CPU, memoria y E / S históricamente.
Permite la integración continua mediante la aplicación automatizada de Ejecución
Para los desarrolladores que deseen seguir el modelo de contenedores "inmutables" mediante la reconstrucción de imágenes acoplables que contienen el código de la aplicación y que hacen girar nuevos contenedores con cada actualización de la aplicación, DCHQ proporciona una compilación de imágenes automatizado y características aplicación ejecutar procedimientos automáticos que permiten a los desarrolladores crear automáticamente imágenes acoplables de Dockerfiles o proyectos de GitHub privado que contiene Dockerfiles, y luego girar pilas total de la lámpara utilizando las últimas imágenes de la programación de la implementación de aplicaciones y la personalización de la aplicación de arrendamiento.
Como se explica en la creación de imágenes acoplable sección , un usuario puede programar dos paralelas construye la imagen de PHP (que se basa en php: 5,6-Apache ).
Un usuario puede desplazarse a Imagen construye y luego haga clic en el + botón para crear una nueva política de "Automated App Ejecutar". Un usuario puede completar los campos obligatorios - como:
Escalar la solicitud de PHP
Si la aplicación que se ejecuta queda limitada de recursos, un usuario puede escalar a cabo la aplicación para satisfacer el aumento de la carga. Por otra parte, un usuario puede programar la escala a cabo durante el horario laboral y la escala en los fines de semana, por ejemplo.
Para escalar el conjunto de recipientes de PHP desde 1 hasta 2, un usuario puede hacer clic en el Acciones menú de la aplicación en ejecución y seleccione Escala de salida . Un usuario puede especificar el nuevo tamaño para el clúster y luego haga clic en Ejecutar ahora .
A continuación, utiliza el BASH plug-in para actualizar el archivo httpd.conf de Apache HTTP Server para que esté al tanto del nuevo servidor de aplicaciones añadido. Los plug-ins de escritura del golpe también se pueden programar para dar cabida a los casos de uso como la limpieza de registros o actualizar las configuraciones en las frecuencias definidas.
Para ejecutar un plug-in en un contenedor de funcionamiento, un usuario puede hacer clic en el Acciones menú de la aplicación que se ejecuta y luego seleccione Plug-ins . Un usuario puede seleccionar el equilibrador de carga de contenedores (Apache HTTP Server), buscar el plug-in que necesita ser ejecutado, permitir el reinicio contenedor utilizando el botón de activación. El argumento por defecto para este plug-in se resolverá de forma dinámica todo el recipiente de IP de los contenedores de PHP en ejecución y añadirlos como parte del archivo httpd.conf.
Una línea de tiempo de la aplicación está disponible para realizar un seguimiento de todos los cambios realizados a la solicitud de auditoría y de diagnóstico. Esto se puede acceder desde el menú extensible en la parte inferior de la página de una aplicación en ejecución.
Las alertas y notificaciones están disponibles para cuando los contenedores o sistemas principales son, o cuando la CPU y memoria La utilización de cualquiera de los anfitriones o contenedores supera un umbral definido.
Conclusión
Contenerización de aplicaciones PHP de la empresa sigue siendo un desafío sobre todo porque los marcos de composición de aplicaciones existentes no abordan dependencias complejas, integraciones externas o auto-escala flujos de trabajo de post-prestación.
DCHQ, disponible en versiones alojados y en las instalaciones, se dirige a todos estos retos y simplifica la contenerización de las aplicaciones empresariales de PHP a través de un marco de composición solicitud previa que facilita enlaces de variables de entorno-imagen Cruz, extensibles escritura del golpe plug-ins que se pueden invocar en solicitar tiempo o después de la prestación, y la agrupación de aplicaciones de alta disponibilidad a través de múltiples hosts o regiones con soporte para escalado automático.
para obtener acceso a las plantillas de aplicaciones PHP de varios niveles fuera de la caja junto con la funcionalidad de gestión del ciclo de vida de aplicaciones como monitoreo, actualizaciones de contenedores, la escala de entrada / salida y la entrega continua.
|
Tuesday, 19 April 2016
A Step By Step Guide For Deploying & Managing A PHP Application On Docker LAMP, LAPP, And LAOP Stacks
Labels:
Arabic,
Persian,
Portuguese,
Spanish
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment