领导力大挑战
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
该内容已经被标记书签!
标记书签错误,请重试!
作者 Srini Penchikala 译者 宋玮 发布于 2008年7月10日
Orbitz Worldwide——全球领先的在线旅行公司,已经开源了它的两个监测工具:Extremely Reusable Monitoring API(ERMA)和Graphite(一个持久化和可视化组件)。ERMA是Orbitz自己开发出来的一个Java API和类库,已经被用于Orbitz的几个Web应用程序中,用以在运行时捕获应用程序中的监测统计数据。它是被处理的事件流源头,以便在服务停止或运行速度低于所定义的响应时间阈值时发出警报。
Orbitz监测和管理在线旅行社网站的范围包括了数十个Web应用、数百个VM和数千个Jini 服务。ERMA基于三种技术:复杂事件处理(Complex Event Processing——CEP)、Java管理扩展API(Java Management Extensions——JMX)和面向方面编程(Aspect Oriented Programming——AOP)。 Orbitz使用Aspect把监测逻辑注入到应用程序代码中,并使用CEP处理监测事件。CEP为处理大量的监测数据提供了一个高吞吐量及低延迟的解决方案。通过减少由软件可用性、可靠性和性能问题引起的客户影响事件的平均修复时间(MTTR),系统提升了可管理性。其结果是,Orbitz用最小的开发成本获得了访问超过10万个不同事件类型的能力。其处理如此大量数据的能力使公司能够在需要的时候以非常细粒度的层次监测服务。而且,使用这种技术,增加新的监测应用程序所需的硬件成本被限制在了最小程度。
在JavaOne 2008大会上,Doug Barth和Matthew O'Keefe就Orbitz的CEP作了介绍,这是一个关于Orbitz Web站点的应用程序级监测的案例研究。在这个技术专题中,他们用监测统计的例子和可视化控制台示范了怎么把ERMA和Graphite工具用于Orbitz的应用程序。网上有关于这个介绍的多媒体录音,这个资源对于Sun开发者网络的成员来说是免费的。
ERMAERMA是一个基于Java技术的仪表API,它使用起来和日志API一样简单,而且足够灵活,通过配置就可以满足大多数日志、监测、分析和其它事件处理需求的需要。它动态地把发生在同一应用线程上的事件联系起来。作为结果的事件模式还可以把服务于一个用户请求的、分布式的VM连接在一起,以便能够高效下钻错误和延迟的根本原因分析,以及自下而上的影响分析。
ERMA的两个主要元素是Monitor和MonitorProcessor接口。应用程序代码通过使用Monitor实现来仪表化。开发者还可以使用注解如@Monitored来标记需要被监测的Java类。@Monitored注解可以被声明在类型一级(类或接口)也可以被声明在方法级。通过利用基于Spring和AspectJ的配置,Orbitz使用了一个直接ERMA仪表和AOP风格仪表的混合体。
MonitorProcessor负责使用由仪表化代码产生的原始数据。Orbitz有许多MonitorProcessor实现,其中包括这么一个实现,把来自成百个VM的ERMA事件实时汇集到CEP引擎,这些事件在这里被高效聚合并处理。
ERMA可以从其Launchpad站点上下载。其团队已经完成了新的ERMA 3.0版本的测试。他们内部所有与ERMA相关的wiki文档已经被复制到新的ERMA Wiki站点上了。
ERMA使用了Apache Commons JEXL类库以便为声明哪些Monitor定位到哪些MonitorProcessor上提供简单的配置语法。这也使得应用程序可以在运行的时候动态地路由信息流。在开发过程中,为了确保向应用程序增加监测逻辑时不至于引入过多的延迟,使用了JUnitPerf测试框架。
该解决方案的可视化部分包括了一个显示SNMP事件的Netcool/OMNIBus控制台,以及一个自主开发的持久化和可视化系统——Graphite。Orbitz使用OpenNMS项目的JoeSNMP API开发了一个控制器,它可以把来自事件处理应用的数据通过SNMP汇聚到网络运转中心。
GraphiteGraphite是一个PythonWeb应用,用来为数字时序数据提供可伸缩的存储和可视化显示。它接收来自CEP引擎的输出,这些输出由7万种数据汇聚而成。Graphite中有一个Graphite portlet用来与监测portal集成,它是基于JBoss Portal框架的。这个portal呈现了重要的系统统计图表视图以及警报的RSS feeds。用户可以针对特定警报的严重性和/或受影响应用来订阅这些feeds。Graphite Web应用本身被用来显示使用RESTful URL所产生的监测统计的可视图形。Graphite数据可以被展现成线型图、饼图或者原始的CSV数据。Graphite还提供了一个基于Web的命令行接口,高级用户可以使用它来快速且方便地创建并共享包含相关图表集的仪表盘。
Graphite可以从Launchpad站点上下载。Chris Davis和Graphite开发团队也已经创建了一个wiki,介绍如何使用这个可视化工具。如果想向开发团队提供反馈,可以填写这个站点上的一个表格(需要用户注册)。不管什么时候,只要你把问题提交到这个网站上,Graphite团队都将收到一封电子邮件。
未来Orbitz的复杂事件处理还具有事件模式监测能力,包括实时点击序列(click stream)相关的分析和纠错能力。该公司正在开发一个解决方案,通过查找离散事件中的模式,估算出问题的根本原因,将之与客户影响事件信息捆绑在一起,能够减少传递给控制人员的警报数量。随着业务量和系统规模的增长,运营团队必然要依赖自动的行为事件侦测才能有效管理。ERMA的未来路线图包括与开源ESP引擎Esper的集成。
如果想更进一步了解ESP这个话题,InfoQ ESP专题还介绍了其它CEP产品,包括来自IBM的(WebSphere Business Events)、来自BEA的(WebLogic Event Server)、以及Esper。
查看英文原文:Orbitz Open Sources Monitoring Tools ERMA and Graphite
译者 宋玮 有多年软件开发经验,长期担任技术管理和项目管理工作,一直关心开源软件的发展动态以及软件过程和敏捷开发的实践探索。
在实施Scrum项目的过程中,Scrum Master的角色是相当关键的,因为他是团队的推动者。本文围绕什么是仆人式领导、仆人式领导的起源、如何将领导力传达给团队、Scrum Master作为仆人式领导者的角色展开叙述,同时重点阐述仆人式领导者应有的基本内外特征。
论道WP第三篇专栏,以应用程序栏的使用为中心,包括了软键盘带来的问题、应用程序栏介绍、如何绑定应用程序栏的属性等几个方面的具体话题,为开发者顺利使用应用程序栏开发提供了具体指导。
在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
没有回复
关注此讨论 回复