代码之家  ›  专栏  ›  技术社区  ›  Luke

Zend服务器体验

  •  9
  • Luke  · 技术社区  · 16 年前

    前几天我在调查 Zend Server 我想知道为什么我会用这个?好的,他们说这一切都经过测试,任务关键,企业准备就绪等等。但对我来说,这只是营销部门在说的。

    是否有人在使用此产品?如果有,您可以分享您使用此产品的经验,也许您还可以详细说明您选择此产品用于应用程序的原因。

    6 回复  |  直到 15 年前
        1
  •  6
  •   André Hoffmann    16 年前

    我一直在使用Zend平台(我知道你在问Zend Server,我马上就到了),并且非常热衷于Zend Server提供的错误报告工具。

    无论何时发生错误或引发异常,Zend Server都会尽可能多地存储有关它的信息(例如,使用了哪些请求参数、错误发生的位置、时间、错误消息、堆栈跟踪等)。

    我真的更喜欢收到这样的错误信息,而不是客户说:“网站不工作,请修复它”。

    当将Zend Server与Zend Studio结合使用时,Zend Debugger已经预装(但您也可以自己安装)这一点非常好。

    它还附带了一个php java桥(您的java类可以在php中使用),但我不需要它。

    如果您的web应用程序中已经有一个基于php的错误报告解决方案,或者没有使用这个解决方案,也没有使用java桥,我想说,如果您在自己的apache安装上使用Zend Server(只要您知道如何正确配置它),这并没有什么区别。

    至少这是我的意见/经验。

    我一直在使用免费的Zend平台开发者版。如果我必须为Zend平台/服务器付费,我想我不会使用它。但这确实取决于项目。

        2
  •  4
  •   Kevin Schroeder    16 年前

    Zend Server不仅仅是一个经过测试和支持的堆栈。Andre谈到了Zend Server中的一个特性,即监视。监视监视PHP脚本在特定条件下的执行情况,如果超过某个阈值,则会记录该请求的上下文,以便您稍后进行检查。当我在现场与有应用程序问题的客户合作时,我要做的第一件事就是安装Zend Server并打开监控。几分钟之内,我通常至少对他们的问题有一个很好的理论。

    在Zend Server 5中,随着代码跟踪功能的引入,这一功能被提升到了一个更高的水平,该功能对请求过程中几乎每个单独的函数/方法调用进行运行时检测。这有点像是在运行时完成的调试和分析的组合。在许多情况下,可以诊断生产环境中的问题,而无需实际复制问题。

    您还可以使用其他一些功能。工作队列对我来说是一个很大的队列,我非常广泛地使用它。我有一个例子说明如何在 Do you queue? Introduction to the Zend Server Job Queue

    还有两种不同的缓存特性,PHP Java桥(Andre也提到过)和Optimizer+,后者是可用的最快的操作码加速器之一。

        3
  •  3
  •   mr. w    13 年前

    话虽如此,功能也相当不错@Keven已经提到了作业队列。这对我们来说太棒了,因为我们可以非常轻松地卸载异步运行的各种任务,并保持主请求进程正常运行。例如,每当发生某些类型的事件时,我们的一个应用程序就会在bug跟踪器中创建任务。由于这是由web服务完成的,而且bug跟踪器的速度非常慢,所以这可能需要几秒钟的时间。然而,我们没有让应用程序的用户等待,而是将作业排队,让它在后台运行。同样,我们的标准电子邮件类使用作业队列,而不是让用户在代码与SMTP服务器对话时等待。所有这些甚至都没有涉及到在生成大型报告、运行数据库完整性检查、重建缓存等方面的有用性。

    当然,正如@Andr提到的,这里有一些非常好的调试、跟踪和事件报告功能。

    还有一些很好的功能用于部署和回滚,这对于业务关键型应用程序非常重要。我打算有一天尝试一下,但现在,我仍然在使用在使用ZS之前组装的工具。

    许多

    另一个例子是,我们在开发站使用Mac,但出于对与古老硬件兼容性的极大误导,Zend选择将Mac版本(仅用于开发)作为32位版本发布,而这些硬件往往是由那些在PHP服务器软件上投入数千的专业开发人员运行的 . 因此,我们不得不开发一个32位的应用程序,它可以在其他任何地方以64位运行。这在我们的应用程序中导致了很多错误和失败的自动化测试,而这恰恰扼杀了ZS的核心目的之一,ZS是跨开发、测试、暂存、QA和生产环境的相同软件堆栈。我试图说服他们改变这一点,但他们很快开始忽视我。

    其他例子包括:对通过API发送到Zend Monitor的定制事件处理不当,php二进制文件的php cli包装器在被shebang行触发时在Mac上中断,缓存工具中完全(完全)缺乏运行状况和性能报告(尽管他们说这在ZS 6中正在改变),还有令人尴尬的不完整文件。我可以继续。。。。

    现在,这些不利因素,以及浪费的时间和资源,显然并没有超过我们的利益,但就我们花费的钱而言,我肯定期望更多。

        4
  •  0
  •   Somnath Muluk    13 年前


    1. 当你知道问题的起因时,解决问题是很容易的。然而,在测试过程中,找到问题的根本原因往往是一项挑战,当应用程序在生产环境中运行时,这一点非常困难。在开发实验室中尝试重现完全相同的环境、应用程序状态和负载既耗时又容易出错,这会让开发人员从编写代码的最重要任务中解脱出来。Zend Server 5以代码跟踪为特色,将根本原因分析提升到一个全新的水平。
      用于PHP应用程序的飞行记录器
      想象一个黑匣子飞行记录器。当飞机出现故障时,您可能不想重现该问题。这就是为什么飞行记录器捕捉飞行分析师可能需要的完整数据,以了解问题发生的原因。


    2. Zend Server没有花费时间尝试设置环境和复制导致故障的所有步骤,而是在生产或测试实验室中实时捕获应用程序的完整执行情况,以便您可以快速找到根本原因。

    3. Zend服务器代码跟踪缩短了根本原因分析时间
      Zend Server代码跟踪在检测到问题时自动激活,或由用户手动激活,例如在优化项目期间。 Zend服务器代码跟踪记录的数据包括:

      • 返回值
      • 内存使用
      • 文件名

    Zend Server web控制台中显示的跟踪功能使您能够像DVD一样查看应用程序的执行历史,并跟踪单个有问题的请求以快速查明根本原因。

        5
  •  0
  •   2upmedia    12 年前

    我在大型IBM服务器(IBMi系列)上运行PHP应用程序,这些应用程序使用COBOL运行了20、30年。所以基本上Zend Server是我所知道的唯一一个在IBMi上工作的PHP平台,或者至少和它一样健壮。这些系统是至关重要的。基本上,大多数保险公司、银行、股票、甚至学区都在这类系统上运行。因为您可以运行Zend Server之类的东西,所以您可以构建一个RESTAPI,以现代方式公开这些古老的系统,并允许面向服务的体系结构。这就是我一直在研究的,也是一个事件驱动系统,它利用PHP CLI和Zend作业队列将数据推送到第三方。在这种情况下,我们将数据从我们端同步到供应商端。

    IBMi上的Zend Server是使用nginx前端为静态资源(CSS、图像等)设置的,并使用FastCGI进程为动态PHP设置的,因此这是一个非常强大的设置。这无疑为现代化打开了旧体制。

        6
  •  0
  •   Wes Grant    11 年前

    我发现,使用Zend Server减轻对PHP软件版本的管理以及我所有服务器上的各种扩展是它最大的优势。

    此外,能够通过用户输入和环境变量找出问题的根源,并深入到特定的PHP函数,比浏览PHP错误日志(尤其是在高流量服务器上)更有帮助。

    如果有开源的替代方案,我很想知道!我不太高兴Zend停止了免费版本。

    推荐文章