最新动态
时速云是一家专业的云原生应用及数据平台服务提供商,秉持“让计算产生价值,让数据成为资产”
的使命,致力于帮助客户实现数字化转型。

微服务治理平台产品化实践与应用微服务化解析

2019年4月24日,由中国信息通信研究院主办的首届云原生产业大会在北京成功举办。作为容器云计算领军企业、云原生技术在国内落地和发展的积极推动者,时速云资深架构师赵昕受邀参加了此次大会并发表主题演讲。

微信图片_20190425112016

赵昕演讲的题目为《微服务治理平台产品化与应用微服务化》。随着微服务被越来越多的企业所了解和认识,针对微服务治理平台的需求和应用微服务化的需求也变得越来越强烈。因此,目前各厂商面临的问题是如何提供符合客户需求的微服务治理平台产品,以及如何协助客户来进行应用微服务化的问题。

针对微服务治理平台产品,目前在市场上有三种主要的形态:

  • 适合虚拟或物理主机搭建的微服务治理平台产品
  • 容器化的微服务治理平台产品
  • 与PaaS平台结合使用的微服务治理平台产品。

以上各形态的微服务治理平台,都有其优缺点。适合传统方式搭建的微服务治理平台,其组件都需要单独的虚拟机或物理机部署,部署过程相对复杂。此外,其组件若要实现高可用,要按照传统方式采用多机热备部署,占用大量的主机资源。而且在此种方式下,微服务治理平台组件与应用的部署环境分离,加大了运维的工作量与运维难度。

以容器化方式部署的微服务治理平台,其组件可以运行在具备 Docker 环境的虚拟机或物理机上。与容器 PaaS 平台解耦,可以在不同厂家的平台上部署。但是其问题是微服务治理平台作为一个应用,其访问入口与 PaaS 入口割裂,不方便使用。
z1

时速云的微服务治理平台是与时速云的 PaaS 平台结合成为一个整体交付给用户。首先,微服务治理平台组件作为应用部署,能够接受 PaaS 平台统一调度管理。同时,用户的微服务应用代码能够与时速云 PaaS 平台的 Devops 功能结合起来,通过流水线,自动的将开发代码项目构建成容器镜像,并在 PaaS 平台上部署起来。同时 PaaS 平台可以管理多个集群,用以将测试环境与生产环境进行分离管理。

时速云的微服务治理平台,不是单一技术路线的产品,目前支持 spring cloud、service mesh、dubbo,可以为用户提供丰富的选择。同时,针对分布式部署的微服务,时速云的微服务治理平台还提供分布式事务组件,来保证事务的一致性。此外,为了满足容器集群内的应用与外部应用能够进行互相调用,我们还专门定制了 CSB 云服务总线,通过服务订阅的形式,将集群内外的应用 API 开放打通。

时速云不仅仅提供治理平台,还希望针对不同的用户能更好与微服务开发结合起来,因此,平台还提供了微服务开发的模板,用户可以自行选择java版本、依赖等来创建自己的代码模板,实现快速上手开发微服务。

当提供了相对完毕的微服务治理平台之后,用户所面临的问题是如何将应用进行微服务化。针对此问题,赵昕进行了六个方面的阐述:

  • 应用微服务化的需求及现况
  • 应用微服务化的优势
  • 应用微服务化的主要步骤
  • 应用微服务化的方法
  • 应用微服务化过程中的问题
  • 咨询服务

目前用户的主要需求在于构建全新的微服务应用及现有的应用改造。但现况是用户的技术程度参差不齐,比如相当一部分用户并没有Docker使用的经验,或者用户有Docker 的使用经验也有应用微服务化的需求,再有用户已有应用微服务化的经验,但形态比较简单。因此,时速云认为应用的微服务化应用需要一套循序渐进的流程来实现:熟悉Docker、Kubernetes->选取试点应用进行容器化->迁移应用至云平台->微服务改造

z2

赵昕表示应用微服务化的价值在于,与传统应用相比,微服务化的应用有诸多优点。

传统单体应用主要缺点有:

  • 复杂性逐渐变高
  • 技术债务逐渐上升
  • 部署速度逐渐变慢
  • 阻碍技术创新
  • 无法按需伸缩

相比直线,微服务应用的主要优点有:

  • 模块独立开发
  • 模块独立部署
  • 独立的可伸缩性
  • 可重用性

因此,应用的微服务化必定会作为应用所演进的方向,为更多的用户接受与使用。

当用户面临微服务改造的时候,必然会经历微服务的拆分,赵昕认为主要有四种拆分方法:

基于业务逻辑拆分

将系统中的业务模块按照职责范围识别出来,每个单独的业务模块拆分为一个独立的服务。

基于可扩展拆分

将系统中的业务模块按照稳定性排序,将已经成熟和改动不大的服务拆分为稳定服务,将经常变化和迭代的服务拆分为变动服务。

基于可靠性拆分

将系统中的业务模块按照优先级排序,将可靠性要求高的核心服务和可靠性要求低的非核心服务拆分开来,然后重点保证核心服务的高可用。

基于性能拆分

基于性能拆分和基于可靠性拆分类似,将性能要求高或者性能压力大的模块拆分出来,避免性能压力大的服务影响其他服务。

但单纯的提出拆分方法,并不能很好满足用户各类应用微服务拆分的需求,因此,赵昕指出,平台提供商在提供治理平台的同时,还需要提供相应的咨询服务,结合微服务产品的实现,以及在项目落地过程中所遇到的问题,有针对性的提出微服务化的解决方案,这样才能实现产品更好的落地,也能帮助客户快速的实现应用的微服务化,达到平台提供商与客户在技术、经济层面的双赢。