正文
接口调整成本高。微服务之间通过接口进行通信,如果修改某个微服务的 API,可能所有使用了该接口的微服务都需要做调整;
重复劳动。很多服务可能都会使用到相同的功能。而这个功能并没有达到分解为一个微服务的程度,这个时候,可能各个服务都会开发这一功能,导致代码重复。
互联网企业的微服务转型经验,可为传统行业开发者提供经验参考。腾讯云基于自身的海量业务需求,通过 IT 架构的微服务化,将紧耦合的塔式架构,重组为小而简的独立服务系统,打磨出一套可用的微服务架构平台和微服务构建方法论,实现业务之间解耦和技术栈独立,允许低成本试错,使团队迭代更敏捷。
微服务构建的初衷不外乎实现敏捷迭代、灵活扩展、服务复用三大功能,腾讯云在构建微服务的过程提炼出了以下五大方法论:
-
在线协同:对外的 API 文档就是一份公共的说明,常有发布新的不兼容接口,因此,如何跨团队协同、通知至关重要,这方面需要通过 swagger UI 做在线的接口定义,以此公共契约;
-
部署原则:在真实环境里,Docker 应用还未完全普及,服务的部署耗时费力。可以尝试提供批量的自动化工具,做微服务独立打包,批量的部署,包括启动、停止、升级、回滚、下线等操作 ;
-
拆分原则:如常见的线上房地产交易门户商品中心,包含运营相关的子系统如二手房推荐系统等,服务拆分得过细会带来不必要的分布式事务、调用环节冗长等问题。各系统的拆分原则上可强调“抓大放小”;
-
数据扁平化:服务升级过程中,要注重数据模型的统一。首先,各微服务的数据层要允许有完善的权限管理系统,支持多种数据格式转换、数据清洗、数据同步等,便于业务高效地挖掘数据的价值 ;
-
渐进性架构:大多企业和开发者很难从一开始高瞻远瞩 ,规划处 3、5 年不变的微服务架构,因此,需要有长期的演进迭代以及小规模团队维护,允许小团队技术栈独立,来拥抱业务团队的快速试错。
TSF 分布式框架,历经腾讯内部最严苛、最复杂的生产级环境打磨,基于上述方法论,对其中核心性能的提炼,形成了一套具备无限扩展、高性能、高可靠的一站式微服务架构解决方案,可以为云计算开发者提供极具价值的经验参考。
如下图为腾讯云微服务中间件 TSF 一站式解决方案,最底层是云基础资源平台,包括云服务器、云数据库、云存储和专线加速几大模块,用作数据的存储和调用;同时,作为围绕微服务的 PaaS 平台,TSF 服务框架底层也融合了腾讯云内部大量的中间件服务,提供企业云化架构所必需的消息队列、Kafka、负载均衡、API 网关、全局配置服务等全套中间件。
在此之上,TSF 支持应用的全生命周期管理功能,如对于虚拟机应用,提供代码包打包上传,批量发布、变更,版本切换等产品生命周期功能;对于火热的 Docker 应用,提供基于行业主流编排框架 Kubernetes 的全流程自动化持续集成和持续交付。
对于已经在使用 Dubbo 框架的用户,可以通过修改 pom.xml 中的依赖,平滑地迁移到 TSF。其中,Dubbo 存量系统迁移方式包含两种: