在数字时代,大量数据处理成为焦点。腾讯应对这一挑战,运用微服务理念构建了一个通用的应用框架平台。这个平台包含了许多值得深入研究的内容。
开发侧面临困境
开发过程中遇到了不少难题。比如,服务模式多种多样,各种业务协议难以统一,这个问题在2019年某些情况下就已经显现出来。此外,基础组件或框架的能力参差不齐。开发者的精力被分散,需要处理各种协议交互、网络通信等繁琐事务。这使得他们无法将精力集中在业务逻辑上。以开发在线游戏业务为例,复杂的底层内容占据了大量精力,导致业务逻辑的开发难以深入。同时,跨业务团队的系统互通效率很低,就像两座孤岛难以搭建起高效连接的桥梁。
企业内部,不同团队间合作时,业务协议的不同往往导致沟通成本上升,数据交换也变得复杂。比如,有的部门使用A协议,而其他部门则采用B协议,这便需要在协同工作时耗费大量时间去转换协议,而且很难确保数据的精确性。这种情况在日常工作里是常见的。
通用应用框架的能力管理
这个框架的管控功能非常实用。借助网络平台,我们可以轻松地管理各项服务。以2020年某次业务扩张为例,我们能够随时进行部署和发布等操作。这样的功能对于提高工作效率有着明显的帮助。
小型创业公司采用此框架后,原本复杂的运维工作变得简单。过去需要人工逐一处理服务的部署和扩展,而现在只需在web界面上进行简单操作。此外,不同地区的办公点也能统一进行运维管理,比如北京总部和深圳分部可以共享运维成效。
解决开发易用性问题
业务扩展后,服务板块逐渐增多,相互间的联系也变得更加繁杂。为了保证线上服务的稳定性,我们采用了异步处理方式,然而,异步代码的阅读与维护却变得相当棘手。这就像是要理顺一团乱糟糟的线团。
腾讯运用了协程技术,改善了这一状况。业务操作无需调整同步的编程模式,只需调整一个开关,即可实现同步与异步的切换。这一变革在众多业务应用场景中显著降低了开发难度。曾有一支因异步代码而受限的团队,采用此技术后,开发效率提高了近三成。
弹性调度问题
技术的应用使得服务流程无需对机器提出特别要求。因此,2021年的弹性调度拥有了极大的操作灵活性。无论是在配置各异的服务器集群中,都能简便地完成部署。
此外,同一服务下的容器规格得到了统一。因此,流量分配变得更加简便。在游戏业务等场景中,用户流量的分配效率显著提升。在流量高峰时段,也不再需要担忧调度出错,资源能够得到合理分配。
框架功能提升开发和运维
框架功能作用显著。在开发方面,业务逻辑的开发变得不再遥远。比如,针对新兴的直播业务,开发者无需再为底层技术而烦恼。运维管理也变得更加简便高效。以企业运维2022年为例,全年操作规范化,错误率有所降低。
分布式系统在可用性等方面以及运营操作相关功能均得到全面支持。在具体业务应用中,得益于该框架,业务部署周期显著缩短,从规划到正式上线节省了将近一个月的时间。
框架的部署能力
公共框架的节点数量不固定,且分布在多个机房。需根据服务节点的具体规模来调整,比如日志处理业务可能就需要增加更多的节点。
Set的部署能力相当出色。Set之间无需调用,互不干扰,还能实现故障隔离。众多企业在使用Set部署后,运维效率显著提升,服务可用性也大幅增强。腾讯在内部和对外开源的框架中,在运维方面有所不同,这种设计使得框架的适用性得到了提升。
最后我想请教大家,对于这种通用的应用架构,你认为它今后还能在哪些方面进行改进?期待大家的点赞、转发和留言,把你们的见解告诉我们。