2009-08-20 9 views
9

El otro día estaba buscando en Zend Server y me preguntaba por qué iba a usar esto? De acuerdo, dicen que todo está probado y es crítico para la misión y listo para la empresa, etc. Pero para mí eso es solo el departamento de marketing hablando.Zend Server experiencias

¿Alguien está usando este producto y, de ser así, puede compartir sus experiencias con él y quizás también podría explicar en detalle por qué elige este producto para su (s) aplicación (es)?

¿Encontró algún beneficio real al usar el servidor Zend?

Respuesta

6

He estado usando Zend Platform (sé que estabas preguntando acerca de Zend Server, lo estoy logrando) y he estado muy interesado en la herramienta de informe de errores que también se obtiene con Zend Server.

Cada vez que se produce un error o una excepción, Zend Server almacena tanta información como puede (como por ejemplo qué parámetros de solicitud se usaron, dónde ocurrió el error, hora, mensaje de error, seguimiento de pila, etc.) También se le informa sobre la ejecución lenta del script.

Realmente prefiero obtener ese tipo de mensajes de error sobre los clientes diciendo algo como: "El sitio no funciona. Corríjalo".

Al usar Zend Server en conjunto con Zend Studio es bastante claro que Zend Debugger ya viene preinstalado (pero también podría haberlo instalado).

También viene con un php-java-bridge (sus clases de Java se pueden utilizar en PHP) pero no lo necesitaba.

Si tiene una solución de informes de error basado en PHP en su aplicación web ya o tienen ningún uso para esto ni para el puente de Java diría que en realidad no hacen una diferencia si está utilizando Zend Servidor sobre su propia instalación de Apache (siempre que sepa cómo configurarlo correctamente).

Al menos esa es mi opinión/experiencia.

He estado usando Developer Edition de Zend Platform, que es gratis. Si tuviera que pagar por Zend Platform/Server, no creo que lo esté usando. Pero eso realmente depende del proyecto.

4

Zend Server es mucho más que tener una pila probada y compatible. Andre se refirió a una de las características en Zend Server, que es el monitoreo. El monitoreo vigila la ejecución de su script PHP para ciertas condiciones y si se pasa un cierto umbral, el contexto de esa solicitud se grabará para que lo examine en un momento posterior. Cuando trabajo en el sitio con clientes que tienen problemas de aplicación, lo primero que hago es instalar Zend Server y activar el monitoreo. En unos pocos minutos, suelo tener al menos una teoría bastante buena sobre cuál es su problema.

En Zend Server 5 fue llevado a un nivel mucho más alto con la introducción de la función de seguimiento de código que hace la instrumentación en tiempo de ejecución de casi cada función individual/llamada de método realizada en el transcurso de una solicitud. Es como una combinación de depuración y creación de perfiles que se realiza durante el tiempo de ejecución. En muchos casos, es posible diagnosticar un problema en un entorno de producción sin realmente replicar el problema.

Hay muchas otras características que puede usar también. La cola de trabajos es muy importante para mí, y la utilizo bastante extensamente.Tengo un ejemplo de cómo usarlo en Do you queue? Introduction to the Zend Server Job Queue

También hay dos características de almacenamiento en caché diferentes, el puente PHP-Java (al que Andre también hizo alusión) y Optimizer + que es uno de los aceleradores de código de operación más rápidos disponibles.

3

Ciertamente, el bit "probado y certificado" es agradable en algunos entornos. En nuestro caso, los requisitos de auditoría son que o bien utilizamos una pila de software certificado, o vamos por nuestra cuenta, pero tenemos que mostrar que estamos haciendo actualizaciones rápidas para cada pequeño componente que se alimenta de ella. Por lo tanto, para fines de cordura, históricamente hemos ido con las ofertas estándar de las distribuciones de Linux. El problema con esto es que tienden a estar años atrás de la curva. Por ejemplo, la mayoría de las distribuciones han adoptado recientemente PHP 5.3 después de haber quedado con 5.1 (!). Eso no es aceptable cuando estás tratando de desarrollar aplicaciones modernas que usan técnicas modernas de codificación, además de que estás renunciando a una tonelada en términos de rendimiento y confiabilidad de PHP.

