您好,欢迎进入杏彩登录页面官方网站_登陆注册线路生产厂家,专注于聚脲喷涂机,高压聚氨酯发泡机设备,聚氨酯喷涂机设备定制设计。

7*24小时全国热线:

15269167038

技术问题

“工程化”对于大型数据平台而言意味着什么?StartDT Hackathon

时间: 2024-04-23 21:34:58 |   作者: 技术问题

  本届黑客松共吸引到9组参赛,均在72小时内完成项目并提测通过。有“单排孤勇者”,也有“梦幻联动”,战况空前激烈,上届冠军&本届评委沙加评价,“有种幸好我不是今年高考

  日前,2022第三季StartDT Hackathon正式落下帷幕,以“产品工程化与可扩展性提升”为主题,主攻数据云这个“庞然大物”的工程化难题。

  本届黑客松共吸引到9组参赛,均在72小时内完成项目并提测通过。有“单排孤勇者”,也有“梦幻联动”,战况空前激烈,上届冠军&本届评委沙加评价,“有种幸好我不是今年高考的感觉”。

  平台工程是一套用来构建和运营支持软件交付和生命周期管理的自助式内部开发者平台的机制和架构。平台工程的目标是优化开发者体验,并加快产品团队为客户创造价值的速度。

  说人话,数据云平台DataSimba在稳步完成产品功能开发、配置优化等动作的同时,还对自己有着以下要求:

  简而言之,作为一款企服产品,做到“商业化友好”;作为企业级平台,做到“开发者友好”。

  坦白了,DataSimba的“体重基数”确实有点大。伴随着模块不断丰富、功能一直在升级,作为一款平台级产品,“发福”也在所难免。

  基因重组的组长元善介绍:目前DataSimba R4.4部署需要占用较大的存储资源和较大的内存,deployment CPU要求也不低,提高了部署的门槛和运维的难度。与此同时,DataSimba R4.4里还存在着一些不优雅的遗留问题,例如冗余代码、接口、类、工具、配置等。

  虽然客户在日常使用中看不见、感受不到这些“不优雅”,但无形之间让产品变得“虚胖”,也增加了后续开发、维护、测试、运维等环节的风险。

  基因重组从应用架构、应用代码两个方向切入,对这个DataSimba进行了深度排查:

  l 应用架构:首先分析所有部署包中占用存储、内存、CPU较大的应用,抓住主要矛盾,第一先考虑其优化方案;接着合理地缩减服务,合并不必要的服务;缩减优化deployment;优化前端服务,减少历史冗余占用的资源;最后通过划分不同的部署单元,按需分阶段部署。

  l 应用代码:简化Pom依赖,并对依赖版本进行合并;移除已经无用的接口、类、方法、定时任务及消息(虽然降低的存储量不多,但能有实际效果的减少后续开发的错误发生率);重构部分低效代码,消灭“重复查询或拉取无用数据”等降低执行效率的行为;简化配置项。

  以DataSimba应用模块为例,基因重组踏踏实实地进行了落地改造:移除配置、定时任务及历史industry依赖,并在保持功能的情况下优化减少5000行代码。最终,仅该模块就“瘦身”了22%。按照基因重组的完整方案执行,预计存储占用量将减少48%。

  StartDT CTO、资深技术专家地雷评价:“就像《乔布斯传》中所谈到的,隐藏的部分也要做得漂亮,即便是麦金塔内部的电路板。基因重组的同学们想得非常细、非常深入、非常全面,尤其组长元善,从思路到实践,都展现了一个大架构师应有的素质和能力,可以让我们数据云团队的各组学习。”

  基因重组负责DataSimba的瘦身、健身,无名队则负责DataSimba的日常体检,也即“可观测性”。

  在任何相关方采取任何类型的行动时,都会产生包含了数字化特征的可观测数据,如日志、痕迹、API调用、停滞时间、下载和文件传输等。应用可观测性以一种高度统筹和整合的方式,将这些可观测的特征数据来进行反馈,创造出一个决策循环,来提升组织决策的有效性。

  说人话!我们能看电池健康度,看汽车仪表盘,也能通过体检了解到身体健康情况,而具备可观测性的平台则可以通过外部呈现,来帮助用户判断系统内部状态,了解其运作情况及健康状况。

  无名队的前锋谈到,任何系统、平台都有可观测性的场景,通常而言,可以从指标(Metrics)、链路(Traces)、日志(Logs)三个维度来统计。微服务调用链路分析、应用度量分析、合规性审计等都是可观测性的典型场景。

  l 系统的运维分析具备一定的专业性与复杂度,需要对运维指标统计和展示进行结构化、可视化,方能帮助用户提高问题定位和分析的效率。

  l 依赖人工出具巡检报告,费事费力,且难以快速响应数据的动态变化及特定时期的紧急需求。

  因此本次无名队选择从IT运维场景切入,力求通过加强可观测性来快速定位异常服务模块,助力服务异常根因分析。

  前锋介绍,无名队的平台可观测性实践大致分三步,以Prometheus(一款开源的服务监控系统和时序数据库)+grafana(用于可视化大型测量数据的开源程序)为基本架构:

  选择了较为核心的指标数据,例如主机、进程、k8s、MySQL的指标数据等,先行完成采集。未来将持续集成更多的观测项,如集成元仓对每日运行的平台任务的指标数据、其他中间件的数据等。

  依托Prometheus时序存储及查询能力、集成库拓展能力,完成数据处理,并进行监控告警配置。

  依托grafana搭建可视化大屏,将运维的专业相关知识沉淀在配置中,并定期自动化输出报告。

  N次获得黑客马拉松冠军的评委、资深数据产品经理沙加谈到:无名队在平台运维上的尝试,不仅有技术前瞻性、有趣,也真正实用。他们生动诠释了从方案到落地的高效执行过程,包括现场遇到小插曲快速排错解决的能力,都体现了S级工程团队的素养。

  同时也小剧透一下,可观测性是“进行时”,我们的实践还远远不止于此。在11月23日的StartDT Day上,我们会分享更多数据云“可观测性”的进展。

  ① 协调资源需求;② 协调人员时间,常常要运维、测试、开发等多人支持;③ 开通服务器资源;④ 运维安装部署;⑤ 测试验证功能。

  通过将产品与系统镜像集成的方式,简化产品部署过程,云服务器开通完成产品就可以使用,免去部署调试过程,真正的完成即开即用。

  打个比方,这就好像买了一台品牌PC,安装的Windows系统中预装了Office全家桶,而无需用户逐个辨认、下载安装。

  最终,DataSimba部署所需的最小资源,相比此前减少了67%;产品部署速度大幅度的提高,现在只要30分钟就能完成DataSimba、DataKun两大产品的部署——在公有云的环境下,最快只需5分钟;上手简单,对产品并无了解的工程师也能搞定部署,人效得到提升。

  “其实今年上半年,我们已将一套‘DataSimba+大数据集群环境’所需服务器资源降低了70%,本次黑客马拉松,四次元口袋组迎难而上,再次压缩资源,还提高了部署效率。”评委沙加透露,“这也代表着客户能用更低的成本尝试数据云平台(例如PoC、中小型企业小规模部署等),发挥数据的价值。”

  这正是DataSimba作为一款敏捷的工程化、平台型产品要具备的能力,像“四次元口袋”一样,包罗万象,可大可小,敏捷易用。

  组长风(花名,单字“风”)介绍:镜像化部署虽妙,但现阶段并不能解决每一个场景的问题,例如,客户环境的服务器已经装好了操作系统OS,部署产品的过程中就有几率存在各种各样的依赖,需要在线联网来下载。然而,有些客户对网络管控较为严格,服务器不允许连接互联网进行依赖包的下载。

  因此,闪电组以数据存算引擎DataKun为例,分析了目前的安装流程,进行标准化,形成了命令行部署脚本。

  资深技术专家、评委牧然表示,闪电组核心解决了客户环境无法访问外网,依赖包无法获取的问题,并实现了服务器初始环境一键创建,实实在在地简化了运维部署步骤,为产品交付提效。

  下一步,虽然没有在3天内完成从脚本化到容器化的升级,闪电组还将持续实践DataKun及其集群的容器化部署,进展将在后续的产品与服务中体现。

  在项目迭代过程中,当对部分模块进行了修改,修复了此前遗留的bug,不可避免地需要阶段性发布更新,以完成模块更改、bug修复甚至大版本的重新部署等。

  也就是“夜深人静时,停机发布日”,很古老,但经典,长久不衰,目前许多大型网游、企业内部的管理系统都采用这样的形式,虽然迭代速度慢、影响区域大(全用户/任务都需要暂停),但贵在安全。

  存在蓝绿2个集群或2组Server,同时只有其一参与生产工作。发布时,先在未工作的集群/Server更新,验证完成后再把生产全量切入到已更新的集群。采用蓝绿发布,用户对升级是完全无感的,用双倍的资源保障了绝佳的用户体验。

  取出一个或多个服务器停止服务、执行更新,然后重新将其投入到正常的使用中。周而复始,直到集群中所有的实例都完成更新。

  这是兼顾使用者真实的体验和资源节约的发布方式,缺点则是运维工程师不那么友好,有较高的技术门槛,有几率存在回滚困难、兼容性考虑要素多、发布周期长等难题。

  也称金丝雀发布,让一部分用户开始用A(新版),大部分用户继续用B(旧版),如果用A的用户没有反馈问题,那么逐步扩大范围,将全用户都迁移到新版上来。

  灰度发布能在用户相对无感、节约世界资源的情况下,控制故障的影响区域,系统相对来说比较稳定。同时,像滚动发布一样,也会面临回滚困难、兼容性考虑要素多、发布周期长等问题。

  1. 通过Kubernetes的rolling update,实现滚动升级。达到升级过程中,无状态服务流量自动切换;

  “做到热升级,对客户来说很重要,能极大的提升客户数据及运维团队的体验。不夸张地说,版本升级夜,也能睡好觉。同时,伴随着我们客户慢慢的变多(凡尔赛一下),更高效的升级部署也能有效缓解交付压力,提升人效和服务品质。”评委地雷表示,“纯粹单枪匹马,不仅产出了关键结论,提出兼顾资源、体验和稳定能力的方案,也通过实践验证了方案的可行性,非常精彩。未来,我们会更大范围地在各项目落地。”

  · 应对DataSimba R4系的架构调整和升级,“小黄牛队”3天内完成了DataSimba R4.3对某大厂EMR的深度整合支持。这不仅要求研发能对其他厂商EMR集群快速来了解并切入,更要求研发对DataSimba整体技术栈有广而深的认知,能抽象各业务模块及其所有技术栈和涉及组件,也充分了解组件和集群之间的交互细节。

  · “裂变组”着眼于数据云内部研发环境,构建并优化了小组的独立研发环境——各组共用底层的一套DataKun,同时开启了Kerberos保证安全性,上层则通过不能透露的方式,让各小组有自己的独立环境进行研发和测试。各小组环境各自维护,之间互无影响,彼此部署互不干涉,甚至支持不同业务、不同版本的需求并行研发,从而大幅度的提高整体研发效率。

  · 数据安全引擎DataBlack团队派出了“进击的六人组”,对DataSimba进行了账户域加固,优化了账户管控流程,在确保各类型、各场景下,所有账户均能得到安全管理的同时,平台权限维护效率也进一步提高。

  · GrowingIO-UBA团队则与DataBlack团队再次梦幻联动,组成“SIX组”,依托DataBlack的脱敏等技术和能力,赋能UBA,在UBA采集端实现数据脱敏,更完善地保障GrowingIO-UBA安全合规。

  “本次黑客马拉松主攻水面以下的平台工程和效能工具。各组技术水准之高,大大超出了我的预期。”StartDT CTO、资深技术专家地雷谈到,“更关键的是,架构师们没有技术自嗨,都瞄着真实工程瓶颈问题去解决。如果你回去看看最初几届黑客马拉松的内容,就知道团队的内功增强,更接近S级团队了。”

  正如DataSimba后端架构师元善所说,良好的工程化可以在实现相同功能的条件下,给予产品更好的生命力,在客户环境更稳定、更易维护、更易部署。这也是数据云团队通力协作的目标,一直在优化,降低架构复杂性、依赖关系、资源消耗,只为客户更快更便捷更高效地用上数据云、用好数据云。

  经过史无前例的激烈角逐,评委们分别从课题完成度、商业经济价值、产品成熟度、技术难度等维度完成打分。四次元口袋斩获冠军,无名队荣获亚军,基因重组、闪电组并列第三,抱得奖金归!

  我们的队名叫4次元口袋,有队友说已经陪跑4届了,所以特地选了第4个汇报,这次终于在“4次元口袋”里找到了史诗级装备。感谢黑马组委会各位老师的筹备和支持!

  这届黑客马拉松对于无名队来说遗憾与收获并存,虽然以1分之差与冠军失之交臂,但“平台可观测性”的课题能成功落地,对我们队成员来说还是很欣慰和高兴的。虽然本届黑客马拉松结束了,但是对于“平台可观测性”这个大课题来说,我们期望它是个新的开始,期待它能在DataSimba里早日落地生根。

  感谢公司组织的活动和评委的认可,感谢每一个参赛团队,从大家的作品中学习到了很多。

  我们在开发中不光要追求技术的先进性,同样要兼顾项目的工程化。良好的工程化可以在实现相同功能的条件下,给予产品更好生命力,这对需要私有化部署的产品来讲更是重中之重,毕竟在客户环境稳定、易维护、易部署是十分重要的。这要一直优化,降低架构复杂性、依赖关系、资源消耗,需要整个团队的通力协作、共同进步。

  我们小队虽然在此次黑客马拉松中取得了不错的成绩,但与其他优秀小队相比还差很多。今后我们小队要加强技术理论的学习,系统性的学习多场景下的部署架构,并了解新技术和尝试新事物的应用,以便更好地适应不一样场景的快速交付。

  DataSimba产品能力再进化?分析云发布独家模型体系?丰富的“数据云+分析云”落地实践?


关注微信号
网站首页 产品分类 电话联系