65.9K
CodeProject 正在变化。 阅读更多。
Home

Zend Server

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2016年2月12日

CPOL

6分钟阅读

viewsIcon

18088

Zend Server是我发现的最全面的发布自动化、APM(应用性能监控)和扩展管理工具,它支持PHP应用程序。

我一直是个数据爱好者,所以应用监控(APM)领域引起我的浓厚兴趣,并成为我们应用开发的首要任务也就不足为奇了。但说实话,这并非一帆风顺。尽管市面上的监控工具数不胜数,但要找到一个不仅适合我们的应用,还能适应我们整个开发堆栈的工具,至少可以说是相当困难的。我们认为Zend将能解决这个问题,并且做得更好。这篇博文将介绍我们是如何得出这一结论的。

首先,让我概述一下我们的挑战,或者换句话说,为什么监控我们的应用一直是一项棘手的工作。

  1. 我们正在使用Azure,而云监控工具对Azure的支持并不广泛,尤其是对于PHP。
  2. PHP语言——我无需多言。我对我们的语言选择感到满意,但它在良好的调试和生产可见性方面提供的支持并不多。
  3. 我们还没有QA团队。虽然我们知道如何测试我们的应用程序,但资源非常有限。我们必须正确设置,以支持持续部署和其他举措。所以我们需要一种能够让我们专注于关键问题的工具,而无需担心代码集成所花费的时间。

我们的应用开发团队很小。我的主要角色是架构师,我们有两个全职开发人员和一个产品经理。虽然我们希望有一位全职QA人员能够为我们提供更广泛的测试覆盖,并能更快地修复bug,但在MVP(最小可行产品)发布之前,我们暂时无法承担。

我们的技术栈相当直接。我们正在Azure上运行整个应用程序。我们的前端基于Azure网站,这是一个支持生产、暂存和开发槽的PaaS。我们的后端驻留在两个小型VM集群上,一个用于开发,一个用于暂存和生产。目前,我们的后端生命周期并非理想状态,而且非常手动。部署需要大量工作,并且大约需要三个小时。

我们的后端服务对我们的应用程序至关重要。它们管理应用程序的关键元素,如我们的发票接口、分析聚合、内容分析等,以及一个用于管理所有这些元素的管理界面。

Zend Server的切入点在于帮助我们支持后端应用程序。Zend Server允许我们将所有资源保留在我们的Azure宝库中,并为我们的后端服务应用程序提供全面的监控。最重要的是,设置非常简单。

安装

由于这是最快的入门方式,我们从Azure marketplace获取了Zend Server。marketplace中有几个版本的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的IDE)中打开我们的应用程序,然后直接在那里打包。目前我们没有使用很多库,所以这不是一个大问题。但在更复杂的应用程序中,这可能会是一个更大的问题。

现在我们可以开始工作了。由于这是一个全新的实例,需要一段时间才能获得有用的数据,但我们立即开始看到以前无法解决的红色警报问题。之前,当我们尝试手动执行我们的某个服务时,我们的管理应用程序只是显示白屏。

下面是这类错误(在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 Server的唯一主要缺点是,您最好让您的应用程序完全在Zend生态系统中,例如,利用其名为Zend Studio的IDE和Zend Framework。如果您致力于这样做,那么一切都会变得更容易,并且您可以收集到的数据将更加全面。

拥有一个小型的开发团队,我们在确保实施实践和优质工具方面能力有限。我们需要以最少的努力做最多的事情,这样在发布时就不会出现大意外,并且我们已准备好成长。我见过很多早期初创公司因此而失败。Zend Server将为我们提供利用更佳的包管理、应用程序性能监控和调试工具的机会,使我们保持在有效的轨道上。当我们直接在Zend Server中设置持续交付和部署时,我们将能够拥有统一的发布自动化流程。

到目前为止,Zend Server是我发现的最全面的发布自动化、APM和扩展管理工具,它支持PHP应用程序。

© . All rights reserved.