Habiendo dicho eso, las características son bastante agradables también. @ Keven ya mencionó la cola de trabajos. Eso es increíble para nosotros, ya que podemos descargar fácilmente todo tipo de tareas que se ejecutan de forma asíncrona y mantienen el proceso de solicitud principal en vuelo. Como ejemplo, una de nuestras aplicaciones crea tareas en nuestro rastreador de errores cada vez que ocurren ciertos tipos de eventos. Como esto se realiza mediante un servicio web, y el rastreador de errores es tremendamente lento, esto puede llevar varios segundos. Sin embargo, en lugar de hacer que los usuarios de nuestra aplicación esperen, simplemente ponemos en cola un trabajo y lo dejamos en segundo plano. Del mismo modo, nuestra clase de correo electrónico estándar utiliza la cola de trabajos en lugar de hacer que el usuario espere mientras nuestro código habla con un servidor SMTP. Y todo eso ni siquiera toca la utilidad para cosas como generar informes grandes, ejecutar comprobaciones de integridad de base de datos, reconstruir cachés, etc., etc.

El caché de página es ideal para aquellos casos en los que simplemente puede almacenar en caché toda una página y hecho con eso Usamos esto con nuestros WSDL, ya que tenemos un mejor control que los propios controles de caché de PHP. Del mismo modo, el servidor de descarga es maravilloso para almacenar en caché ciertos tipos de contenido, como imágenes. Y usamos la memoria caché de datos como un servidor de memcached local para acelerar en gran medida todo tipo de solicitudes evitando hacer una consulta a un servidor lento de base de datos sentado en otro lugar de la red lenta.

Y, por supuesto, como menciona @ André, hay algunas funciones de depuración, seguimiento e informe de eventos muy agradables.

También hay algunas características interesantes para realizar implementaciones y reversiones, que son muy importantes en las aplicaciones críticas para la empresa. Tengo la intención de probar esto algún día, pero por ahora, todavía estoy usando las herramientas que preparé antes de usar ZS.

Ahora, puede obtener la mayoría de estas características (particularmente, todos los bits de almacenamiento en caché) combinando una variedad de otras herramientas. Pero debe investigar y aprender todas esas cosas, instalarlas y trabajar juntas, y luego mantenerlas todas, incluida la realización de pruebas de integración adecuadas cuando se actualice algo. Eso es lote de trabajo y tiempo - tiempo que prefiero gastar escribiendo código.

Habiendo dicho todo eso, hay desventajas. Por un lado, las cosas a veces se sienten ... a medio cocinar y/o mal concebidas. Por ejemplo, la API de caché de datos devuelve booleano falso si intenta buscar un elemento que no existe. Y no tiene ninguna función para verificar si un artículo existe sin recuperarlo. Adivina qué significa esto: no puedes almacenar con seguridad un valor booleano porque no puedes recuperarlo de manera segura. Incluye una capa de compatibilidad de APC pobremente documentada, pero tratar de usar la función de existencia de APC produce un error de función no definida.

Como otro ejemplo, podemos utilizar Macs para nuestras estaciones de desarrollo, pero debido a la preocupación en gran medida equivocada sobre la compatibilidad con el hardware antiguo, que tiende a ser ejecutado por todos los desarrolladores profesionales por ahí que abandonan miles de software de servidor PHP, Zend ha elegido para enviar la versión para Mac (que es sólo para el desarrollo) como de 32 bits solamente . Así que estamos obligados a desarrollar una aplicación en 32 bits que se ejecuta en cualquier otro lugar en 64 bits. Esto hizo que un buen número de errores y no pasaron las pruebas automatizadas en nuestra aplicación, que en lugar mata a uno de los propósitos principales de ZS, que es una pila de software idénticos a través de entornos de desarrollo, prueba, puesta en escena, control de calidad y producción. Traté de convencerlos de cambiar esto, pero rápidamente comenzaron a ignorarme.

Otro grande es que la cola de trabajos sólo puede procesar los trabajos a través de peticiones HTTP. La API está configurada para permitir otros métodos (como la llamada de línea de comando mucho más sensible), pero HTTP es todo lo que funciona. Esto lo obliga a vincular las conexiones del servidor web con tareas que, por diseño, tienden a ser de larga ejecución y, por lo tanto, deben eliminarse del contexto web. Y te obliga a saltar por los aro para evitar que el mundo pueda desencadenar tus trabajos visitando una URL en un navegador. Es solo una decisión estúpida.

