' Q9 a, O: V* M! A ~META Group 已经观察到了业务所有者的一些变化。在过去,他们主要集中于关心将所有的关键特性和功能都包括在应用中,包括客户要求的各种花哨的东西。然而,当前技术已经跨过了公司的边界,客户,业务合作伙伴和供应商已经成为技术的最终用户,因此现在业务所有者必须关心客户的体验和技术是否能正确地运营。他们经常愿意为了确保拥有一个可支持的应用,而折衷一些应用的特性和功能。这个理论就是一个运行的应用可能缺少一个特性,这可能只困扰一个用户,但是如果应用完全不可用就意味着丢失所有的用户--以及这些用户的所有业务机会。所以性能差的应用比缺少一些特点的应用存在着更大的风险。 ! k5 ^0 E5 A5 n
# T3 ~1 G0 V$ }9 ~2.3. 开发人员角色 ( E1 t/ S& p8 W在J2EE世界中,开发人员的角色发生了变化。开发者可以不再写代码,通过质量保证小组交付代码并知道某一天会在生产系统中使用。基于J2EE的应用比传统应用的变化要频繁得多--在一些环境中是每天一次(相对于传统的环境,每年才改变一到两次)。因此在开发人员层次上的测试变得至关重要。因为开发人员带来的变化导致更短的QA(质量保证)周期并且在很多情况下,几乎没有生产接受过程(production acceptance process),所以为了确保提供可支持的应用,在开发人员层次上的测试是早期的重要步骤。 $ e+ X4 R4 X( X. y
$ o6 }" k Z& _# }. j1 V
接下来,开发人员一定期望能够更直接地参与到生产支持。目前,当机构安排谁将支持应用和学习必要的技能和知识时,J2EE开发人员就被推到这个生产支持的角色中。在一段时间内,这将使开发人员稍微远离运营的过程放慢了。然而,开发人员不会完全脱离他们过去担当的角色。需要的完善问题将不再是记录在服务台(Help Desk)中的需求,而是放在了下个发布版本的改变中。由于基于J2EE的应用对公司来说变得如此重要,这些问题必须很快地解决。由于体系结构本身允许以更快的速度进行较小的修改和分发,这就比较容易解决上面的问题。 G7 R0 A- x+ V% @
6 b; T Z, x3 k- yJ2EE应用的一个好处就是底层的应用对象模型更容易了解,这通常是通过应用服务器实现的。应用服务器通过管理接口使这些数据可被监控。这些接口通常是基于JMX(Java Management Extensions)。这意味着在生产层次的监控中有更多可用的数据可以帮助开发人员识别问题。机构必须拥有这种能力并且学会在更低的细节层次(例如类,方法等)上监控生产应用,同时开发人员必须能接受到从生产来的数据。这样,开发人员将看到他们解决问题的时间明显减少了;而不必为了了解问题而再建立一个环境以再现问题。这些数据可以为开发人员指明需要修改的有、问题的类甚至方法。 % G5 D( K9 Z! n/ Q
) i/ P* J& K; V" d$ S* N' p7 }
2.4. 质量保证角色0 v. z1 n3 k' N2 Y2 h
质量保证角色的变化更加微妙。质量保证组仍然处于开发和生产之间,但现在质量保证过程更多地被拉向生产体系。从两个要点看,质量保证角色将在自己的机构内部细分为两个关键的中心:1)详细的应用测试(蜕变测试,集成测试等);2)参与应用性能测试(例如负载,事务执行等)同时建立测试环境和生产的阶段性代码(staging code)。质量保证中的应用性能要素主要包括J2EE运营小组。由于前面讨论的不断缩短的开发周期,对于生产接受阶段的时间限制越来越大。很多公司在生产系统上执行测试,这样几乎没有生产接受阶段的时间。质量保证者团队必须能够自动测量,同时要能够模仿一个真正的用户环境。另外在质量保证过程中必须有足够的灵活性可以在实际的生产环境进行临时性测试以确定应用是否如所希望的运作。 ) b' v6 L- n B5 f
& c. \5 g. P" ?! k. g. q3 T质量保证管理人员必须有多种工具,可帮助他们和其他的运营支持小组分享信息。这些信息,例如在特定的负载程度下组件的响应情况,应用中的断点情况,和方法或EJB的正常性能指标等。如果他们都在用于测量和监控的一些工具中共享数据,那么这种共享将变得比较容易。需要理解的是,质量保证的监控工具不是直接使用在生产中;很明显,这些工具增加了系统负载,所以不能在生产环境中使用。然而,可以使生产系统连接到这些工具,这样可共享阈值信息,测量信息和关键点的识别信息等。此外,当在生产中发现问题时,如果从生产系统中不能得到足够多的细节,那么公司应该有能力回到质量保证环境中,再现此问题以便分析和解决。 * T; |) d6 A5 K$ x. k: O+ n; I# @
2 d4 h* n: e- f$ R- b! F2.5. 应用所有者角色- J u7 u4 Z4 C. D/ W8 N, R
在公司里新出现的角色是应用所有者角色。每一个应用都集成了独特的系列技术以满足他们的需求。每个应用都有一群最终用户,他们希望该应用能提供给他们特定的服务。可是,IT在传统上是依据技术划分的,这阻止了从应用视点观察世界的能力,更重要的是阻止了从最终用户的视点观察。不过,这正在产生变化,在公司中应用所有者角色正在出现并发挥作用。应用所有者有责任对应用及其健康运行有高层次的视点。由于应用和最终用户的运营健康情况跟体系结构的健康情况不再有紧密关系,因此一个目标是把它们区分开。例如一个公司采用的是基本的三层J2EE应用(web服务器,web应用服务器,和数据库)并且web服务器和web应用服务器层进行了负载均衡,可以想象一些负载均衡的服务器停机不会影响到应用服务。两个web服务器可能停下来。但不会对最终用户产生影响。这两个服务器体现出了超额的能力。应用所有者的职责是确保对最终用户的监控和交流,从对业务有真正影响的角度看,这种工作在IT机构中应具有优先权。 ) q3 [, y* o) {: w( I: m . e9 v4 S: S, R3 Y+ |& Y' Y应用所有者角色通过一些接口为业务所有者角色提供服务。他们都是业务管理和技术之间的桥梁,并且负责提供业务SLR(服务等级报告)。他们不必自己产生所有服务等级数据而是从所有其它的IT小组获得数据。应用所有者不负责应用的维护。他们与开发的接口是帮助设置优先权,与运营角色一起确保解决问题的正确路径,与QA角色和J2EE管理人员一起协调改变和维护。他们是中心。 9 z6 t0 M- g; v" H" b * i$ Y. i6 w1 {0 P1 E3 q# C/ p应用所有者角色负责和所有参与J2EE环境支持的各方接口,确保他们一起工作,像一个小组一样来满足最终用户的要求。他们需要一些工具,这些工具不仅可以记录基础结构的健康情况还可以记录实际用户的体验情况。 6 J4 ^6 M3 |3 u& w* \( ]2 B( Q1 S" Y( h5 C6 N3 D, C# C: J: Y: I
2.6. J2EE工程机构角色( h9 j3 [ ^: M% x
我们在IT中看到正在出现的一个新角色是J2EE工程师。它是一个web应用服务器和相关技术的所有者,这个人直接负责这些基础技术设施的维护和支持。很像数据库中的DBA(数据库管理)小组,Web应用服务器/J2EE技术相当复杂,以至于需要一个自己的工程小组。J2EE工程师们和DBA共同具有的另外一个特点是比其他运营小组(例如系统工程师,网络管理部门)更接近开发工作。J2EE工程师首先是属于运营支持小组的,但他们也要花费时间和开发人员一起确定最好的运营参数和改变配置信息。虽然他们会知道一点代码的情况,但只参与一些较小的改动而不参与重要的应用错误修改。另外,J2EE工程师小组将在开发人员的帮助下在生产环境中识别问题,这个任务是最近由扮演产品支持角色的开发人员完成的。J2EE工程师会对问题钻研很深。与将2-3级的支持工作交给开发小组不同,工程小组将对那些问题做出评估,如果他们无能为力,就决定把哪些工作交给开发小组。这最终的结果是开发人员可以合理的方式介入到生产系统中,减少了应用小组的支持工作,并最终由于专门的分工而可以更好地运营J2EE应用。 8 F: q& L. t3 y7 x5 M- W
' E% C, Y4 |7 U1 l% X ^9 K
2.7. 运营角色: A2 l9 a( G, M3 C
运营小组以24*7的时间监视IT世界的运营情况。当问题发生时,他们就是一线支持。以前,运营小组识别出问题或事故,并快速地将事故转给合适的应用或者工程小组,往往很少或没有附带事故的上下文情况。然后事故的接受人员必须开始分析并识别这个问题是否在他们的权限范围内或是否可以把这个问题转给其他人。 / I/ L7 R7 ?7 Q2 U% {0 [ % p/ j( h; C7 y6 }& W对于基于J2EE的应用,诊断时间的长短是非常重要的。因为这些应用直接带来收入,所以公司必须寻找改善平均修复时间的方法。一个关键的方法是把运营角色和应用所有者角色联系起来,为他们提供有关应用是如何运行的更多详细情况。通知运营角色有一个高层次的故障将导致服务停止,然后运营小组将这个问题转给应用支持小组。可以采用自动化工具来触发进行更深入的分析,这样就可以在出问题前预先通知。通过可以进行深入分析的工具,运营小组可以着手搜集更为详细的信息,可为其他人诊断和解决问题提供帮助。