云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

分布式存储_广安企业网站建设_速度快

小七 141 0

上海云服务器_虚拟_那里的云主机便宜

你如何找到承担高风险、高回报项目的空间,尤其是涉及整个公司所依赖的系统时?每一家公司都有这样一个关键业务系统,这些系统是在公司规模达到一定规模时建立起来的,而且多年来一直保持稳定,没有什么理由去碰它。但随着公司的发展,一些问题开始浮出水面,尽管没有什么问题可以通过启动更多实例和在amazonwebservices(AWS)上花费更多的钱来解决。优化已经充分发挥作用的系统是很难优先考虑的。然而,随着周期不断重复,问题变得越来越大。很快你就陷入了一个恶性循环,剩下的是一个次优且昂贵的系统。如果在高峰时段进行部署,则会很混乱。编写新的测试是乏味的,迭代也在减慢。这并不会让新来的工程师急于投入到他们的工作中去。哦,还有费用。运行280个更大的AWS实例,会让你头晕目眩!在对讲机上,大数据精准获客,这个系统是Nexus,我们的实时信息系统,内置于内部,每周传送数亿条信息。它工作得很好,但是需要越来越多的资源来保持它的高效运行,更新依赖项是有风险的,运行测试也很慢。一些人试图优化和简化Nexus,但总有更紧迫的工作要做。毕竟,优化已经充分发挥作用的系统(如果成本高昂)很难成为首要任务。高风险,高回报那么,你如何找到空间来承担这样一个高风险、高回报的项目呢?你如何进行必要的实验来重写整个公司所依赖的系统?我们的一位工程师威廉塔比(williamtabi)认为他知道怎么做——他决定颠覆Nexus,完全用Go重写系统。他认为这比更新和改造现有的低效和过于复杂的基于Java的实现要容易得多。然而,在他的其他承诺中找到时间去做这件事将是一个挑战。摇摆周将公司更高的优先事项暂停一周。就在那时,一项新的倡议为这类项目开辟了一些空间。在工程层面,对讲机的宿舍被分成两个六周一次的周期,并有相应的目标。这使得每个季度多出一周时间,去年决定把这几天变成"摇摆周",这是日历上的一个专用空间,让个人贡献者决定他们想在那一周做什么,只需要很少的计划。摇摆周项目是完全从头开始,提出和实施。它们通常不在内部通信公司的即时路线图上,该路线图是自上而下决定的,有明确的目标和完成的时间表。因此,摇摆周项目的结果并不重要。它们允许那些列在"我有空就去做"的项目。Wiggle weeks给了开发者和设计师自由发挥创造力的自由,并提出了他们自己的想法来做一些他们认为可以从更广泛的意义上改善对讲机的事情,无论是为员工还是为客户。促进创新在某种意义上,摇摆周相当于谷歌著名的20%的时间,这被认为是一种促进创新的方式。但是,由于摇摆周被放入季度计划中,创造性和创新的空间被明确化,而不是人们有义务为自己开辟时间和空间。一般而言,押注于高风险的大型企业并非一种明智的做法。它们考虑到了William所设想的高风险、高回报的项目类型,即使用Go(一种他从未使用过的语言)重写对讲机的核心功能之一。可以理解的是,这类提案很难获得批准。说服我们的经理使用一种全新的方法可不是一件容易的事——经理们很清楚,工程师们会因为闪亮的新玩意儿而兴奋不已,而仅仅因为工程师们喜欢试验新技术,并不意味着他们会创造出比现有技术更好的解决方案。传统的工程智慧认为你应该"用你知道的而不是你不知道的东西工作",这是有充分理由的。一般来说,押注于高风险的大型企业并非一种明智的做法,尤其是当实时服务对对讲机来说如此不可或缺,以至于我们连几分钟的时间都无法承受时。在这种情况下,理财返利,现有Java解决方案的稳定性似乎比在Go中重写它所带来的潜在节约和效率更重要。解决问题我们的经理们表达了一些需要用最初的测试数据和统计数据来解决的问题。我们必须证明新的解决方案是有效的,并且比旧的Java解决方案更高效,而即将到来的wiggle周给了我们这样做的机会。William用一周的时间构建了一个功能原型,看看是否真的有可能使内部通信的基本实时功能在Go中工作。一旦他确定了这一点,他就运行了一些测试,看看与旧的Java版本相比,它的效率有多高,结果非常有希望。更高的测试覆盖率使我们更容易引入更改事实上,他们是如此的有希望,返利优惠券,以至于他邀请我们两个在这个项目上花上第二周的时间。我们两人之前都没有和Go合作过,但我们帮助他将这个项目从最初的粗糙状态提升到了生产就绪状态,并完成了一系列测试,以确保它的工作方式与旧版本完全相同。至少可以说,结果是明确的。过去工程师们花半天时间来安装NexusJava,而NexusGo只需几分钟就可以完成。它只需1.5秒,而构建Java版本需要41秒。尽管nexusjava测试比nexusgo测试运行的时间要短一些,这是因为它的测试覆盖率低,并且大量使用模拟对象,而在Go中我们不模拟任何东西。此外,云服务器服务好,在Go中编写测试非常简单,所以测试覆盖率也提高了。更高的测试覆盖率使我们更容易引入更改和快速迭代。显著优势部署方面的优势也很明显——NexusJava部署平均需要2个小时,而在高峰时段部署最多也不过是小菜一碟。另一方面,NexusGo在25分钟内部署完毕,每次都不会出现问题,速度惊人地快了4.8倍。但最大的优势是在性能方面,从而提高了稳定性并大大节省了成本,而Nexus Java每个实例使用了大约30GB的内存,而Nexus Go则使用了大约10GB的内存。因为我们不需要太多内存,所以我们切换到计算优化实例。这反过来又将我们的平均消息延迟从80毫秒减少到7毫秒。我们现在可以在每台服务器上有几十万个活跃的WebSocket连接。而且它的效率比我们想象的还要高——我们成功地将AWS实例的数量从280个减少到50个,这使我们的成本降低了大约5.6倍。以任何人的标准来看,这都是相当可观的节省。为意外的胜利腾出空间NexusGo项目的成功主要是为了证明威廉的直觉和我们的努力。但这也是一个例子,说明鼓励实验和创新是多么有益,把时间和空间花在解决公司通常优先事项之外的问题上,会带来各种意想不到的回报。当然,它不会总是带来如此令人印象深刻的结果,也不是每一个实验都会成功,但将创新时间的概念融入文化中,大数据软件,就可以获得这些意想不到的胜利。而且也很有趣。如果我们希望通过这种方式来培养研发团队的创新能力。看看我们现在的空缺。