2009-08-20 5 views
9

На днях я искал Zend Server, и мне было интересно, почему я бы это использовал? Хорошо, они говорят, что все протестировано и критически важно, и Enterprise готов и т. Д. Но для меня это всего лишь отдел маркетинга.Zend Server experience

Есть ли кто-нибудь там, используя этот продукт, и если да, то можете поделиться своим опытом с ним, и, возможно, вы также можете уточнить причину того, почему вы выбираете этот продукт для своих приложений.

Вы нашли реальную пользу от использования сервера Zend?

ответ

6

Я использую платформу Zend (я знаю, что вы спрашивали о сервере Zend, я туда добираюсь) и очень увлекался инструментом отчетности об ошибках, который вы также получаете с Zend Server.

Всякий раз, когда возникает ошибка или возникает исключение, Zend Server хранит как можно больше информации о нем (например, какие параметры запроса использовались, где произошла ошибка, время, сообщение об ошибке, трассировка стека и т. Д.). Также вам сообщается о медленном выполнении сценария.

Я действительно предпочитаю получать такие сообщения об ошибках через клиентов, которые говорят что-то вроде: «Сайт не работает, пожалуйста, исправьте его».

При использовании Zend Server в сочетании с Zend Studio это довольно аккуратно, что Zend Debugger поставляется уже предустановленным (но вы также могли установить его сами).

Также он поставляется с php-java-bridge (ваши классы Java могут использоваться на PHP), но мне это не нужно.

Если у вас уже есть решение для создания отчетов об ошибках на основе php в вашем веб-приложении или нет для этого или для Java-моста, я бы сказал, что на самом деле это не имеет особого значения, если вы используете Zend Сервер над вашей собственной установкой apache (пока вы знаете, как правильно настроить его).

По крайней мере, это мое мнение/опыт.

Я использую Developer Edition Zend Platform, который является бесплатным. Если бы мне пришлось платить за Zend Platform/Server, я не думаю, что буду использовать его. Но это действительно зависит от проекта.

4

Zend Server - это намного больше, чем наличие проверенного и поддерживаемого стека. Андрэ затронул одну из функций на Zend Server - мониторинг. Мониторинг отслеживает выполнение вашего скрипта PHP для определенных условий и, если передается определенный порог, контекст этого запроса будет записан для вас, чтобы изучить его в более поздний момент времени. Когда я работаю на месте с клиентами, у которых проблемы с приложениями, первое, что я делаю, это установить Zend Server и включить мониторинг. В течение нескольких минут у меня обычно есть, по крайней мере, довольно хорошая теория относительно их проблемы.

В Zend Server 5, который был взят на гораздо более высокий уровень с введением функции отслеживания кода, которая выполняет проверку времени выполнения практически каждого индивидуального вызова функции/метода, выполненного в ходе запроса. Это своего рода комбинация отладки и профилирования, которая выполняется во время выполнения. Во многих случаях можно диагностировать проблему в производственной среде без реальной репликации проблемы.

Есть еще несколько функций, которые вы можете использовать. Очередь работы - большая для меня, которую я использую довольно широко.У меня есть пример того, как его использовать на Do you queue? Introduction to the Zend Server Job Queue

Есть также две различные функции кэширования: мост PHP-Java (на что Андре также ссылался) и Optimizer +, который является одним из самых быстрых ускорителей ускорения операций.

3

Конечно, «проверенный, сертифицированный» бит хорош в некоторых средах. В нашем случае требования аудита заключаются в том, что мы либо используем сертифицированный стек программного обеспечения, либо сами по себе, но должны показать, что мы делаем быстрые обновления для каждого небольшого компонента, который его загружает. Итак, для разумных целей мы исторически пошли со стандартными предложениями дистрибутивов Linux. Проблема заключается в том, что они, как правило, много лет отстают от кривой. Например, большинство дистрибутивов только недавно приняли PHP 5.3 после того, как застряли в 5.1 (!). Это просто неприемлемо, когда вы пытаетесь разработать современные приложения, которые используют современные методы кодирования, плюс вы отказываетесь от тонны с точки зрения производительности и надежности PHP.

