本文整理自阿里云容器平台技术专家冬岛和阿里云高级工程师草谷的直播分享。
微服务注册中心治理的难点
微服务架构的一个核心理念就是让微服务之间解耦,每一个微服务都可以独立的横向扩展,但这也带来了一定的复杂性。
例如,当业务达到一定的规模之后,微服务的数量和单个微服务实例的数就会变的很多,从而导致微服务注册中心需要管理很多服务地址,同时还需要给所有的上下游提供服务注册和服务发现的能力。这无疑增加了微服务注册中心的维护难度。同时,微服务架构对注册中心的性能和稳定性提出了更高的要求,这给注册中心的运维开发人员,带来了不少的挑战。
此外,在服务升级的过程中需要手动的做灰度的迭代。而传统的部署模式存在一个很大的弊端,就是需要提前准备好资源并部署好应用,传统的部署模式不能很好的根据业务的实时请求做自动弹性,那么这部分提前准备的冗余资源就是极大的浪费。
可见,托管一个基于微服务架构的业务需要解决注册中心的问题,还需要解决应用实例弹性和流量管理的问题,最好还能让资源按需使用、按量付费。
针对上面的这些问题,今天我们给大家带来两款云产品:阿里云微服务引擎 MSE 和 阿里云容器服务 Knative。MSE 给您带来稳定可靠的注册中心服务,让您免去运维注册中心的烦恼。Knative 给您带来云原生应用 Serverless 编排的能力,让您的应用可以按需使用、按量付费,节省您的 IaaS 成本。
微服务引擎 MSE
MSE,是 Microservice Engine 的缩写,名字叫微服务引擎,顾名思义,是解决微服务领域问题的一款产品。
微服务引擎地址:
https://www.aliyun.com/product/mse
他是微服务注册中心和配置中心的一个免运维全托管平台,可以提供给用户独享型的实例集群,并且带有丰富的管理页面。
目前,它支持多种主流的微服务引擎,例如 ZooKeeper,Nacos,Eureka,完全兼容开源引擎标准接口。也可以在阿里云官网首页搜索栏中搜索关键字 MSE,也可进入产品介绍页。
MSE 主要应用在以下 3 个场景:
- 作为微服务的注册中心,提供微服务应用的服务注册和发现功能。这个是微服务引擎应用最广泛的场景,也是大家最为熟悉的场景;
- 为分布式应用提供一个中心化的配置管理功能。比如将应用的 DB 链接信息存储在配置中心里;
- 为分布式应用中提供一致性协调的功能。例如基于 MSE 完成一个分布式锁。
Knative (云原生的应用 Serverless 编排引擎)
Knative 是一款基于 Kubernetes 的应用 Serverless 编排引擎。Knative 一个很重要的目标就是制定云原生、跨平台的应用 Serverless 编排标准。Knative 是通过整合容器构建(或者函数)、工作负载管理(弹性)以及事件模型这三者来实现的这一应用 Serverless 标准。Knative 社区的主要贡献者有 Google、Pivotal、IBM、Red Hat。可见其阵容强大。阿里云容器服务已经提供了 Knative 能力,可以到这里查看文档获取帮助信息。
Knative Serving 核心能力就是其简洁、高效的应用托管服务,这也是其支撑 Serverless 能力的基础。Knative 提供的应用托管服务可以大大降低直接操作 Kubernetes 资源的复杂度和风险,提升应用的迭代和服务交付效率。当然作为 Severlesss Framework 就离不开按需分配资源的能力,阿里云容器服务 Knative 可以根据您应用的请求量在高峰时期自动扩容实例数,当请求量减少以后自动缩容实例数,可以非常自动化的帮助您节省成本。
Serving 还提供了强大的流量管理能力和灵活的灰度发布能力。流量管理能力可以根据百分比切分流量,灰度发布能力可以根据流量百分比进行灰度,同时灰度发布能力还能通过自定义 tag 的方式进行上线前的测试,非常便于和自己的 CICD 系统集成。
MSE + Knative 实操演练
这部分请请大家尽量看视频,直接感受 Knative 对应用 Serverless 编排的效果。
knative-mse-实操演练,详情请点击这里。
小结
MSE 作为一款云产品可以给您提供稳定、可靠的注册中心服务。相对于您自建注册中心而言,MSE 有专业的人员帮助您管理集群,并且可以做到费用比您自建集群使用的 ECS 要低。与此同时还提供了丰富的运维、监控能力,是您注册中心上云的最佳选择。
Knative 作为最流行的云原生应用 Severlesss 编排引擎,其中一个核心能力就是其简洁、高效的应用托管服务(MicroPaaS),这也是其支撑应用 Serverless 能力的基础。Knative 提供的应用托管服务(MicroPaaS) 可以大大降低直接操作 Kubernetes 资源的复杂度和风险,提升应用的迭代和服务交付效率。当然作为应用 Severlesss 编排引擎就离不开按需分配资源的能力,阿里云容器服务 Knative 可以根据您应用的请求量在高峰时期自动扩容实例数,当请求量减少以后自动缩容实例数,可以非常自动化的帮助您节省成本。
希望 MSE + Knative 能在微服务上云过程中帮您减少成本、提升效率。
福利放送
《Knative 云原生应用开发指南》电子书下载地址,点击传送门。
欢迎加入 Knative 交流群:
作者信息:
冬岛,阿里云容器平台技术专家,2014年 深度参与了阿里巴巴全面容器化、连续多年支持双十一容器化链路。专注于容器、Kubernetes、Service Mesh 和 Serverless 等云原生领域。致力于构建新一代 Serverless 平台。当前主导阿里云容器服务 Knative 相关工作。
草谷,阿里云高级工程师,目前负责阿里集团内软负载分布式组件TaoKeeper,商业化产品MSE,分布式服务注册中心及高可用架构领域的相关工作。