Otros ejemplos son el mal manejo de eventos personalizados enviados mediante API a Zend Monitor, el envoltorio php-cli para el binario PHP que se rompe en la Mac cuando se desencadena por shebang line, la completa (absoluta) falta de salud y rendimiento informar en las herramientas de caché (aunque dijeron que esto está cambiando en ZS 6), y la documentación embarazosamente incompleta. Podría continuar ....

Ahora, esas desventajas, y el tiempo perdido y los recursos que vienen para el viaje, obviamente no han superado los beneficios para nosotros, sino por la cantidad de dinero que estamos gastando , Definitivamente espero más.

0

Código de Rastreo es la mejor herramienta proporcionada por Zend Sever

  1. del análisis de causa es un Time-fregadero para desarrolladores
    La fijación de un problema es fácil cuando se sabe cuál es su causa. Sin embargo, encontrar la causa raíz de los problemas a menudo es desafiante durante las pruebas, e increíblemente difícil cuando la aplicación se está ejecutando en producción. Intentar reproducir exactamente el mismo entorno, el estado de la aplicación y la carga en el laboratorio de desarrollo consume mucho tiempo y es propenso a errores, y aleja a los desarrolladores de su tarea más importante: escribir código. Zend Server 5 lleva el análisis de la causa raíz a un nivel completamente nuevo al mostrar el seguimiento de códigos.
    Un registrador de vuelo para su aplicación PHP Lo que está trazando código?
    Piense en una grabadora de vuelo de caja negra. Cuando algo va mal con un avión, probablemente no querrás "reproducir" el problema. Esta es la razón por la cual el registrador de vuelo captura la información completa que los analistas de vuelo pueden necesitar para entender por qué ocurrió el problema.

  2. Código Zend Server seguimiento es como un registrador de vuelo para PHP.
    En lugar de gastar tiempo en tratar de configurar el entorno y reproducir todos los pasos que condujeron al fracaso, Zend Server captura la plena ejecución de la aplicación en tiempo real - en la producción o en el laboratorio de pruebas - para que pueda encuentre rápidamente la causa raíz

  3. Zend Servidor Código Tracing reduce el tiempo de análisis de causa
    Zend código de servidor de rastreo se activa automáticamente, cuando se detecta un problema, o manualmente por el usuario, por ejemplo, durante un proyecto de optimización. datos registrados por Zend código de servidor de rastreo incluye:

    • Función llama árbol
    • Argumentos
    • valores de retorno
    • Duración
    • Uso de memoria
    • línea de código
    • Nombre de archivo

El seguimiento que se muestra en la consola web del servidor Zend le permite ver, al igual que un DVD, el historial de ejecución de su aplicación y seguir los pasos de una única solicitud problemática para identificar rápidamente la causa raíz.

0

Trabajo en aplicaciones PHP que se ejecutan en servidores grandes de IBM (IBMi Series) con software antiguo que se ha estado ejecutando durante 20 o 30 años utilizando COBOL. Así que, básicamente, Zend Server es la única plataforma PHP que conozco que funciona en IBMi o al menos tan sólida como es. Esos sistemas son de misión crítica. Básicamente, la mayoría de las compañías de seguros, bancos, acciones, incluso distritos escolares funcionan con este tipo de sistemas. Como puede ejecutar algo como Zend Server, puede hacer cosas como construir una REST API que expone esos sistemas antiguos de una manera moderna y permite la Arquitectura Orientada a Servicios. Eso es en lo que he estado trabajando y también un sistema impulsado por eventos que utiliza PHP CLI y Zend Job Queue que envía datos a terceros. En este caso, sincronizamos datos desde nuestro extremo hasta el final del proveedor.

Zend Server en IBMi está configurado con un front-end nginx para recursos estáticos (CSS, imágenes, etc.) y utiliza procesos FastCGI para PHP dinámico, por lo que es una configuración bastante potente. Definitivamente abre viejos sistemas para la modernización.

0

Considero que el uso de Zend Server para mitigar la administración de las versiones de software de PHP y todas sus diversas extensiones en todos mis servidores es su mayor ventaja.

Además, ser capaz de detectar el origen de un problema hasta la función específica de PHP con las variables de entorno y entrada del usuario es mucho más útil que consultar registros de errores de PHP, especialmente en un servidor de alto tráfico.

Si hay una alternativa de código abierto para eso, ¡me encantaría saberlo! No estoy muy feliz de que Zend haya suspendido la versión gratuita.

Cuestiones relacionadas