nGrinder在大型组织中的实际布署和应用

倾然丶 夕夏残阳落幕 提交于 2019-11-29 04:37:01

原文 : nGrinder Real Deployment in the Large Organization By JunHo.Yoon

    我们的公司,NHN,拥有多个大型的产品。其中一个是韩国最受欢迎的搜索门户网站NAVER,拥有超过5千万的用户。另一个是“Line”,这是目前最受欢迎的移动通信工具,注册用户超过1亿。另外还有涉及网络应用和游戏等类型的一些产品。除了这些,我们还开发了多种多样的开源平台产品,包括CUBRID-支持高可用性的开源关系数据库管理系统-nGrinder Wiki网站就包含在CUBRID的Wiki中:)。在NHN公司内部有1000多名开发者,他们总是努力实现那些杰出的想法并转化成产品,并使这些产品更具扩展性。

    为了使这些产品更稳定,速度更快,从2011开始我们集中地使用nGrinder。目前我们在公司内部运行了多个nGrinder实例。但是我们要求的员工从最大的实例开始使用,它是由5个controller,40个agent以及5个不同的IDC(互联网数据中心)组成的。 我们有官方的DNS名称:http://ngrinder.nhncorp.com(只有NHN员工可以访问),在这5个控制器是指向L4(负荷平衡器)的。怎么做才能布署这样大型的nGrinder系统?请看Controller Clustering Guide

 <nGrinder deloyment across IDCs>
 

    大部分IDC是位于韩国的,唯一例外的一个位于新加坡。一个nGrinder Controller和Agent的通信速度B/W并不高,这样我们就可以把所有的controller放在一个韩国的IDC而把Agent分散到每个IDC中。我们还在nGrinder系统中部署了的SSO插件和网络溢出插件,所以每个人都可以随时访问nGrinder而无需额外的登录步骤,还可以控制可能会导致巨大的网络流量的异常测试执行。我们的nGrinder SSO插件从nGrinder管理中免除了用户管理的开销。它与SiteMinder共同起作用,如果用户不存在,当用户用他/她的SSO帐户登录时,便会创建一个新的用户帐号。

    目前我们在每个IDC的实际服务区域,使用的是10G主干网。但我们的开发区域只有3Gbps, B/W模式的IDC的带宽甚至更小。 因此,我们估计如果nGrinder产生了大量的网络流量,特别是在每个网络边缘的时候, 会使该网络中另外的系统服务不正常。 这样的情况在我们之前使用Performance Center的时候的确发生过。所以我们设置了网络溢出插件,使每个test最大使用1Gbps流量。如果一个test占用贷款超过了1Gbps,这个插件会自动强制停止它。如果开发者需要运行产生超过1Gbps流量的test,我们会请他在与目标机所处的相同的交换机范围内中安装独立的nGrinder controller和agent。他安装一个自己的nGrinder实例一般只需要1小时。

    我们通常只允许每个用户在没有额外的步骤的情况下使用5个agent。 这使得agent最大化地被多个用户所分享。我们观察到90%的test在10分钟内结束。一些IDC拥有10个agent。这意味着至少个测试可以同时运行。如果用户需要更多的agent,我们建议他/她安装用户属于自己的agent而不是增加限制的数量。我们不仅使用这些系统的方法,我们也用比较人性化的方式促进nGrinder使用。

     有一个nGrinder专职的工程师,会持续观察所有的测试(他的名字叫乔.JiWon,“JiWon”在韩语中的意思是“支持”,他花约30%的工作时间在这上面。)。这里的大多数开发者是Java工程师,并且没有写Python代码的经验。他正在做事情就是帮助开发人员避免在脚本编写中感到茫然。 他拥有开启了超级用户权限的帐户,可以不必请求附加权限就可以看到nGrinder中所有的test,并且能够运行其他用户的脚本。

      所以,每当红色球(运行失败标识)出现在nGrinder性能test列表视图中,像下面这样,JiWon会点击脚本并验证它们,以找出用户做错了什么。当他发现线索,他就会用我们的内部通信工具与用户联系。这使得nGrinder用户仅在2~3次失败的尝试之后,就能够写出正确的脚本。有时,一些开发者说“离它(脚本)远点”, 但大多数开发者都会说“谢谢”,因为在他们忙得不可开交的时候,这小小的帮助能减少他们的开销。

 <It's time for JiWon to help this guy!!>

   如我先前所述,我们在所有的互联网数据中心预先部署了40个nGrinder Agent,并且安装了一些插件,让用户能够容易且安全地运行他们的测试。因此,当他们开始运行性能测试时,nGrinder用户不需要联系nGrinder管理员。开发者能够通过访问nGrinder URL,随时运行他们的测试。 这最终导致了一个跟我们之前经验完全不同的用户体验。

    如我之前所说的,我们曾经使用过Performance Center。在那个时候,开发者需要提前登记一个特定的时间段,因为PerformanceCenter在特定的时间内只允许一个测试,并且用户需要下载和安装一大堆的应用。而现在一切变得不同了,一切都是基于网络的,使用nGrinder是不需要预约的。这使得整个性能测试的成本大大降低了,而且许多开发者已经开始将nGrinder视为像Eclipse一样的日常开发工具中的一个。现在大多数的产品进行检测,不仅在在开发阶段的结束也在发展阶段ngrinder中间。我们观察到同时最多有3个test在同时运行,平均每10分钟就有1个test被启动。鉴于性能测试工具通常是在项目的最后阶段才被使用的情况来看,我们可以说这样的执行率是相当令人印象深刻的。

    

      <active nGrinder use in NHN. 2013-01-13 was Sunday.>

     这就是我们如何在大型组织范围内应用nGrinder的。我们相信,通过分享我们的经验,能够使得任何产品变得更加的稳定。欢迎给我们提供任何的意见。 请使用这个邮件列表给我们写信。期待你的体验反馈!

 nGrinder Home : http://www.nhnopensource.org/
 nGrinder Demo : http://ngrinder-demo.nhnopensource.org(登陆账户: user/user)

   


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!