@abelsu7
2019-09-25T22:00:44.000000Z
字数 7504
阅读 1619
微服务
Docker
Kubernetes
ServiceMesh
容器
最后更新时间:2019-9-25
参考资料:
大部分公司在使用的微服务技术架构体系示意图:
微服务基础架构的核心模块包括:
其中粉红色标注的模块是和微服务关系最密切的模块
待更新...
微服务设计 | Kubernetes 功能 |
---|---|
API 网关 | Ingress |
无状态化,区分有状态化和无状态的应用 | 无状态对应 Deployment,有状态对应 StatefulSet |
数据库的横向扩展 | headless service 指向 PaaS 服务,或者 StatefulSet 部署 |
缓存 | headless service 指向 PaaS 服务,或者 StatefulSet 部署 |
服务拆分和服务发现 | Service |
服务编排与弹性伸缩 | Deployment 的 Replicas |
统一配置中心 | ConfigMap |
统一日志中心 | DaemonSet 部署日志 Agent |
熔断、限流、降级 | Service Mesh |
全方位的监控(智能管控?) | Cadvisor, DaemonSet 部署监控 Agent |
在我们微服务设计的十个要点中,我们会发现Kubernetes都能够有相应的组件和概念,提供相应的支持。
其中最后的一块拼图就是服务发现,与熔断限流降级。
众所周知,Kubernetes 的服务发现是通过Service
来实现的,服务之间的转发是通过kube-proxy
下发 iptables 规则来实现的,这个只能实现最基本的服务发现和转发能力,不能满足高并发应用下的高级的服务特性,比较 SpringCloud 和 Dubbo 有一定的差距,于是 Service Mesh 诞生了,他期望将熔断,限流,降级等特性,从应用层,下沉到基础设施层去实现,从而使得 Kubernetes 和容器全面接管微服务。
待更新...
Service Mesh
中文名称为服务网格,因为它的部署图看起来就像一个网格:
图中的绿色小块可以理解为微服务应用,蓝色小块可以理解为 Service Mesh 的轻量级网络代理
简单来说:Service Mesh
就是一个基础设施层,它是用于处理微服务中服务与服务之间通信的一种技术。
有了 Service Mesh 之后,在微服务框架中,服务与服务之间的通信就是靠这些网络代理模块来保障。
在传统的微服务架构中,随着业务越来越复杂,拆分的服务实例也越来越多,那么各个服务之间的依赖就变成了非常复杂的网络拓扑结构,类似下图:
在如此复杂的分布式部署架构下,微服务中服务依赖调用和数据传输所面临的问题也成倍增加,极大的提高了服务治理的难度。
同时,由于容器化技术的成熟和规模化,微服务都会采用容器化,并朝着云原生应用的方向发展。而传统的微服务架构中,虽然也有服务治理的组件,但是这些组件大多需要在应用代码里进行集成,并不符合云原生的思想。因此,急需一个标准化、能高效部署和运维的微服务体系方案。
因此,Service Mesh 就应运而生了——其目的就是用来解决微服务架构中服务间可靠调用、服务治理等问题。
Service Mesh 由两个核心模块组成,SideCar
和Control Plane
:
1. Sidecar:
Sidecar
即上面提到的与服务部署在一起的轻量级网络代理,它的作用就是实现服务框架的各项功能,这样就可以让服务 (Service A 或 B) 回归业务本质。
传统的微服务架构中,各种服务框架的功能 (例如服务发现、负载均衡、限流熔断等) 的代码逻辑或多或少都需要耦合到服务实例的代码中,给服务实例增加了很多业务无关的代码,也提升了复杂度
有了Sidecar
之后,服务节点只做业务逻辑自身的功能,服务之间的调用交给了Sidecar
,由Sidecar
去注册服务、去做服务发现、去做请求路由、去实现熔断限流、去做日志统计。
在这种新的微服务架构中,所有的Sidecar
组合在一起,就是一个服务网格了。不过,这个大型的服务网格并不是完全自治的,它还需要一个统一的控制节点,也就是Control Plane
。
2. Control Plane:
Control Plane
是用来从全局的角度控制Sidecar
的。例如它负责所有Sidecar
的注册,并存储一个统一的路由表,帮助各个Sidecar
进行负载均衡和请求调度。
此外,Control Plane
还会收集所有Sidecar
的监控信息和日志数据,相当于Service Mesh
架构的大脑。Control Plane
控制着Sidecar
来实现服务治理的各项功能。
Mesos 基于 master/slave 架构,框架决定如何利用资源,master 负责管理机器,slave 会定期的将机器情况报告给 master,master再将信息给框架。
官网地址:轻舟微服务 | 网易云
轻舟微服务是围绕应用和微服务打造的一站式 PaaS 平台,帮助用户快速实现易接入、易运维的微服务解决方案。为致力于数字化转型的企业提供中台服务治理,帮助企业实现建立生态统一标准,优化管理能力及自动化能力。
基于开源、兼容开源:
低成本、易接入:
智能运维&立体化监控:
微服务治理框架:
智能 API 网关:
分布式事务:
容器应用管理服务:
DevOps:
AIOps:
官网地址:腾讯微服务平台 TSF | 腾讯云
腾讯微服务平台(Tencent Service Framework,TSF)是一个围绕应用和微服务的 PaaS 平台,提供一站式应用全生命周期管理能力和数据化运营支持,提供多维度应用和服务的监控数据,助力服务性能优化。提供基于 Spring Cloud 和 Service Mesh 两种微服务架构的商业化支持。
拥抱开源社区:
应用全生命周期管理:
细粒度服务治理:
分布式事务:
灵活运维:
构建分布式系统:
金融业务往往有严格合规性要求,用户能够将业务部署在专用宿主机的云服务器上,在资源共享的同时保证与其他用户的子机物理隔离,满足敏感业务数据保护、磁盘消磁需求。
应用发布和管理:
相对于传统的应用发布需要运维人员登录到每一台服务器进行发布和部署,TSF 针对分布式系统的应用发布和管理,提供了简单易用的可视化控制台。用户通过控制台可以发布应用,包括创建、部署、启动应用,也支持查看应用的部署状态。除此之外,用户可以通过控制台管理应用,包括回滚应用、扩容、缩容和删除应用。
服务治理:
支持服务级别和 API 级别的服务治理能力,包括服务路由、服务限流、服务鉴权功能。服务路由功能支持将请求按权重路由到不同版本的服务上。
官网地址:微服务引擎 CSE | 华为云
微服务引擎(Cloud Service Engine)提供高性能微服务框架和一站式服务注册、服务治理、动态配置和分布式事务管理控制台,帮助用户实现微服务应用的快速开发和高可用运维;支持 ServiceComb、Spring Cloud 和 Service Mesh 运行环境。
微服务开发框架:
微服务治理中心:
微服务安全管控:
微服务灰度发布:
分布式事务管理:
非侵入式接入:
统一配置中心:
微服务仪表盘:
微服务应用高可用运维:
多语言微服务解决方案:
开源框架微服务应用接入与管理: