在软件开发领域,监控工具的重要性不言而喻。它们帮助理解应用的运行状态,及时发现并解决问题。然而,选择合适的监控工具并非易事。市场上监控工具众多,但要找到适合应用开发栈的工具,却是一项挑战。认为Zend Server可能是解决方案之一。本文将探讨如何得出这一结论的。
使用的是Azure云服务,它在云监控工具中的支持并不广泛,尤其是对于PHP语言。PHP语言本身在调试和生产环境的可见性方面并不出色。此外,目前还没有专门的QA团队。虽然知道如何测试应用程序,但资源有限。需要一个工具,能够让专注于处理关键问题,而不必担心代码集成所花费的时间。开发团队规模较小,主要负责架构,有两名全职开发人员和一名产品经理。尽管希望有一名全职的QA人员,以提供更广泛的测试覆盖并帮助更快地修复错误,但在MVP(最小可行产品)发布之后,才能考虑这一点。
技术栈相当简单。所有的应用程序都在Azure上运行。前端基于Azure网站,这是一个具有生产、暂存和开发插槽的PaaS。后端位于两个小型VM集群上,一个用于开发,另一个用于暂存和生产。目前,后端生命周期并不理想,非常手动。部署需要大量的工作,大约需要三个小时。
Zend Server帮助支持后端应用程序。它允许保留Azure中所有的资源,并且为后端服务应用程序提供了全面的监控。最重要的是,设置非常简单。
为了快速开始,从Azure市场获取了Zend Server。Azure市场中有多个版本的Zend Server可供选择,可以选择Zend Server PHP 5.6 Developer、Professional和Enterprise版本。目前,使用的是Developer版本。
这个设置安装了一个带有Ubuntu和Apache的Linux盒子。一旦它被配置好,所要做的就是找到服务器IP,并访问以下地址:
http://[serverip]:10081/ZendServer
以启动Zend Server用户界面。然后,会看到一个漂亮的启动向导。点击几下,总的设置时间大约是5分钟。
一旦Zend Server启动,就需要开始收集数据。最简单的方法是让Zend为部署应用程序,而不是之前手动做的。
事情在这一点上变得有点棘手。尽管实际的部署向导很容易使用,但需要将应用程序打包成一个.zpk文件,使用可用的技术之一。发现最简单的方法是在Zend Studio中打开应用程序,然后直接在那里打包。目前没有使用很多库,所以这不是一个大问题。但可以看到在更复杂的应用程序中可能会成为一个更大的问题。
现在开始运行。因为这是一个新实例,所以需要一段时间才能获得有用的数据,但立即开始看到之前无法解决的红灯问题。以前,当尝试手动执行一个服务时,管理应用程序会得到白页。
下面是一个这些类型错误的样子(在Zend Server中称为事件)的截图。因为应用程序处于隐身模式,无法分享。
立即使用的另一个非常有价值功能是扩展管理器。本来要设置一个单独的仓库管理器,但现在不需要了,因为Zend Server为提供了足够的信息来管理工件、库和工具。它还将帮助保持最新。例如,可以确保OpenSSL是无Heartbleed版本的。
因为尝试Zend Server的主要驱动力是应用程序性能监控和调试,所以不会利用产品中可用的全部功能,直到利用整个Zend堆栈。这至少是后端应用程序的下一步。因为这些应用程序已经在IaaS基础设施上运行,能够迅速让开发团队开始通过Zend Server部署应用程序,而不是现在通过GitHub手动做的。
后端应用程序的用户界面是有限的,所以不能充分利用Z-Ray,但这是Zend Server的一个伟大特性。Z-Ray是一个出现在每个应用程序页面上的浏览器工具栏,用于实时查看底层发生了什么。Z-Ray显示的信息比Firebug或等效工具更多,也更直观。它有助于实时变量信息,并且还显示更新通知,以防没有登录到Zend Server。
该产品还因为Zend的历史而在书中获得了一些额外的分数。Zend实际上是由PHP项目的顶级贡献者创建的,它对PHP的演变产生了巨大的影响,包括最新版本——PHP 7——听说它很棒。
看到使用Zend服务器对来说唯一的主要缺点是,理想情况下希望应用程序在Zend生态系统中,例如,利用他们称为Zend Studio的IDE,和Zend Framework。如果致力于这样做,那么一切都会更容易,可以收集的数据甚至更全面。