Сказав это, функции довольно приятные. @Keven уже упомянул очередь на работу. Это потрясающе для нас, поскольку мы можем очень легко разгружать всевозможные задачи, которые выполняются асинхронно и поддерживают процесс основного запроса. Например, одно из наших приложений создает задачи в нашем трекере ошибок, когда происходят определенные типы событий. Так как это делается с помощью веб-службы, а трекер ошибок ужасно медленный, это может занять несколько секунд. Однако, вместо того, чтобы заставить пользователей нашего приложения ждать, мы просто ставим в очередь работу и позволяем ей работать в фоновом режиме. Аналогично, наш стандартный класс электронной почты использует очередь заданий, вместо того, чтобы ждать пользователя, пока наш код разговаривает с SMTP-сервером. И все это даже не касается полезности для таких вещей, как создание больших отчетов, проверка целостности базы данных, восстановление кэшей и т. Д. И т. Д.

Кэш страниц отлично подходит для тех случаев, когда вы можете просто кэшировать всю страницу и быть с этим. Мы используем это с нашими WSDL, так как у нас есть лучший контроль, чем собственные кеширующие элементы управления PHP. Аналогично, сервер загрузки отлично подходит для кэширования определенных типов контента, например изображений. И мы используем кеш данных как локальный сервер memcached, чтобы значительно ускорить все виды запросов, избегая делать запрос на медленный сервер базы данных, сидящий где-то еще в медленной сети.

И, конечно, как отмечает Андре, в нем есть очень хорошие функции для отладки, отслеживания и создания событий.

Есть также некоторые интересные функции для развертывания и отката, которые очень важны для критически важных для бизнеса приложений. Я собираюсь попробовать их когда-нибудь, но пока я все еще использую инструменты, которые я собрал перед использованием ZS.

Теперь вы можете получить большинство этих функций (в частности, все кеширующие биты), объединив множество других инструментов. Но тогда вам нужно исследовать и изучать все эти вещи, устанавливать их все вместе и работать вместе, а затем поддерживать их все, в том числе проводить надлежащее тестирование интеграции, когда что-то обновляется. Это лот работы и времени - я лично предпочитаю писать код.

Сказав это, есть недостатки. Во-первых, вещи иногда чувствуют ... полузапеченные и/или плохо продуманные. Например, API кэша данных возвращает boolean false, если вы пытаетесь извлечь элемент, который не существует. И он не имеет функции для проверки того, существует ли элемент без выбора. Угадайте, что это значит: вы не можете безопасно хранить логическое значение, потому что вы не можете безопасно его получить. Он включает плохо документированный уровень совместимости APC, но попытка использовать функцию существования из APC создает ошибку неопределенной функции.

В качестве другого примера мы используем Mac для наших станций разработки, но из-за очень ошибочной озабоченности по поводу совместимости с древним оборудованием, которое, как правило, управляют все эти профессиональные разработчики, которые бросают тысячи на серверное программное обеспечение PHP, Zend выбрал отправку версии Mac (только для разработки) только как 32-разрядный только. Поэтому мы вынуждены разрабатывать приложение в 32-битном режиме, которое выполняется везде в 64-битном режиме. Это вызвало немало ошибок и неудачных автоматических тестов в нашем приложении, что, скорее, убивает одну из основных целей ZS, которая является идентичным программным стеком в разработке, тестировании, промежуточном тестировании, QA и производственных средах. Я пытался поговорить с ними об этом, но они быстро начали игнорировать меня.

Еще одна большая проблема заключается в том, что очередь заданий может обрабатывать задания только через HTTP-запросы. API настроен так, чтобы разрешить другие методы (например, гораздо более разумный вызов командной строки), но HTTP-это все, что работает. Это заставляет вас связывать соединения веб-сервера с задачами, которые по дизайну, как правило, длительные и, следовательно, должны быть удалены из веб-контекста. И это заставляет вас прыгать через обручи, чтобы мир не мог запускать ваши задания, посетив URL-адрес в браузере. Это просто глупое решение.

