详情
随着科技公司业务不断发展,挑战也随之而来。每家公司都有着独有的方式应对这其中的困难,但不得不承认的是,并不是每家公司都能够成功地扩展IT基础架构来进行数据分析和管理。
对于glispa来说,这是一段漫长的旅程,一路上,失败与成功并存,我们受益良多。glispa从一个小型广告互联网公司起家,逐步成长为一个国际型广告技术公司,本文我们将与大家分享这其中的一些经验教训。
关注有更大价值导向的业务
活动效果追踪对每个广告公司来说都是关键的一步。从内容优化到欺诈检测,再到广告计费和媒介结算,都需要活动内数据的支持。glispa初期,我们曾面临一个重要的决策——是建立自己的跟踪方案还是外包给第三方供应商。经过反复考量,我们决定专注于能够为公司带来更大价值的事情,而实现业务发展的首要任务是构建运营技术。于是,我们放弃了建立效果追踪技术这个想法,转而授权第三方技术供应商去帮助我们实现。这个决定让我们能够把重点放在各种操作工具的建立上,来协助活动创建和发票处理,提升工作效率的同时把更多的精力放在客户合作及业务提升方面。
效果数据追踪这般如此重要的工作交由我们4-5人的小型开发团队管理,现在回想起来,不得不说这是一种非常冒险的做法。但正是由于成熟的运营技术支持,使得我们能够在以后构建自己的追踪技术。
事无万好,做好准备
在建立追踪系统时,我们希望它能够持续健康地运作,因为每宕机一分钟的耗资都是巨大的,从另一方面来说这也有损我们的声誉。我们的服务器组件是用Java语言编写的,在对大量不同技术进行评估之后,我们最后决定使用可扩、容错、分布式数据库Cassandra,同时选用Vertx为核心框架,用于方便地搭建响应速度快的应用程序。与NodeJs类似,Vertx具有事件驱动性和非阻塞性。
谈到全球业务和规模弹性,我们选取亚马逊网络服务(AWS),并使用跨区域Cassandra集群、跟踪服务器和API服务器在美国和欧盟区域进行系统配置。由于Cassandra能够有效应对跨数据中心逻辑的复杂性,所以系统设置非常简单即能实现。
根据自身服务器的工作负载情况,我们花了很大的精力来对Cassandra进行相应调整。曾有段时间我们的服务器集群负载过重,节点服务器在集群服务器中脱节,添加更多的节点已经毫无帮助,这让我们也很受挫。经过了数天Cassandra内部配置的摸索研究,最终,我们找到了问题的根源及解决办法,最终在进行了对Cassandra和一些设置的修改后,我们的集群恢复正常。这也让我们意识到,当事关系统稳定性的时候,必须提高警惕。应用一项技术很容易,完全掌握它才是最棘手的部分!
3.加大数据监控力度
之前Cassandra数据库的经验告诉我们,仅有操作系统层面的监控远远不够,它带给我们的应用程序运行信息非常有限。在这之后,我们开始对多方系统加大监测力度,同时也对特定的关键点着重关注,这些关键点能够帮助我们了解请求管道中每一步骤的时间掌控。除了时间点,我们也跟踪错误率、队列大小等,适当的监控能够帮助我们更好地扩展软件并加速故障排除。当前,我们主要使用InfluxDB数据库中的Grafana来进行系统监测。
数据隔离的重要性
适当的数据隔离机制对于实现最高的数据可用性至关重要,这个机制直观地反映在我们现在的架构中,通过我们的事件交换平台(EXP)提供服务。我们的系统能够处理并拓展数十亿的事件内数据,操作所需的数据在每个集群内都是可用的,并且,我们采用抓取(Pull)数据策略来管理集群的数据隔离和划分,以防止问题扩大。每个集群都在EXP上都有专属的本地部分。中央EXP组件使用抓取(Pull)数据模式收集其他数据中心的数据:如果链接中断,数据仍将存储在本地集群中以确保在链接恢复前没有数据丢失。这同样适用于系统配置中,可以通过抓取(Pull)机制复制到每一个集群内部。
注重团队力量
归根到底,选取恰当的人才,组建有效的团队才是最重要的。我们知道失败很正常,失败往往是工作的一部分,我们也发现创建一个“自动预防故障”工作环境更有助于创新。我们会根据具体情况调整自己的工作方式,来壮大团队并拓展项目。从一开始,我们就决定要打造一个功能多样、有条不紊的团队,他们可以自行决策,尝试新事物,并能够自主管理所建立的系统。只有这样,才能够实现最好的成绩: 建立一个运行顺畅且可扩展的软件,并能使用有效排除系统故障。
结语
在过去的几年里,不管是跟踪式解决方案还是在其他系统方面,我们都受益匪浅。曾挑战极限,跌倒爬起,但不断进步。现在,基于迭代增量法的敏捷式开发已经成为我们软件开发的一种方式。采用敏捷开发也有助于降低风险,迭代增量法能够有效缩减故障范围。
技术架构的扩展仅有技术是不够的,它还需要人力、专家、天赋异禀的工程师,经验更是尤为重要,这些因素组合在一起,才能得以实现。在一个持续学习不断进步的文化中工作何其重要,培养创新文化的最佳方式便是给予一个“失败安全型”的环境。在这种文化氛围和工作环境的影响下,我们的团队得以不断扩大,并创造出更多更有效的技术。(本文由glispa全球工程部副总裁Bastian Quilitz撰写)