Другими примерами являются плохое управление настраиваемыми событиями, отправленными через API в Zend Monitor, флэш-библиотеку php-cli для двоичного кода PHP, которая прерывается на Mac при запуске по линии shebang, полная (полная) нехватка здоровья и производительности отчетность в инструментах кеша (хотя они сказали, что это меняется в ZS 6) и неловко неполной документации. Я мог бы продолжить ...

Теперь эти недостатки, а также потраченное впустую время и ресурсы, которые приходят на поездку, очевидно, не перевешивают выгоды для нас, а за сумму денег, которую мы тратим , Я определенно ожидаю большего.

0

Code Tracing лучший инструмент, предоставляемый Zend Sever

  1. Анализ основных причин является Time-Sink для разработчиков
    Исправление проблемы легко, когда вы знаете, что вызывает его. Однако найти основную причину проблем часто сложно во время тестирования, и невероятно сложно, когда приложение работает на производстве. Попытка воспроизвести то же самое окружение, состояние приложения и нагрузку в лаборатории разработки является трудоемкой и подверженной ошибкам, и разработчикам отвлекает их самая важная задача - писать код. Zend Server 5 позволяет перенести анализ причин на новый уровень, показывая трассировку кода.
    Бортовой регистратор для вашего PHP-приложения Что такое трассировка кода?
    Подумайте о черном ящике полетов. Когда что-то пойдет не так с самолетом, вы, вероятно, не захотите «воспроизвести» проблему. Именно поэтому бортовой регистратор фиксирует полные данные, которые могут понадобиться аналитикам полета, чтобы понять, почему возникла проблема.

  2. Zend Server Code Tracing - это как регистратор полета для PHP.
    Вместо того, чтобы тратить время на настройку среды и воспроизведение всех шагов, которые привели к сбою, Zend Server фиксирует полное выполнение вашего приложения в режиме реального времени - на производстве или в тестовой лаборатории - так что вы можете быстро найти первопричину.

  3. Zend Server код Трассировка режет Анализ основных причин Время
    Зенд трассировка код сервера активируется автоматически при обнаружении проблемы, или вручную пользователем, например, во время проекта оптимизации. Данные, записанные с помощью трассировки кода сервера Zend включает:

    • вызов функций дереву
    • Аргументы
    • Возвращаемые значения
    • Продолжительность
    • использования памяти
    • строка кода
    • Имя файла

Трассировка, отображаемая на веб-консоли Zend Server, позволяет вам просматривать - как и DVD - историю выполнения вашего приложения и следовать по стопам одного проблемного запроса, чтобы быстро определить первопричину.

0

Я работаю над приложениями PHP, которые работают на больших серверах IBM (IBMi Series) со старым программным обеспечением, которое работает как 20, 30 лет с использованием COBOL. Таким образом, в основном Zend Server является единственной платформой PHP, о которой я знаю, что работает на IBMi или, по крайней мере, столь же надежной, как и она. Эти системы критически важны. В основном большинство страховых компаний, банков, акций и даже школьных округов работают на этих типах систем. Так как вы можете запускать что-то вроде Zend Server, вы можете делать такие вещи, как сборка REST API, который предоставляет современные античные системы и позволяет использовать сервис-ориентированную архитектуру. Это то, над чем я работал, а также управляемую событиями систему, которая использует PHP CLI и Zend Job Queue, которая передает данные третьим сторонам. В этом случае мы синхронизируем данные с нашего конца до конца поставщика.

Zend Server на IBMi создан с интерфейсом nginx для статических ресурсов (CSS, изображения и т. Д.) И использует процессы FastCGI для динамического PHP, поэтому это довольно мощная настройка. Это определенно открывает старые системы для модернизации.

0

Я нахожу, что использование Zend Server для смягчения управления версиями программного обеспечения PHP и всеми его расширениями на всех моих серверах является его самым большим преимуществом.

Кроме того, возможность определить источник проблемы вплоть до конкретной функции PHP с пользовательскими вводами и переменными окружения гораздо полезнее, чем троллинг через журналы ошибок PHP, особенно на сервере с высоким трафиком.

Если есть альтернатива с открытым исходным кодом, я хотел бы узнать об этом! Я не слишком доволен тем, что Zend прекратил бесплатную версию.